# Зависимости ArtiRoute: PostgreSQL и OnlyOffice Document Server
#
# ArtiRoute сам по себе устанавливается через CLI (@artiroute/cli), не через этот compose.
# Здесь только внешние сервисы, которые обычно поднимают в Docker на том же сервере
# или в соседней VM в вашей сети.
#
# Использование:
#   cp dependencies.env.example .env
#   # отредактируйте POSTGRES_PASSWORD
#   docker compose -f docker-compose.dependencies.yml up -d
#
# PostgreSQL будет доступен на 127.0.0.1:5432
# OnlyOffice — на http://127.0.0.1:8000 (укажите этот адрес в настройках расширения)

services:
  postgres:
    image: postgres:16-alpine
    container_name: artiroute-postgres
    restart: unless-stopped
    environment:
      POSTGRES_USER: ${POSTGRES_USER:-postgres}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}
    ports:
      - '127.0.0.1:${POSTGRES_PORT:-5432}:5432'
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -U $${POSTGRES_USER}']
      interval: 10s
      timeout: 5s
      retries: 5
    volumes:
      - artiroute-pg-data:/var/lib/postgresql/data
      - ./init-artiroute-db.sql:/docker-entrypoint-initdb.d/01-init.sql:ro

  onlyoffice:
    image: onlyoffice/documentserver
    container_name: artiroute-onlyoffice
    restart: unless-stopped
    ports:
      - '127.0.0.1:8000:80'
    environment:
      # Для пилота в закрытой сети; в продакшене согласуйте JWT с IT
      JWT_ENABLED: 'false'
      ALLOW_PRIVATE_IP_ADDRESS: 'true'
    volumes:
      - ${ONLYOFFICE_CONFIG_DIR:-./onlyoffice-config}:/etc/onlyoffice/documentserver

volumes:
  artiroute-pg-data:
