Deployment
Die Anwendung wird als Docker-Container bereitgestellt. Alle Images werden über die Registry dr.swilk.eu/sw/bpn/ veröffentlicht.
Voraussetzungen
- Docker und Docker Compose
- Zugang zur Container-Registry
dr.swilk.eu - Ein Reverse Proxy (z.B. nginx, Traefik) für HTTPS-Terminierung
Container-Images
| Dienst | Image | Port |
|---|---|---|
| REST API | dr.swilk.eu/sw/bpn/resource-planning-restapi | 8080 |
| Frontend | dr.swilk.eu/sw/bpn/resource-planning-frontend | 80 |
Verfügbare Tags:
latest— aktuelles Releasedevelop— EntwicklungsstandvX.Y.Z— spezifische Versionen
Docker Compose
Erstellen Sie eine docker-compose.yml:
version: "3"
services:
autoheal:
container_name: autoheal
image: willfarrell/autoheal
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
resource-planning-restapi:
container_name: resource-planning-restapi
image: dr.swilk.eu/sw/bpn/resource-planning-restapi:latest
restart: always
healthcheck:
interval: 5s
ports:
- "8080:8080"
depends_on:
- resource-planning-db
env_file:
- .env
labels:
autoheal: true
volumes:
- resource-planning-restapi-static-files:/static
networks:
- resource-planning-network
resource-planning-frontend:
container_name: resource-planning-frontend
image: dr.swilk.eu/sw/bpn/resource-planning-frontend:latest
restart: always
healthcheck:
interval: 60s
environment:
APP_API_URL: "https://api.example.com"
ports:
- "3000:80"
networks:
- resource-planning-network
resource-planning-db:
container_name: resource-planning-db
image: postgres:latest
restart: always
expose:
- "5432"
environment:
POSTGRES_DB: ${DJANGO_DB_NAME}
POSTGRES_USER: ${DJANGO_DB_USER}
POSTGRES_PASSWORD: ${DJANGO_DB_PASSWORD}
volumes:
- resource-planning-db-data:/var/lib/postgresql/data
networks:
- resource-planning-network
volumes:
resource-planning-db-data:
resource-planning-restapi-static-files:
networks:
resource-planning-network:
Dienste
- autoheal — Überwacht Container und startet fehlgeschlagene automatisch neu
- resource-planning-restapi — Die REST API (Django/Uvicorn)
- resource-planning-frontend — Die Benutzeroberfläche (Vue.js/nginx)
- resource-planning-db — PostgreSQL-Datenbank
Starten
docker compose up -d
Die Datenbank-Migrationen werden beim Start des API-Containers automatisch ausgeführt.
Reverse Proxy
Die Anwendung sollte hinter einem Reverse Proxy betrieben werden, der HTTPS bereitstellt. Der Proxy leitet Anfragen weiter an:
- Frontend: Port 3000 (oder wie konfiguriert)
- API: Port 8080
Stellen Sie sicher, dass die CORS- und CSRF-Einstellungen in der .env-Datei mit den tatsächlichen URLs übereinstimmen (siehe Konfiguration).