services: # PostgreSQL Database db: image: postgres:15-alpine container_name: mailcow-logs-db restart: unless-stopped environment: POSTGRES_USER: ${POSTGRES_USER:-mailcowlogs} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme} POSTGRES_DB: ${POSTGRES_DB:-mailcowlogs} volumes: - postgres_data:/var/lib/postgresql/data networks: - mailcow-logs-network healthcheck: test: [ "CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-mailcowlogs}" ] interval: 10s timeout: 5s retries: 5 # Main Application app: image: ghcr.io/shlomiporush/mailcow-logs-viewer:latest container_name: mailcow-logs-app restart: unless-stopped depends_on: db: condition: service_healthy ports: - "8080:8080" volumes: - mailcowlogs_data:/app/data networks: - mailcow-logs-network healthcheck: test: [ "CMD", "curl", "-f", "http://localhost:8080/api/health" ] interval: 30s timeout: 10s retries: 3 start_period: 40s env_file: - .env networks: mailcow-logs-network: driver: bridge volumes: postgres_data: driver: local mailcowlogs_data: driver: local