737bc3dc64
Add production-only Umami analytics for bilhej.se.
...
CI / Lint, type check, unit tests, coverage (pull_request) Successful in 2m8s
CI / E2E browser tests (pull_request) Successful in 3m29s
Enable pageview tracking when VITE_UMAMI_WEBSITE_ID is set at frontend
build time (Forgejo secret + deploy workflow), with SPA route updates
and no script in local dev. Document setup in docs/umami-analytics.md,
extend integritetspolicy, and add admin Webbstatistik link in prod builds.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 12:02:14 +02:00
4d449d54d0
feat: add Docker Compose setup with dev and prod configurations
...
- docker-compose.yml (dev): 3 services — postgres:16, backend (gradle
bootRun with JDK 21, spring-boot-devtools), frontend (Vite HMR on
node:24-alpine). Source volume mounts for live editing, Gradle cache
volume for fast rebuilds, pg_isready healthcheck on postgres.
- docker-compose.prod.yml (prod): same 3 services but with multi-stage
Dockerfiles. Backend: Gradle bootJar → JRE Alpine, non-root user.
Frontend: npm ci + vite build → nginx:alpine serving static dist/.
SSL termination via self-signed cert (auto-generated in entrypoint).
No source mounts, restart: unless-stopped, separate volumes.
- application-docker.yml: Spring profile overriding H2 with PostgreSQL
via env vars. Hostname "postgres" resolved by Docker Compose DNS.
- Vite proxy /api → backend:8080 for dev. nginx nginx.conf handles
/api proxy + SPA fallback + gzip + SSL in prod.
- AGENTS.md, README.md: architecture diagram, dev vs prod comparison
table, Spring profiles docs, file reference updates.
2026-05-01 01:45:07 +02:00