diff --git a/oneuptime/docker-compose-master.yml b/oneuptime/docker-compose-master.yml new file mode 100644 index 0000000..2f58150 --- /dev/null +++ b/oneuptime/docker-compose-master.yml @@ -0,0 +1,62 @@ +services: + # 1. OneUptime Frontend & API Gateway (Zentraler Einstiegspunkt) + oneuptime: + image: oneuptime/oneuptime:${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: Primäre relationale Datenbank für Konfigurationen und Benutzerdaten + 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: In-Memory-Datenbank für Caching, Echtzeit-Events und Job-Queues + 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: Spaltenorientierte Datenbank für massenhafte Log-Daten und Metriken + 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