Ctrl K
ComunidadGuías…

docker-compose.yaml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
services:
  postgres:
    image: postgres:18.6-alpine@sha256:10a5c69a83035ab5239f5620d708520e8b28f5aa1f2b20143e6024532edadfb5
    environment:
      POSTGRES_DB: divetracx
      POSTGRES_USER: divetracx
      POSTGRES_PASSWORD: divetracx
      # PostgreSQL 18 defaults outside the legacy mount unless PGDATA is explicit.
      PGDATA: /var/lib/postgresql/data
    ports:
      - "127.0.0.1:5433:5432"
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U divetracx -d divetracx"]
      interval: 3s
      timeout: 3s
      retries: 20
    volumes:
      - divetracx-postgres:/var/lib/postgresql/data

  app:
    build: .
    environment:
      DATABASE_URL: postgresql://divetracx:divetracx@postgres:5432/divetracx
      STORAGE_PROVIDER: local
      STORAGE_PATH: /uploads
      STORAGE_URL: /media
      # Private MCP clients on this Compose network use the app hostname.
      MCP_ALLOWED_HOSTS: ${MCP_ALLOWED_HOSTS:-app}
      MCP_ALLOWED_ORIGINS: ${MCP_ALLOWED_ORIGINS:-}
    expose:
      - "3000"
    depends_on:
      postgres:
        condition: service_healthy
    volumes:
      - divetracx-uploads:/uploads

  hodor:
    image: ${HODOR_IMAGE:-ghcr.io/michidk/hodor@sha256:133a617076bea11ea1b7e41a93145bfd2867516f4b865e37fa3bf41638a65cf7}
    restart: unless-stopped
    depends_on:
      - app
    ports:
      - "${HODOR_PORT:-3000}:8080"
    environment:
      PASSWORD: ${HODOR_PASSWORD:?Set HODOR_PASSWORD in .env}
      SECRET: ${HODOR_SECRET:?Set HODOR_SECRET in .env}
      UPSTREAM: http://app:3000
      TITLE: ${HODOR_TITLE:-Divetracx Login}
      SESSION_TTL: ${HODOR_SESSION_TTL:-86400}
      SECURE_COOKIE: ${HODOR_SECURE_COOKIE:-false}
      LOG_FORMAT: ${HODOR_LOG_FORMAT:-compact}

volumes:
  divetracx-postgres:
  divetracx-uploads: