TODO: Write in here what this is about. Some merger of frontend/README.md and backend/README.md.
You'll need to have the following programs installed for this repository to work properly:
- ansible: Enables all commands available via
./ns run
- flyway: Handles database migrations
The infrastructure is entirely built around docker-compose. Therefore the following applies:
- The Frontend-section and backend-section define build commands to build their section of the application
- Those build commands are used by dockerfiles of each section to first build and then containerize the build-output
- Those dockerfiles are used by either github actions (for CI) or docker-compose files (for development)
Note: All Dockerfiles have 2-phases:
- The build-phase which sets up a build-environment and which builds the project
- The run-phase which sets up a runtime-environment and which copies the build-output
The project automatically builds releases of the current main branch whenever it changes, see:
These packages are just docker images for use with i.e. the docker-compose.yml. Use that file as a baseline for your own deployments if you want to make one.
For development use the provided docker-compose files in the root directory. They describe their uses in doc comments.
Both the frontend and the backend container rely on the following paths:
Frontend only:
- /data/certificates (used by nginx.conf)
- /data/config/nginx.conf (used by nginx dockerfile)
- /data/db_dumps (used by nginx.conf)
Backend only:
- /data/database/db.sqlite3 (used by settings.json)
- /data/config/settings.json (used by backend binary)
Shared:
- /data/config/feature_config.json (to be used by nginx.conf + settings.json)
- /data/media/audio (settings.json + nginx.conf)
- /data/media/image (settings.json + nginx.conf)