Zum Hauptinhalt springen

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

DienstImagePort
REST APIdr.swilk.eu/sw/bpn/resource-planning-restapi8080
Frontenddr.swilk.eu/sw/bpn/resource-planning-frontend80

Verfügbare Tags:

  • latest — aktuelles Release
  • develop — Entwicklungsstand
  • vX.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).