services:
  hermes:
    build: .
    container_name: hermes-api
    restart: unless-stopped

    environment:
      DATABASE_URL: ${DATABASE_URL}
      APP_NAME: Hermes API
      APP_VERSION: 0.1.0
      SECRET_KEY: ${SECRET_KEY}
      INITIAL_ADMIN_USERNAME: ${INITIAL_ADMIN_USERNAME:-}
      INITIAL_ADMIN_EMAIL: ${INITIAL_ADMIN_EMAIL:-}
      INITIAL_ADMIN_PASSWORD: ${INITIAL_ADMIN_PASSWORD:-}
      INITIAL_ADMIN_FIRST_NAME: ${INITIAL_ADMIN_FIRST_NAME:-}
      INITIAL_ADMIN_LAST_NAME: ${INITIAL_ADMIN_LAST_NAME:-}
      ACCESS_TOKEN_EXPIRE_MINUTES: ${ACCESS_TOKEN_EXPIRE_MINUTES:-60}
      JWT_ISSUER: ${JWT_ISSUER:-hermes}
      LOG_LEVEL: ${LOG_LEVEL:-INFO}
      STORAGE_PROVIDER: ${STORAGE_PROVIDER:-local}
      STORAGE_BASE_PATH: ${STORAGE_BASE_PATH:-/data/storage}
      STORAGE_MAX_UPLOAD_MB: ${STORAGE_MAX_UPLOAD_MB:-50}
      KNOWLEDGE_STORAGE_PATH: ${KNOWLEDGE_STORAGE_PATH:-/data/knowledge}
      KNOWLEDGE_MAX_UPLOAD_MB: ${KNOWLEDGE_MAX_UPLOAD_MB:-50}

    volumes:
      - ${STORAGE_HOST_PATH:-./storage}:/data/storage

    ports:
      - "8000:8000"

    networks:
      - default
      - olympus-network

networks:
  olympus-network:
    external: true
