Ctrl K
ComunidadGuías…

docker-compose.yml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
services:
  louis:
    image: stuartromanek/louis:latest
    # Equivalent: ghcr.io/stuartromanek/louis:latest
    build:
      context: .
      args:
        # Change on rebuild to pull latest yt-dlp nightly (CI sets this automatically).
        YTDLP_CACHE_BUST: ${YTDLP_CACHE_BUST:-}
    # Bridge networking keeps this file working with Coolify and Docker Desktop.
    # On a Linux NAS/homelab, prefer deploy/portainer/docker-compose.yml, which
    # uses host networking so yt-dlp can reach YouTube over IPv6 (see docs/HOSTING.md).
    ports:
      - "4000:4000"
    environment:
      NODE_ENV: production
      HOST: 0.0.0.0
      PORT: 4000
      LOUIS_AUDIO_WORK_DIR: /data/audio
      # Image default is false (LAN HTTP). Set true behind HTTPS.
      LOUIS_COOKIE_SECURE: ${LOUIS_COOKIE_SECURE:-false}
      LOUIS_YOTO_CLIENT_ID: ${LOUIS_YOTO_CLIENT_ID:-}
      LOUIS_YOUTUBE_API_KEY: ${LOUIS_YOUTUBE_API_KEY:-}
      # Optional pin. Unset = OAuth callback uses the Host the browser actually used.
      LOUIS_YOTO_REDIRECT_URI: ${LOUIS_YOTO_REDIRECT_URI:-}
      LOUIS_YOTO_CLIENT_SECRET: ${LOUIS_YOTO_CLIENT_SECRET:-}
    volumes:
      - louis-audio:/data/audio
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:4000/api/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

volumes:
  louis-audio: