version: '3.8' services: backend: image: ghcr.io/totalrecall/totalrecall:latest ports: - "3000:3000" environment: - DATABASE_URL=file:/data/totalrecall.db - MEDIA_DIR=/data/media - JWT_SECRET=${JWT_SECRET} - PORT=3000 - CORS_ORIGIN=https://your-domain.com volumes: - ./data:/data restart: unless-stopped healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/health"] interval: 30s timeout: 10s retries: 3 # Uncomment to use with a reverse proxy like Traefik # frontend: # image: ghcr.io/totalrecall/frontend:latest # labels: # - "traefik.enable=true" # - "traefik.http.routers.totalrecall.rule=Host(`your-domain.com`)" # - "traefik.http.routers.totalrecall.entrypoints=websecure" # - "traefik.http.routers.totalrecall.tls=true"