services:
  ipwatch:
    build: .
    container_name: ipwatch
    restart: unless-stopped

    # Réseau host pour accès complet au réseau local
    network_mode: host

    # Privilèges pour scan réseau (ping, ARP)
    privileged: true
    cap_add:
      - NET_ADMIN
      - NET_RAW

    volumes:
      # Volume pour la configuration
      - ./config.yaml:/app/config.yaml:ro

      # Volume pour la base de données
      - ./data:/app/data

      # Volume pour l'architecture (ressources + projets)
      - ./architecture:/app/architecture

      # Volume pour les logs (optionnel)
      - ./logs:/app/logs

    environment:
      - TZ=Europe/Paris

    # Healthcheck
    healthcheck:
      test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8080/health')"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

# Créer les volumes nommés si nécessaire
volumes:
  ipwatch-data:
  ipwatch-logs:
