Skip to content

Deployment

From the repository root:

Terminal window
npm run build

The build compiles the Vite frontend and packages the Spring Boot JAR. Docker builds place frontend/dist inside the JAR so port 8080 serves both /api/** and the React application.

The repository provides local H2 and PostgreSQL deployment variants:

Terminal window
docker compose -f docker-compose.deploy-h2.yml up --build

or:

Terminal window
docker compose -f docker-compose.deploy-postgres.yml up --build

Production deployments need durable volumes and backups for the system database and transfer directory.

The same JAR or image can run at / or below any proxy prefix:

location = /platform/tools/db { return 308 /platform/tools/db/; }
location /platform/tools/db/ {
proxy_pass http://super-db-manager:8080/;
proxy_set_header X-Forwarded-Prefix /platform/tools/db;
proxy_cookie_path / /platform/tools/db/;
}

Do not set server.servlet.context-path for this mode. Keep the trailing slash on proxy_pass.

Every instance must share the transfer directory. Cleanup jobs claim expired artifacts in the system database before deletion, ensuring only one instance removes each file. Shared storage and the system database must stay mutually available.