Places service for Blesk microservice application. API Docs.
Places service for Blesk microservice application. API Docs.
Places service for Blesk microservice application. API Docs.
Places service for Blesk microservice application. API Docs.
Places service for Blesk microservice application. API Docs.
Account service for Blesk microservice application. API Docs.
User service for Blesk microservice application. API Docs.
Messaging service for Blesk microservice application. API Docs.
Authorization server for Blesk microservice application. Docs and API Docs.
Gateway server for Blesk microservice application. Docs and API Docs.
Config server for Blesk microservice application. Docs.
Naming server for Blesk microservice application. Docs.
Tracking server for Blesk microservice application. Docs.
- Spring Cloud Config server,
- Load Balancing with Ribbon, Feign and Resilient
- Naming Server with Eureka
- Fault Tolerance with Hystrix
- API Gateway with Zuul
- Distributed Tracking with Zipkin
- Request identification with Spring Cloud Sleuth
- CI - Travis, Jenkins
- Docker, Docker-compose
- Postman for API testing
- RabbitMQ - service to service communication
- Websocket - real time communication
- Databases - MySQL, PostgreSQL, MongoDB, Redis
- ORM - Hibernate, Sequelize
- ODM - Mongoose
- Spring Data, JPA, Criteria API, JPQL
- RESTful API (REST API), HATEOAS
- Template engines: EJS, Thymeleaf
- Proxying
- Web push notifications
- Swagger - API Documentation
- Frontend - React, Vue, Angular
- Backend - NodeJs, Java Spring
- Using Kong or Spring Cloud Gateway as gateway-server (Native websocket support)
- Securing application via Keycloak
- Doing microservices with JHipster
- Creating PWA react-app
| Services | Proxy-tier(IPv4Address) | Front-tier(IPv4Address) | Back-tier(IPv4Address) |
|---|---|---|---|
pwa-react |
000.000.0.0/00 | 192.168.0.8/20 | 000.000.0.0/00 |
web-vue |
000.000.0.0/00 | 192.168.0.9/20 | 000.000.0.0/00 |
admin-angular |
000.000.0.0/00 | 192.168.0.10/20 | 000.000.0.0/00 |
landing-bootstrap |
152.61.0.2/30 | 192.168.0.7/20 | 172.31.0.21/16 |
vehicle-service |
000.000.0.0/00 | 000.000.0.0/00 | 172.31.0.19/16 |
warehouse-service |
000.000.0.0/00 | 000.000.0.0/00 | 172.31.0.18/16 |
shipment-service |
000.000.0.0/00 | 000.000.0.0/00 | 172.31.0.17/16 |
parcel-service |
000.000.0.0/00 | 000.000.0.0/00 | 172.31.0.16/16 |
place-service |
000.000.0.0/00 | 000.000.0.0/00 | 172.31.0.15/16 |
account-service |
000.000.0.0/00 | 000.000.0.0/00 | 172.31.0.10/16 |
user-service |
000.000.0.0/00 | 000.000.0.0/00 | 172.31.0.11/16 |
messaging-service |
000.000.0.0/00 | 000.000.0.0/00 | 172.31.0.14/16 |
authorization-server |
000.000.0.0/00 | 000.000.0.0/00 | 172.31.0.9/16 |
config-server |
000.000.0.0/00 | 000.000.0.0/00 | 172.31.0.3/16 |
gateway-server |
000.000.0.0/00 | 192.168.0.11/20 | 172.31.0.8/16 |
naming-server |
000.000.0.0/00 | 192.168.0.6/20 | 172.31.0.20/16 |
tracking-server |
000.000.0.0/00 | 192.168.0.5/20 | 172.31.0.12/16 |
postgres-database |
000.000.0.0/00 | 000.000.0.0/00 | 172.31.0.2/16 |
mysql-database |
000.000.0.0/00 | 000.000.0.0/00 | 172.31.0.6/16 |
redis-database |
000.000.0.0/00 | 000.000.0.0/00 | 172.31.0.4/16 |
mongo-database |
000.000.0.0/00 | 000.000.0.0/00 | 172.31.0.13/16 |
rabbit-message-queue |
000.000.0.0/00 | 000.000.0.0/00 | 172.31.0.5/16 |
adminer-panel |
000.000.0.0/00 | 192.168.0.4/20 | 000.000.0.0/00 |
rabbitmq-panel |
000.000.0.0/00 | 192.168.0.3/20 | 000.000.0.0/00 |
mailhog-panel |
000.000.0.0/00 | 192.168.0.2/20 | 000.000.0.0/00 |
| Service name | Port | Programing language | Framework | Database | |
|---|---|---|---|---|---|
| App | landing-bootstrap |
4100 | JavaScript | jQuery, Bootstrap | - |
| App | pwa-react |
4200 | JavaScript | React | - |
| App | web-vue |
4300 | JavaScript | Vue | - |
| App | admin-angular |
4400 | JavaScript | Angular | - |
| Service | place-service |
5000 - 5100 | JavaScript | Express.js | MySQL, Redis |
| Service | vehicle-service |
5200 - 5300 | JavaScript | Express.js | Mongo, Redis |
| Service | warehouse-service |
5400 - 5500 | JavaScript | Express.js | Mongo |
| Service | shipment-service |
5600 - 5700 | JavaScript | Express.js | Mongo, Redis |
| Service | parcel-service |
5800 - 5900 | JavaScript | Express.js | PostgreSQL, Redis |
| Service | account-service |
7000 - 7100 | Java | Spring Boot | PostgreSQL, RabbitMQ |
| Service | user-service |
7200 - 7300 | Java | Spring Boot | MySQL, Redis |
| Service | messaging-service |
7400 - 7500 | Java | Spring Boot | Mongo |
| Server | authorization-server |
9090 | Java | Spring Boot | RabbitMQ |
| Server | config-server |
8888 | Java | Spring Boot | GitHub |
| Server | gateway-server |
8765 | Java | Spring Boot | - |
| Server | naming-server |
8761 | Java | Spring Boot | - |
| Server | tracking-server |
9411 | Java | Spring Boot | RabbitMQ |
| Database | postgresql |
5432 | - | - | |
| Database | mysql |
3306 | - | - | |
| Database | redis |
6379 | - | - | |
| Database | mongo |
27017 | - | - | |
| Message queue | rabbitmq |
5672 | - | - | |
| Message queue | rabbitmq-management |
15672 | - | - | |
| Dev tools | mailhog |
1025 | - | - | |
| Dev tools | mailhog-client |
8025 | - | - | |
| Dev tools | adminer |
8050 | - | - | |
| Dev tools | jenkins |
8080 | - | - |
| Role | Username | Password |
|---|---|---|
| ROLE_ADMIN | admin |
admin123 |
| ROLE_MANAGER | jansiroky |
manager123 |
| ROLE_CLIENT | petervarga |
client123 |
| ROLE_CLIENT | lukastrnka |
client123 |
| ROLE_COURIER | michalvelky |
courier123 |
| ROLE_COURIER | denismaly |
courier123 |
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpbl9pZCI6MSwiYWNjb
3VudF9pZCI6MSwidXNlcl9uYW1lIjoic3lzdGVtIiwic2NvcGUiOlsidHJ1c3Q
iXSwiYXV0aG9yaXRpZXMiOlsiUk9MRV9TWVNURU0iXSwianRpIjoiZWM3ZmE5Z
GItZmY0MS00NmU4LWI4OTctMDI1YWE1YWFlMWQ2IiwiY2xpZW50X2lkIjoiOGR
lNGRjNTYtNmU5Ni0xMWVhLWJjNTUtMDI0MmFjMTMwMDAzIiwiYWN0aXZhdGVkI
jp0cnVlfQ.KzxBtlmKOliwE8tdbeBgXgWb3vlcRp4-x4vmVA-2wI4GfWtK1d-A
x4QQDImOqhnRNh81H9H0SxPYaurSo_RJUpt35iXUSmIp5rizGXAj3xge9tf5o1
jeZcVmuipzoZzF46cdnakmjaOk3fwerX50p_egO62ew8DdUgcpNpz7cyZH7-0e
bAziYNibaka0s5NwksEhrFmK1BAxu-8_couQI3R5E_veygCnA92i6gkO-4BQS3
42vnHgpI31QT5lm9BG_KM6ADqDFYwD_JCRCVeUzQymP2YL3jOlDsdJ_p5vzNjG
DrJIfSwMPDL-sIGZ9QbyXL7ffgbIiga1XI3qJ6UcGA
username: app-blesk-naming-server
password: b1477e9ba7723b8f47e9727a39a51edf
username: app-blesk-config-server
password: b8199f18ee07292f39f5d9213cf493e8
username: app-blesk-tracking-server
password: 59fe09743cb9ef59276464f81734a003
username: 8de4dc56-6e96-11ea-bc55-0242ac130003
password: 04ed73c86f2d48e9789fa2d2bae6acf78bcd9b431d676e5f6d9c9c9a28de29a3
openssl genrsa -out jwt.pem 2048
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAwySCnVbkvES/mMHJllnNM5lQ9m26uXbbJzohBhCQyRe/wvuC
1UqXDNd45VsgGWk2zZ9/36EH0DZLrrTMR487Xqa+/OWm1ZDlNRKJDBcHv/WWcx1X
ULS3uC3hvcz/7kFTQTj80vvfhtUOfl7mXMh7hznvKqB2oe067ZDzigqlDPjBCVpm
GC77aHcw7HF4NVnsDki8oHUs9uEB2IHDrcpYcSUivEwI2cN1mWDSQtoH3WRxHe39
nIE748tLatkjvmKLzArugbuWh3his10DAVfULg3kLRDtIBadvxxRZPqjyeSjFL0t
i8yO4Dahyg4iDrBhY2Xc9kUeZssRxETbxmu0BQIDAQABAoIBAG4CnSe6HsUMNL8X
MF/0TDx0iDIEdimsGawplwhmOllDbDWtuHopzLHOnzcdgiERMXYGHv6hN1hn446g
GjGVS7D2a+ECTmVDhBPBWUVZjmLnPmOy/NBgsNnB8+seMIHOjfLM/6qpl7/ZSIxx
T4iq9Qis3mm3gGmU5Y2cE8+UZKvEbC9dlUrHYUNo76j0KToqoNwFymNPUzUSyA+d
iQmQIQNy31e+G5SNUYeorGXR8rVrgk67YAWzmTJUzqO+9e9fS9BqzSYFDCCwaNdU
YSfwIav9CGCsVN7u2jZM5yyMPZuHgZPyxRm55vgS6iqbFxmoFkdjVmhvhmAHMiWY
5c0KVJkCgYEA6rpCH1hqTQKdoaznkv0Kc2ImnKbelU9PDj2r9upsTGOM87tSFlCv
McQjdAwVXlcTh4D/a+SYOcHYi2hURpAomjOuzLCeMYWkyBx9ZPw//UAGTaq8TKEt
iotOWT0m1tC5OvAeH43E/FPVmtLis8/cZw86poc4IE8mt3ZqjbuLnRMCgYEA1NPe
25wicdGb15oWpoYYxDjX9CXsFEcB2PsRfvFI7/AiDU+DiPJBcRKhKNfWjJ8CdsUC
+hcBwKroTuWAw6NKbTYIXPUWyIKFztYHtI0IJB5OZmx1J6whmBfb5n2HmBew73iH
i0sg/0dk9hNq44Vik+hQbEYg3AEuWaIocNcrhYcCgYEApKZgiYJIlpp2HhmeGyI6
eXNo6Eu5KH0IVFH4VWxc6TyPe8xzKUoRilQuFlH/jzx/a3aWNIWWLjWGg0t8ij7G
7FvCirx9SvmW+/PYFcVH0YpeoY5ZJVuOCXfsTnaxzs98jxYt2y5j9ieMV10EPuNY
lEY/et6xBSDgZKLA3Yinx1cCgYAsKyBIEVowpuCh2Q+0VYYUSvu+ZpRdDPN8NXbH
EoohiYN3obXZmPUt40Dg+hJDsshPH8njXxz1AEMgBI85iszqZ1lK+W5WBIiCiXal
6NL0s/lvVjjmF9oM936ikhCu5tPIjwoKRXg+onF4hEUdnNP9gCwYnGE7Z19YKMgd
yvn0RwKBgDK8RP58qyEHRB52La33PBMubD3JvIh0Sx1RVU9c0WhotaLiZs6KWrpA
4Tgzxw/bImb526+MDNQhYDu0m5AxWxbnrXEM4Jp+3dB7iJVaaoxNRhKT/bUkrt/5
LK0ojxkkvsvpYP4iLhqHzj10k4TbK9mz582SmoN07ekT1vtqr2Em
-----END RSA PRIVATE KEY-----
openssl rsa -in jwt.pem
----------BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAwySCnVbkvES/mMHJllnNM5lQ9m26uXbbJzohBhCQyRe/wvuC
1UqXDNd45VsgGWk2zZ9/36EH0DZLrrTMR487Xqa+/OWm1ZDlNRKJDBcHv/WWcx1X
ULS3uC3hvcz/7kFTQTj80vvfhtUOfl7mXMh7hznvKqB2oe067ZDzigqlDPjBCVpm
GC77aHcw7HF4NVnsDki8oHUs9uEB2IHDrcpYcSUivEwI2cN1mWDSQtoH3WRxHe39
nIE748tLatkjvmKLzArugbuWh3his10DAVfULg3kLRDtIBadvxxRZPqjyeSjFL0t
i8yO4Dahyg4iDrBhY2Xc9kUeZssRxETbxmu0BQIDAQABAoIBAG4CnSe6HsUMNL8X
MF/0TDx0iDIEdimsGawplwhmOllDbDWtuHopzLHOnzcdgiERMXYGHv6hN1hn446g
GjGVS7D2a+ECTmVDhBPBWUVZjmLnPmOy/NBgsNnB8+seMIHOjfLM/6qpl7/ZSIxx
T4iq9Qis3mm3gGmU5Y2cE8+UZKvEbC9dlUrHYUNo76j0KToqoNwFymNPUzUSyA+d
iQmQIQNy31e+G5SNUYeorGXR8rVrgk67YAWzmTJUzqO+9e9fS9BqzSYFDCCwaNdU
YSfwIav9CGCsVN7u2jZM5yyMPZuHgZPyxRm55vgS6iqbFxmoFkdjVmhvhmAHMiWY
5c0KVJkCgYEA6rpCH1hqTQKdoaznkv0Kc2ImnKbelU9PDj2r9upsTGOM87tSFlCv
McQjdAwVXlcTh4D/a+SYOcHYi2hURpAomjOuzLCeMYWkyBx9ZPw//UAGTaq8TKEt
iotOWT0m1tC5OvAeH43E/FPVmtLis8/cZw86poc4IE8mt3ZqjbuLnRMCgYEA1NPe
25wicdGb15oWpoYYxDjX9CXsFEcB2PsRfvFI7/AiDU+DiPJBcRKhKNfWjJ8CdsUC
+hcBwKroTuWAw6NKbTYIXPUWyIKFztYHtI0IJB5OZmx1J6whmBfb5n2HmBew73iH
i0sg/0dk9hNq44Vik+hQbEYg3AEuWaIocNcrhYcCgYEApKZgiYJIlpp2HhmeGyI6
eXNo6Eu5KH0IVFH4VWxc6TyPe8xzKUoRilQuFlH/jzx/a3aWNIWWLjWGg0t8ij7G
7FvCirx9SvmW+/PYFcVH0YpeoY5ZJVuOCXfsTnaxzs98jxYt2y5j9ieMV10EPuNY
lEY/et6xBSDgZKLA3Yinx1cCgYAsKyBIEVowpuCh2Q+0VYYUSvu+ZpRdDPN8NXbH
EoohiYN3obXZmPUt40Dg+hJDsshPH8njXxz1AEMgBI85iszqZ1lK+W5WBIiCiXal
6NL0s/lvVjjmF9oM936ikhCu5tPIjwoKRXg+onF4hEUdnNP9gCwYnGE7Z19YKMgd
yvn0RwKBgDK8RP58qyEHRB52La33PBMubD3JvIh0Sx1RVU9c0WhotaLiZs6KWrpA
4Tgzxw/bImb526+MDNQhYDu0m5AxWxbnrXEM4Jp+3dB7iJVaaoxNRhKT/bUkrt/5
LK0ojxkkvsvpYP4iLhqHzj10k4TbK9mz582SmoN07ekT1vtqr2Em
-----END RSA PRIVATE KEY-----
openssl rsa -in jwt.pem -pubout
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwySCnVbkvES/mMHJllnN
M5lQ9m26uXbbJzohBhCQyRe/wvuC1UqXDNd45VsgGWk2zZ9/36EH0DZLrrTMR487
Xqa+/OWm1ZDlNRKJDBcHv/WWcx1XULS3uC3hvcz/7kFTQTj80vvfhtUOfl7mXMh7
hznvKqB2oe067ZDzigqlDPjBCVpmGC77aHcw7HF4NVnsDki8oHUs9uEB2IHDrcpY
cSUivEwI2cN1mWDSQtoH3WRxHe39nIE748tLatkjvmKLzArugbuWh3his10DAVfU
Lg3kLRDtIBadvxxRZPqjyeSjFL0ti8yO4Dahyg4iDrBhY2Xc9kUeZssRxETbxmu0
BQIDAQAB
-----END PUBLIC KEY-----
It can be tested here https://jwt.io/
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50X
2lkIjozLCJ1c2VyX25hbWUiOiJwZXRlcnZhcmdhIiwic2NvcGU
iOlsidHJ1c3QiXSwiZXhwIjoxNTk0ODAzMDAxLCJhdXRob3Jpd
GllcyI6WyJST0xFX0NMSUVOVCJdLCJqdGkiOiIxMWE4NmQxZS1
kMzAwLTQ5M2QtOTQ4Mi01ZTNkYTc4Y2U0ZTMiLCJjbGllbnRfa
WQiOiI4ZGU0ZGM1Ni02ZTk2LTExZWEtYmM1NS0wMjQyYWMxMzA
wMDMifQ.EWASm5uonsM6c_jJqgqWgkXApWVmkGDEKYlUEnFKvY
JtI1ysVk4THFoYFeZYCsHoZijk1wnCg1hyB4gZSOCJ1Q6p9l0z
q0TBBlliyroCpfmIM2Ijot03r5T_69SWD2LDhs4b9y_XFIc3NA
qB_jkBdZCqGy4w2VnhamjGc2zfLAOoywlGZqku2s0TIQCpZU0L
EoEQqogSw-KUMWLbkVCNfLEvtOOIwzTzELedqyJWmajQ1Eh5oK
MdBBS9yzACahpcZm6x_mX-9jp1elaIO4Yty-glIFFqb5EjBm6v
0DvDN_PE5iBVXyk3mNbX6xGk_lQ7kyivlLBVyy1cxeufN6qy8Q
- Stripe API - payment
- Firebase API - push notifications
- IP-API API - location
- IPIFY API - IPv4 address
- HERE API - maps
API keys are stored on Google Drive
- redis:6.0
- nginx:latest
- openjdk:8
- mysql:5.7
- adminer:latest
- postgres:alpine
- mailhog/mailhog:latest
- node:10.21.0-jessie
- rabbitmq:3.8.3-management
- mongo:4.0.5
The server config files can be found here and the strartup file is stored in a Docker compose .yml file
docker-compose up -d -f docker-compose.yml
Docker
docker-compose up
docker-compose up -d
docker-compose up -f file-name
docker-machine ls
docker-machine rm
docker-machine start vm
docker-machine stop vm
docker buil -t image-name .
docker network create network-name
docker run -d -t -i -e ENV=value --network network-name --name container-name -p CPORT:HPORT image:tag
docker ps -a
docker images -a
docker network ls
docker logs -f container-name
docker exec -it container-name bash
docker rmi image-name
docker rm container-name
docker kill container-name
docker network rm network-name
docker image prune
docker volume prune
docker network prune
docker container prune
Angular
ng build
ng build --base-href=/manage
ng serve
ng serve --port 4100
ng g c component-name
ng g s service-name
ng g d directive-name
Vue
npm run dev
npm run build
CORS policy definition can be found here gateway-server.yml file
- vehicle-service
- warehouse-service
- shipment-service
- parcel-service
- place-service
- account-service
- user-service
- messaging-service
- authorization-server
- admin-angular
- web-vue
- pwa-react
- landing-bootstrap
- vehicle-service
- warehouse-service
- shipment-service
- parcel-service
- place-service
- account-service
- user-service
- messaging-service
- authorization-server
- config-server
- gateway-server
- naming-server
- tracking-server
- mongo-database
- redis-database
- mysql-database
- postgres-database
- rabbit-mq
Log proxy-server.log















