# Backend + frontend в сети с уже поднятым PostgreSQL (external network).
#
# Подготовка: из корня репозитория скопируйте .env.example → .env и задайте DB_*
# и CORS_ORIGIN (для фронта на :3033 — http://localhost:3033).
#
# Сеть (имя должно существовать, как у вашего Postgres):
#   docker network ls
#
# Запуск:
#   docker compose -f docker-compose.stack.yml up -d --build
#
# Миграции и seed (один раз после появления БД):
#   docker compose -f docker-compose.stack.yml exec runners-calendar-backend node dist/migrate.js
#   docker compose -f docker-compose.stack.yml exec runners-calendar-backend node dist/seed.js
#
# NPM: проброс на порт 3033. Браузер ходит на /api → nginx во фронте → runners-calendar-backend:3000.
# Имя сервиса уникально в общей сети (не «backend»), чтобы не пересекаться с другими стеками.

services:
  runners-calendar-backend:
    build:
      context: .
      dockerfile: Dockerfile.backend
    container_name: runners-calendar-backend
    env_file:
      - .env
    environment:
      - PORT=3000
    ports:
      - "3001:3000"
    volumes:
      # CSV и прочие данные import/ на хосте (Synology: ./import рядом с compose) без пересборки образа
      - ./import:/app/import:ro
    restart: unless-stopped
    networks:
      - postgres_default

  frontend:
    build:
      context: .
      dockerfile: Dockerfile.frontend
    container_name: runners-calendar-frontend
    depends_on:
      - runners-calendar-backend
    ports:
      - "3033:80"
    restart: unless-stopped
    networks:
      - postgres_default

networks:
  postgres_default:
    external: true
