# ITSM-Deployment (Rust-Version). # # Aufsetzen: # 1. Repo nach /docker/itsm/src klonen (oder Build-Kontext anpassen) # 2. .env mit POSTGRES_PASSWORD anlegen # 3. docker compose up -d --build # # Update: git pull im Quell-Checkout, dann docker compose up -d --build. # Anders als frueher wird beim Container-NEUSTART kein Code mehr aus dem # Git gezogen -- ein Neustart startet exakt das gebaute Image (reproduzierbar, # kein ungetesteter main-Stand in Prod). services: postgres: # Bewusst bei postgres:16 bleiben: das bestehende pgdata-Verzeichnis ist # mit 16 initialisiert; ein Major-Upgrade braucht pg_upgrade/dump+restore. image: postgres:16-alpine container_name: itsm_postgres restart: unless-stopped environment: POSTGRES_DB: itsm POSTGRES_USER: itsm POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?POSTGRES_PASSWORD muss gesetzt sein} volumes: - ./pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U itsm -d itsm"] interval: 5s timeout: 5s retries: 10 itsm: build: context: ../ dockerfile: Dockerfile container_name: itsm_app restart: unless-stopped depends_on: postgres: condition: service_healthy ports: - "8090:8090" environment: DATABASE_URL: postgresql://itsm:${POSTGRES_PASSWORD}@postgres:5432/itsm AES_DASHBOARD_URL: ${AES_DASHBOARD_URL:-http://host.docker.internal:8080} FORGE_BASE_URL: ${FORGE_BASE_URL:-} FORGE_SERVICE_TOKEN: ${FORGE_SERVICE_TOKEN:-} # Hinter TLS-Terminierung (Reverse Proxy) setzen: # ITSM_HTTPS: "1" # ITSM_TRUSTED_PROXY_COUNT: "1" ITSM_HTTPS: ${ITSM_HTTPS:-0} ITSM_TRUSTED_PROXY_COUNT: ${ITSM_TRUSTED_PROXY_COUNT:-0} RUST_LOG: ${RUST_LOG:-info} extra_hosts: - "host.docker.internal:host-gateway"