services: endurain: container_name: endurain-app image: ghcr.io/endurain-project/endurain:latest env_file: - .env volumes: # The container runs as a non-root user (default UID 1000). # Ensure the bind mount directories exist on the host (see getting-started docs). # For Linux, run this once before first start: # sudo chown -R 1000:1000 /var/opt/endurain/backend # If you set LOCAL_PATH in .env, replace /var/opt/endurain with that path. # To run with a custom UID, add `user: ":"` and chown to match. # - ${LOCAL_PATH:-/var/opt/endurain}/backend/app:/app/backend:Z # Configure volume if you want to edit the code locally by cloning the repo - ${LOCAL_PATH:-/var/opt/endurain}/backend/data:/app/backend/data:Z # necessary for activity files, user images and server images persistence on container image updates - ${LOCAL_PATH:-/var/opt/endurain}/backend/logs:/app/backend/logs:Z # log files for the backend ports: - "8080:8080" depends_on: postgres: condition: service_healthy restart: unless-stopped # postgres logic postgres: image: docker.io/postgres:18@sha256:74935e72241653ca55e0414067e6d8763aceb8a810eb51b452253ec3dcfc4336 container_name: endurain-postgres env_file: - .env healthcheck: test: ["CMD-SHELL", "pg_isready -U endurain"] interval: 5s timeout: 5s retries: 5 volumes: - ${LOCAL_PATH:-/var/opt/endurain}/postgres:/var/lib/postgresql/data:Z restart: unless-stopped