- Clone repostitory
git clone git@github.com:inayelle-arts/Quorum.git
(or via https) - Initialize submodules
git submodule update --init --recursive
- Ensure that docker.service is running
- Run
docker-compose up --force-recreate --remove-orphans
(build takes ~5 minutes) - Web application should be accessible on
localhost:80
The project uses docker-compose for infrastructure creation. All services are hiddden by gateway. The only three accessible (via gateway) services are:
- DataApi
- IdentityApi
- Client
The rest of services are hidden from the outer world.
As for now, application consists of seven services:
Entrypoint for outer world.
Internal IP: 172.20.20.2
Config: gateway.conf
Dockerfile: Gateway.Dockerfile
Base images:
nginx:alpine
(proxy)
RabbitMQ messaging service.
Internal IP: 172.20.20.3
Image: rabbitmq:alpine
PostgreSQL data storage, stores domain data
Internal IP: 172.20.20.4
Image: postgres:alpine
PostgreSQL identity storage, stores user sensitive data
Internal IP: 172.20.20.5
Image: postgres:alpine
NET Core 2.2 Web Api, deals with domain logic
Internal IP: 172.20.20.6
Dockerfile: DataApi.Dockerfile
Base images:
mcr.microsoft.com/dotnet/core/aspnet:2.2
(serve)mcr.microsoft.com/dotnet/core/sdk:2.2
(build)
NET Core 2.2 Web Api, deals with authentication
Internal IP: 172.20.20.7
Dockerfile: Identity.Dockerfile
Base images:
mcr.microsoft.com/dotnet/core/aspnet:2.2
(serve)mcr.microsoft.com/dotnet/core/sdk:2.2
(build)
Angular 7 Frontend, provides web user interface
Internal IP: 172.20.20.8
Dockerfile: Client.Dockerfile
Base images:
node:alpine
(build)nginx:alpine
(serve)