morz-infoboard/deploy/docker-compose.yml
Jesko Anschütz b3fd512d25 feat(deploy): manuelles Deploy-Verzeichnis für dockerbox.morz.de
- deploy/docker-compose.yml: Produktions-Stack (Backend, Postgres, Mosquitto)
  Backend bindet nur auf 127.0.0.1:8080 (HTTPS via Reverse Proxy)
- deploy/.env.example: Vorlage für Produktions-Umgebungsvariablen
- deploy/mosquitto/config/mosquitto.conf: Mosquitto mit Passwort-Auth
- ansible/group_vars: morz_server_base_url auf https://dockerbox.morz.de
- ansible/inventory.yml: debi entfernt, dev-Hosts info11/info12 ergänzt
- .gitignore: !.env.example als Ausnahme ergänzt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 17:36:39 +01:00

70 lines
1.9 KiB
YAML

services:
backend:
image: git.az-it.net/az/morz-infoboard/backend:latest
restart: unless-stopped
ports:
- "127.0.0.1:8080:8080"
environment:
MORZ_INFOBOARD_HTTP_ADDR: ":8080"
MORZ_INFOBOARD_DATABASE_URL: "postgres://morz_infoboard:${MORZ_DB_PASSWORD}@db:5432/morz_infoboard?sslmode=disable"
MORZ_INFOBOARD_UPLOAD_DIR: /app/uploads
MORZ_INFOBOARD_STATUS_STORE_PATH: /app/data/status
MORZ_INFOBOARD_MQTT_BROKER: "${MORZ_MQTT_BROKER}"
MORZ_INFOBOARD_MQTT_USERNAME: "${MORZ_MQTT_USERNAME}"
MORZ_INFOBOARD_MQTT_PASSWORD: "${MORZ_MQTT_PASSWORD}"
MORZ_INFOBOARD_ADMIN_PASSWORD: "${MORZ_ADMIN_PASSWORD}"
MORZ_INFOBOARD_DEFAULT_TENANT: "${MORZ_DEFAULT_TENANT:-morz}"
MORZ_INFOBOARD_DEV_MODE: "false"
TZ: "Europe/Berlin"
volumes:
- ./uploads:/app/uploads
- ./data:/app/data
depends_on:
db:
condition: service_healthy
networks:
- internal
- proxy
db:
image: postgres:17-alpine
restart: unless-stopped
environment:
POSTGRES_USER: morz_infoboard
POSTGRES_PASSWORD: "${MORZ_DB_PASSWORD}"
POSTGRES_DB: morz_infoboard
volumes:
- db_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U morz_infoboard"]
interval: 10s
timeout: 5s
retries: 5
networks:
- internal
mqtt:
image: eclipse-mosquitto:2
restart: unless-stopped
ports:
- "1883:1883"
volumes:
- ./mosquitto/config:/mosquitto/config:ro
- mosquitto_data:/mosquitto/data
- mosquitto_log:/mosquitto/log
networks:
- internal
volumes:
db_data:
mosquitto_data:
mosquitto_log:
networks:
internal:
proxy:
# Gemeinsames Netz mit dem Reverse Proxy (z. B. Traefik/Nginx Proxy Manager).
# Falls der Proxy ein eigenes externes Netz verwaltet, hier name: und external: true setzen.
# Beispiel:
# name: proxy
# external: true