build: Docker-Images, Compose-Setup und Gitea-Workflows
- Mehrstufige Dockerfiles je Dienst mit Stufen für Entwicklung und Betrieb, beide Images laufen als unprivilegierter Benutzer - Backend-Entrypoint wartet auf die Datenbank, migriert und seedt nur bei leerem Kategoriebaum (neues Flag --if-empty) - docker-compose.yml mit Netz-Trennung, Healthchecks und benannten Volumes; die Datenbank ist ausschließlich im internen Netz erreichbar - nginx liefert das Bundle aus und reicht /api weiter; index.html ungecacht, gehashte Assets ein Jahr - Gitea-Workflows: ci.yml für Lint, Tests und Bundle-Bau, build.yml für die Images nach linux/amd64 ohne Deploy-Schritt - docs/runner.md und docs/deployment.md, .dockerignore je Dienst Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014e7t8UpmoVNMtWivY5LiSH
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
# Lokale Entwicklung: Hot Reload und offene Ports.
|
||||
# Lokale Entwicklung: aus dem Quellcode bauen, Hot Reload, offene Ports.
|
||||
# Kopieren nach `docker-compose.override.yml` – die Datei wird nicht eingecheckt.
|
||||
#
|
||||
# Compose liest sie automatisch zusätzlich zu docker-compose.yml.
|
||||
|
||||
services:
|
||||
moneyfy-db:
|
||||
# Datenbank direkt erreichbar, z. B. für psql oder einen SQL-Client.
|
||||
# Datenbank direkt erreichbar, etwa für psql oder einen SQL-Client.
|
||||
ports:
|
||||
- "127.0.0.1:5432:5432"
|
||||
|
||||
@@ -16,7 +19,9 @@ services:
|
||||
ENVIRONMENT: development
|
||||
DEBUG: "true"
|
||||
COOKIE_SECURE: "false"
|
||||
# Im Entwicklungsbetrieb sollen keine Mails hinausgehen.
|
||||
SCHEDULER_ENABLED: "false"
|
||||
# Der Vite-Server läuft auf einem anderen Port und braucht daher CORS.
|
||||
CORS_ORIGINS: http://localhost:5173
|
||||
volumes:
|
||||
# Quellcode einblenden, damit --reload greift.
|
||||
@@ -32,10 +37,16 @@ services:
|
||||
image: moneyfy-frontend:dev
|
||||
command: ["npm", "run", "dev", "--", "--host", "0.0.0.0", "--port", "5173"]
|
||||
environment:
|
||||
VITE_API_BASE_URL: http://localhost:8000
|
||||
# Vite reicht /api an das Backend weiter, siehe vite.config.ts.
|
||||
VITE_API_PROXY: http://moneyfy-backend:8000
|
||||
volumes:
|
||||
- ./frontend/src:/app/src
|
||||
- ./frontend/public:/app/public
|
||||
- ./frontend/index.html:/app/index.html:ro
|
||||
- ./frontend/vite.config.ts:/app/vite.config.ts:ro
|
||||
- ./frontend/tailwind.config.js:/app/tailwind.config.js:ro
|
||||
ports:
|
||||
- "127.0.0.1:5173:5173"
|
||||
# Der Entwicklungsserver kennt /healthz nicht.
|
||||
healthcheck:
|
||||
disable: true
|
||||
|
||||
Reference in New Issue
Block a user