diff --git a/oneuptime/master/docker-compose.yml b/oneuptime/master/docker-compose.yml index 64aba68..d537266 100644 --- a/oneuptime/master/docker-compose.yml +++ b/oneuptime/master/docker-compose.yml @@ -1,49 +1,45 @@ version: '3.8' services: - # 1. OneUptime Ingress: Das offizielle Nginx-Gateway (wichtig für die Assets) + # 1. OneUptime Ingress: Das offizielle Nginx-Gateway (Liefert das Frontend aus) oneuptime-ingress: image: oneuptime/nginx:${ONEUPTIME_VERSION:-release} container_name: oneuptime-ingress restart: ${RESTART_POLICY:-always} ports: - # Dein Load Balancer greift auf Port 7080 deines Docker-Hosts zu + # Mappt deinen gewünschten Port 7080 auf den internen Nginx-Standardport - "${HOST_PORT_HTTP:-7080}:8080" - "${HOST_PORT_HTTPS:-4433}:4430" environment: - TZ=${TIMEZONE:-Europe/Berlin} - # Diese Variablen sind für das Nginx-Skript zwingend erforderlich + # Diese Variablen baut das Image zwingend in sein Nginx-Template ein - NGINX_LISTEN_ADDRESS=${NGINX_LISTEN_ADDRESS:-0.0.0.0:} - NGINX_LISTEN_OPTIONS=${NGINX_LISTEN_OPTIONS:-} - - SERVER_APP_HOSTNAME=${SERVER_APP_HOSTNAME:-app} - - APP_PORT=${APP_PORT:-3002} - - SERVER_HOME_HOSTNAME=${SERVER_HOME_HOSTNAME:-home} - - HOME_PORT=${HOME_PORT:-1444} + - SERVER_APP_HOSTNAME=app + - APP_PORT=3002 + - SERVER_HOME_HOSTNAME=home + - HOME_PORT=1444 - HOST=${ONEUPTIME_HOST:-localhost:7080} depends_on: - - oneuptime + - app - # 2. OneUptime App-Core: Zentraler Backend- und API-Server - oneuptime: + # 2. OneUptime App-Core: Muss zwingend 'app' heißen, damit das Nginx-Image dorthin routet + app: image: oneuptime/app:${ONEUPTIME_VERSION:-release} container_name: oneuptime-master restart: ${RESTART_POLICY:-always} - networks: - default: - aliases: - - ${SERVER_APP_HOSTNAME:-app} environment: - - CONTAINER_NAME=oneuptime + - CONTAINER_NAME=app - PORT=3002 - ENCRYPTION_SECRET=${ENCRYPTION_SECRET:-ein_sehr_sicheres_zufaelliges_passwort_123!} - APP_NAME=${APP_NAME:-OneUptime} - TZ=${TIMEZONE:-Europe/Berlin} - # Routing-Parameter für das Ingress-Gateway + # Internes URL-Routing - HOST=${ONEUPTIME_HOST:-localhost:7080} - HTTP_PROTOCOL=${ONEUPTIME_PROTOCOL:-http} - - SERVER_APP_HOSTNAME=${SERVER_APP_HOSTNAME:-app} - - APP_PORT=${APP_PORT:-3002} + - SERVER_APP_HOSTNAME=app + - APP_PORT=3002 # PostgreSQL-Verbindungsmuster - DATABASE_HOST=oneuptime-postgres @@ -65,7 +61,8 @@ services: volumes: - ${ONEUPTIME_DATA_DIR:-/opt/docker/oneuptime/app}:/usr/src/app/data depends_on: - - oneuptime-postgres + oneuptime-postgres: + condition: service_healthy - oneuptime-redis - oneuptime-clickhouse @@ -81,6 +78,11 @@ services: - TZ=${TIMEZONE:-Europe/Berlin} volumes: - ${POSTGRES_DATA_DIR:-/opt/docker/oneuptime/postgres}:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER:-oneuptime} -d $${POSTGRES_DB:-oneuptimedb}"] + interval: 5s + timeout: 5s + retries: 5 # 4. Redis: In-Memory-Datenbank für Caching & Queues oneuptime-redis: @@ -116,8 +118,8 @@ services: restart: ${RESTART_POLICY:-always} environment: - TZ=${TIMEZONE:-Europe/Berlin} - - ONEUPTIME_URL=http://${SERVER_APP_HOSTNAME:-app}:3002 + - ONEUPTIME_URL=http://app:3002 - PROBE_ID=${PROBE_ID:-global-probe} - PROBE_KEY=${PROBE_KEY:-default-probe-key-12345!} depends_on: - - oneuptime + - app