version: "3.8" # ============================================================================= # INFOMANIAK SERVER - AUTH + RUSTDESK # Für: 185.143.102.153 / hofmanns.ai # ============================================================================= services: # =========================================== # AUTHENTIK - SSO mit Passkeys/WebAuthn # =========================================== postgresql: container_name: authentik-postgres image: docker.io/library/postgres:16-alpine restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"] start_period: 20s interval: 30s retries: 5 timeout: 5s volumes: - ./authentik/database:/var/lib/postgresql/data environment: POSTGRES_PASSWORD: ${PG_PASS:?database password required} POSTGRES_USER: authentik POSTGRES_DB: authentik redis: container_name: authentik-redis image: docker.io/library/redis:alpine command: --save 60 1 --loglevel warning restart: unless-stopped healthcheck: test: ["CMD-SHELL", "redis-cli ping | grep PONG"] start_period: 20s interval: 30s retries: 5 timeout: 3s volumes: - ./authentik/redis:/data authentik-server: container_name: authentik-server image: ghcr.io/goauthentik/server:2024.2 restart: unless-stopped command: server environment: AUTHENTIK_REDIS__HOST: redis AUTHENTIK_POSTGRESQL__HOST: postgresql AUTHENTIK_POSTGRESQL__USER: authentik AUTHENTIK_POSTGRESQL__NAME: authentik AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS} AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY} volumes: - ./authentik/media:/media - ./authentik/custom-templates:/templates ports: - "9000:9000" - "9443:9443" depends_on: - postgresql - redis authentik-worker: container_name: authentik-worker image: ghcr.io/goauthentik/server:2024.2 restart: unless-stopped command: worker environment: AUTHENTIK_REDIS__HOST: redis AUTHENTIK_POSTGRESQL__HOST: postgresql AUTHENTIK_POSTGRESQL__USER: authentik AUTHENTIK_POSTGRESQL__NAME: authentik AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS} AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY} volumes: - /var/run/docker.sock:/var/run/docker.sock - ./authentik/media:/media - ./authentik/certs:/certs - ./authentik/custom-templates:/templates depends_on: - postgresql - redis # =========================================== # RUSTDESK SERVER - Remote Desktop # =========================================== rustdesk-hbbs: container_name: rustdesk-hbbs image: rustdesk/rustdesk-server:latest restart: unless-stopped command: hbbs ports: - "21115:21115" - "21116:21116" - "21116:21116/udp" - "21118:21118" volumes: - ./rustdesk:/root rustdesk-hbbr: container_name: rustdesk-hbbr image: rustdesk/rustdesk-server:latest restart: unless-stopped command: hbbr ports: - "21117:21117" - "21119:21119" volumes: - ./rustdesk:/root # =========================================== # NGINX - Reverse Proxy mit SSL # =========================================== nginx: container_name: nginx image: nginx:alpine restart: unless-stopped ports: - "80:80" - "443:443" volumes: - ./nginx/conf.d:/etc/nginx/conf.d:ro - ./nginx/ssl:/etc/nginx/ssl:ro - ./nginx/html:/usr/share/nginx/html:ro depends_on: - authentik-server