services:
  # Backend Service (Node.js App)
  backend:
    # Verwendet ein bereits gebautes Image
    image: mrunknownde/utools-backend
    container_name: utools_backend
    restart: unless-stopped
    environment:
      # Setze Umgebungsvariablen für das Backend
      NODE_ENV: production # Wichtig für Performance und Logging
      PORT: 3000 # Port innerhalb des Containers
      LOG_LEVEL: info # Oder 'warn' für weniger Logs in Produktion
      PING_COUNT: 4
      # Die DB-Pfade werden aus dem Backend-Dockerfile ENV genommen,
      # könnten hier aber überschrieben werden, falls nötig.
      # GEOIP_CITY_DB: ./data/GeoLite2-City.mmdb
      # GEOIP_ASN_DB: ./data/GeoLite2-ASN.mmdb
      # Sentry DSN aus der Umgebung/ .env Datei übernehmen
      SENTRY_DSN: "https://7ea70caba68f548fb96482a573006a7b@o447623.ingest.us.sentry.io/4509062020333568" # Wichtig für die Laufzeit
    dns:
      - 1.1.1.1    # Cloudflare DNS
      - 1.0.0.1    # Cloudflare DNS
      - 8.8.8.8    # Google DNS
      - 8.8.4.4    # Google DNS
    networks:
      - utools_network # Verbinde mit unserem benutzerdefinierten Netzwerk

  # Frontend Service (Nginx)
  frontend:
    # Verwendet ein bereits gebautes Image
    image: mrunknownde/utools-frontend
    container_name: utools_frontend
    restart: unless-stopped
    ports:
      # Mappe Port 8080 vom Host auf Port 80 im Container (wo Nginx lauscht)
      # Zugriff von außen (Browser) erfolgt über localhost:8080
      - "8080:80"
    depends_on:
      - backend # Stellt sicher, dass Backend gestartet wird (aber nicht unbedingt bereit ist)
    networks:
      - utools_network # Verbinde mit unserem benutzerdefinierten Netzwerk

# Definiere ein benutzerdefiniertes Netzwerk (gute Praxis)
networks:
  utools_network:
    driver: bridge