# Stack complet Skori, à lancer sur l'hôte 192.168.10.174 :
#   docker compose up -d --build
# Accès : http://192.168.10.174:8080
#
# Simplifié pour l'instant : mots de passe en dur (pas de .env), déploiement HTTP
# sur le LAN. nginx sert le frontend et proxifie /api vers le backend (même
# origine), donc le navigateur ne contacte que 192.168.10.174:8080.
version: '3.8'

services:
  board-score:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: board-score-app
    restart: unless-stopped
    ports:
      - "8080:80"
    depends_on:
      - backend

  backend:
    build:
      context: ./server
      dockerfile: Dockerfile
    container_name: skori-backend
    restart: unless-stopped
    environment:
      NODE_ENV: production
      PORT: 3001
      DATABASE_URL: postgres://skori:skori@postgres:5432/skori
      JWT_SECRET: skori-lan-secret-please-change-later
      # HTTP sur le LAN : le cookie refresh ne doit pas être en Secure
      COOKIE_SECURE: "false"
    depends_on:
      postgres:
        condition: service_healthy

  postgres:
    image: postgres:16-alpine
    container_name: skori-postgres
    restart: unless-stopped
    environment:
      POSTGRES_USER: skori
      POSTGRES_PASSWORD: skori
      POSTGRES_DB: skori
    volumes:
      - skori-pgdata:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U skori -d skori"]
      interval: 5s
      timeout: 5s
      retries: 10

volumes:
  skori-pgdata:
