4 Commits
Author SHA1 Message Date
Liosha84andClaude Opus 5.5 48ac16bb2f fix(compose): limit frontend memory to 64m
On Jambotron the project memory budget is split equally between services
without their own limit, so nginx got 341 MB while the backend was at 80%
of its share. With 64m for the frontend the backend and the database get
about 480 MB each.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 22:49:52 +02:00
Liosha84andClaude Opus 5.5 514e1fd0c7 feat: finish demo — port demo-monolith cleanup, separate UI and API containers
Frontend
- Bring spring-angular-ui back under version control with the Angular 22 +
  Material UI from demo-monolith; stop committing the built static/ folder
- Serve the UI from nginx, which proxies /api to the backend so the JWT
  cookie works on a single origin, and falls back to index.html for routes

Backend
- Add PUT /api/users/{id}/roles (admin only) that keeps at least one admin
  and does not let an admin drop their own admin role
- Tighten security: read tutorials publicly, change them only when logged
  in, users/roles API for admins only; hide password hashes in JSON
- Remove unused Settings and Test endpoints, DTO mappers, commented code
- Flyway V2 aligns the schema with the entities; Hibernate now runs with
  ddl-auto: validate
- JWT lifetime matches the 24h cookie; fix the cookie name typo
- Keep CORS only for calling the API directly (ng serve without proxy)

Docker
- Backend Dockerfile: Gradle build + JRE runtime with layer caching,
  non-root user and healthcheck; add .dockerignore
- UI Dockerfile: Node 24 build + nginx with healthcheck
- docker-compose runs its own Postgres, starts services in health order
  and always rebuilds images

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 19:33:38 +02:00
Liosha84 1d38a95f48 fix . 2026-09-25 16:30:43 +02:00
Liosha84 30c373982c demo-decoupled docker-compose 2026-09-13 18:05:12 +02:00