Skip to content

Configuration and deployment ​

VariablePurposeDevelopment default
DATABASE_URLPostgreSQL JDBC URLjdbc:postgresql://localhost:5432/fastvue3
DATABASE_USERNAME / DATABASE_PASSWORDDatabase credentialsfastvue3 / fastvue3
REDIS_HOST / REDIS_PORTRefresh tokens, permission cache, rate limits, and idempotency claimslocalhost / 6379
JWT_SECRETJWT HMAC secretLocal-only value
ADMIN_PASSWORDInitial administrator passwordadmin123
CORS_ALLOWED_ORIGIN_PATTERNSAllowed frontend originshttp://localhost:*
FILE_STORAGE_ROOTLocal upload directorySystem temp directory under fast-vue3-server/uploads
FILE_PUBLIC_BASE_URLFile URL prefix/api/v1/files
FILE_MAX_SIZE_BYTESFile-size limit10485760 (10 MiB)

Flyway scripts in src/main/resources/db/migration own the schema. Append migrations; do not edit an applied migration.

The current upload adapter accepts PNG, JPEG, WebP, PDF, and plain text after extension and MIME checks, with signature checks for supported binary formats. It writes under tenant-specific local directories. Set FILE_STORAGE_ROOT to a persistent volume when running the container; the system temp default is for development. The application caps multipart uploads at 10 MB as well. GET /actuator/health is public; /actuator/metrics and /actuator/prometheus require authentication. Responses include X-Request-Id for log correlation.

For production, rotate secrets, restrict CORS, use managed PostgreSQL and Redis, expose only required endpoints, and run ./mvnw clean verify before release. Payment checkout is a demonstrator: replace the generated checkout URL with a provider adapter, signed callback verification, and idempotent state transitions before accepting real money.

Server documentation is maintained in the fast-vue3-site repository. Changes pushed to its main branch are built and published to GitHub Pages by .github/workflows/deploy.yml using Node 22, pnpm, the VitePress dead-link check, and GitHub Pages deployment actions.

Released under the MIT License.