services: endurain: container_name: endurain image: ghcr.io/endurain-project/endurain:latest environment: # Read the Getting Started section on https://docs.endurain.com for all available env variables - TZ=Europe/Lisbon - DB_PASSWORD=changeme - SECRET_KEY=chnageme # openssl rand -hex 32 - FERNET_KEY=changeme # https://fernetkeygen.com or python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" - ENDURAIN_HOST=http://localhost:8080 # host or local ip (example: http://192.168.1.10:8080 or https://endurain.com), default is http://localhost:8080 volumes: # - /endurain/backend/app:/app/backend # Configure volume if you want to edit the code locally by cloning the repo - /endurain/backend/data:/app/backend/data # necessary for activity files, user images and server images persistence on container image updates - /endurain/backend/logs:/app/backend/logs # log files for the backend ports: - "8080:8080" # Endurain port, change per your needs depends_on: postgres: condition: service_healthy jaeger: {} # optional restart: unless-stopped # postgres logic postgres: image: postgres:latest container_name: postgres environment: - POSTGRES_PASSWORD=changeme - POSTGRES_DB=endurain - POSTGRES_USER=endurain - PGDATA=/var/lib/postgresql/data/pgdata ports: - "5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U endurain"] interval: 5s timeout: 5s retries: 5 volumes: - /postgres:/var/lib/postgresql/data restart: unless-stopped # Jaeger for opentelemetry - optional # Jaeger is not enabled by default. If you do not need it or want it, you can remove this container jaeger: container_name: jaeger image: jaegertracing/jaeger:latest command: - --set - receivers.otlp.protocols.grpc.endpoint=0.0.0.0:4317 - --set - receivers.otlp.protocols.http.endpoint=0.0.0.0:4318 environment: - TZ=Europe/Lisbon ports: # UI / Query - "16686:16686" # OTLP (gRPC / HTTP) - "4317:4317" - "4318:4318" # Collector APIs - "14250:14250" - "14268:14268" - "14269:14269" # health/admin # Zipkin-compatible intake - "9411:9411" # Optional (kept from the docs’ quickstart) - "5778:5778" restart: unless-stopped # adminer for DB manipulation - optional adminer: container_name: adminer image: adminer ports: - 8081:8080 restart: unless-stopped networks: default: external: true name: endurain_network