Deployment
This project supports multiple local deployment topologies, driven by Make targets.
If you want to deploy using prebuilt GHCR images (instead of building locally), see Container-images.md.
Core stack vs full stack
Core stack (app + DB)
Runs: Postgres container + app container
UI and API are served by the app container
Default URL: http://localhost:8080
Commands:
Full stack (Nginx + app + DB)
Runs: Nginx container + app container + Postgres container
Nginx serves the SPA and proxies
/api/*to the appDefault URL: http://localhost:8086
Commands:
SQLite deployments
SQLite mode replaces Postgres with a local single-file DB.
Full sqlite stack (app + Nginx):
make build-deploy-sqliteCore sqlite stack (app only):
make up-core-sqlite
SQLite targets mount the repo’s ./db directory into the app container.
Useful operational commands
Tail app logs:
make tail-tomcat-logsStop and remove containers:
make downDelete containers + volumes + network (destructive):
make down-with-volumesRebuild with no cache:
make build-deploy-nocache
Optional: Nexus for Maven caching
If you rebuild often, Maven dependency downloads can dominate build time. You can run a local Nexus proxy and enable it for Docker builds.
Start Nexus:
Enable the mirror in .env: