This repository contains the infrastructure setup for running and developing the different parts of OS2agora using Docker.
The repository is designed to make it easy to test, run, and debug individual components or the full system during development.
The frontend for employees is located in OS2agora-Internal-UI
The frontend for the public is located in OS2agora-Public-UI
The Api and backend is located in OS2agora-API
Technical documentation is located in OS2agora-docs
- Docker
- Docker-compose (is included in Docker for Windows)
To start a given part of the solution, do the following steps:
- Build the required Docker Images
- Add the required secret files in
_config/secrets - Navigate to the relevant folder and run the following command:
docker-compose -f docker-compose.yml --env-file .env up -d
NOTE: You may start the solution as is, but need to have access to an IdP to login as employee or citizen. The backend should further be configured to use that specific IdP.
To stop the solution, use the following command:
docker-compose -f docker-compose.yml --env-file .env stop
Each part of the solution has a dedicated .env.<solution> file, used for configurations - eg. .env.api. Configuration details for each core component are documented in that component’s own repository. This repository only provides the infrastructure needed to run those components, not their internal configuration instructions.
When running parts of the solution through an IDE or similar, make sure it has the correct configurations, allowing communication with the parts running in Docker.
To build the required images, follow these steps:
- Navigate to the relevant repository:
- OS2agora-Internal-UI
- agora-fe_internal
- OS2agora-Public-UI
- agora-fe_public
- agora-fe_public_nginx
- OS2agora-API
- agora-api
- OS2agora-Internal-UI
- From the root, navigate to
/docker - Run the following command:
docker-compose -f docker-compose.build.yml buildDocker Compose configurations that start the base services required to run the backend from an IDE.
- Required secrets:
- db_name
- db_username
- db_password
- db_root_password
Docker Compose configurations that start the necessary services (e.g., database and frontend apps), allowing the backend to be run and debugged from an IDE while still interacting with a functioning frontend.
- Required Docker Images:
- agora-fe_internal
- agora-fe_public
- agora-fe_public_nginx
- Required secrets:
- db_name
- db_username
- db_password
- db_root_password
Docker Compose configurations that start the backend dependencies, making it possible to run and debug the frontend against a real backend environment.
- Required Docker Images:
- agora-api
- Required secrets:
- db_name
- db_username
- db_password
- db_root_password
- ConnectionStrings__DefaultConnection
Docker Compose configurations for running the entire solution end-to-end in Docker
- Required Docker Images:
- agora-api
- agora-fe_internal
- agora-fe_public
- agora-fe_public_nginx
- Required secrets:
- db_name
- db_username
- db_password
- db_root_password
- ConnectionStrings__DefaultConnection