version: '3.8' services: # 1. OneUptime App-Core: Zentraler Application-Server und Dashboard (KORRIGIERTES REPO) oneuptime: image: oneuptime/app:${ONEUPTIME_VERSION:-latest} container_name: oneuptime-master restart: ${RESTART_POLICY:-always} ports: - "${HOST_PORT_HTTP:-8080}:80" - "${HOST_PORT_HTTPS:-4433}:443" environment: - CONTAINER_NAME=oneuptime - PORT=${INTERNAL_PORT:-80} - ENCRYPTION_SECRET=${ENCRYPTION_SECRET:-ein_sehr_sicheres_zufaelliges_passwort_123!} - APP_NAME=${APP_NAME:-OneUptime} - TZ=${TIMEZONE:-Europe/Berlin} - DATABASE_HOST=oneuptime-postgres - REDIS_HOST=oneuptime-redis - CLICKHOUSE_HOST=oneuptime-clickhouse volumes: - ${ONEUPTIME_DATA_DIR:-/opt/docker/oneuptime/app}:/usr/src/app/data depends_on: - oneuptime-postgres - oneuptime-redis - oneuptime-clickhouse # 2. PostgreSQL: Offizielles relationales Datenbank-Repository oneuptime-postgres: image: postgres:${POSTGRES_VERSION:-15-alpine} container_name: oneuptime-postgres restart: ${RESTART_POLICY:-always} environment: - POSTGRES_USER=${POSTGRES_USER:-oneuptime} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres_secure_pass_99!} - POSTGRES_DB=${POSTGRES_DB:-oneuptimedb} - TZ=${TIMEZONE:-Europe/Berlin} volumes: - ${POSTGRES_DATA_DIR:-/opt/docker/oneuptime/postgres}:/var/lib/postgresql/data # 3. Redis: Offizielles In-Memory-Repository (Alternativ: valkey/valkey:7-alpine) oneuptime-redis: image: redis:${REDIS_VERSION:-7-alpine} container_name: oneuptime-redis restart: ${RESTART_POLICY:-always} command: redis-server --appendonly yes environment: - TZ=${TIMEZONE:-Europe/Berlin} volumes: - ${REDIS_DATA_DIR:-/opt/docker/oneuptime/redis}:/data # 4. ClickHouse: Offizielles spaltenorientiertes Datenbank-Repository oneuptime-clickhouse: image: clickhouse/clickhouse-server:${CLICKHOUSE_VERSION:-latest} container_name: oneuptime-clickhouse restart: ${RESTART_POLICY:-always} environment: - TZ=${TIMEZONE:-Europe/Berlin} ulimits: nofile: soft: 262144 hard: 262144 volumes: - ${CLICKHOUSE_DATA_DIR:-/opt/docker/oneuptime/clickhouse}:/var/lib/clickhouse