Ctrl K
ComunidadGuías…

docker-compose.yml

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

Archivo original ↗Preguntar a KiBot
services:
  squelch:
    image: ghcr.io/revtex/squelch:dev
    # build: .  # uncomment to build locally instead
    ports:
      - "3022:3022"
      # - "3443:3443"  # HTTPS — uncomment with SSL_LISTEN below
    volumes:
      - ./data:/data
    environment:
      ## Core
      - SQUELCH_DB_FILE=/data/squelch.db
      - SQUELCH_RECORDINGS_DIR=/data/recordings
      - SQUELCH_LISTEN=0.0.0.0:3022
      - TZ=America/New_York
      # - SQUELCH_TIMEZONE=America/New_York  # overrides TZ for Squelch only

      ## TLS / HTTPS (pick one option)
      # Option A — your own certificate:
      # - SQUELCH_SSL_LISTEN=0.0.0.0:3443
      # - SQUELCH_SSL_CERT=/data/tls/cert.pem
      # - SQUELCH_SSL_KEY=/data/tls/key.pem
      # Option B — automatic Let's Encrypt:
      # - SQUELCH_SSL_AUTO_CERT=scanner.example.com

      ## Secrets encryption (AES-256-GCM) — recommended
      # Put the key in a .env file next to this docker-compose.yml:
      #   echo "SQUELCH_ENCRYPTION_KEY=$(openssl rand -hex 32)" > .env
      #   chmod 600 .env
      # Compose auto-loads .env and substitutes ${SQUELCH_ENCRYPTION_KEY}.
      # Remember to add .env to .gitignore.
      - SQUELCH_ENCRYPTION_KEY=${SQUELCH_ENCRYPTION_KEY:-}

      ## Admin password reset (remove after first startup)
      # - SQUELCH_ADMIN_PASSWORD=new-password
    healthcheck:
      test: ["CMD", "wget", "-qO-", "http://localhost:3022/api/v1/health"]
      interval: 30s
      timeout: 5s
      start_period: 10s
      retries: 3
    restart: unless-stopped

  # Transcription sidecar (go-whisper).
  # Set transcriptionEnabled=true and transcriptionUrl=http://whisper:8081
  # in Squelch admin settings.
  #
  # Default: CPU-only (most compatible). See GPU examples below.
  whisper:
    image: ghcr.io/mutablelogic/go-whisper
    volumes:
      - whisper-data:/data
    environment:
      - GOWHISPER_DIR=/data
      - GOWHISPER_ADDR=0.0.0.0:8081
    command: ["run"]
    restart: unless-stopped

  # # --- Intel iGPU (UHD 630, Arc, etc.) — Vulkan/OpenCL via /dev/dri ---
  # # NOTE: Vulkan backend may crash with "vk::DeviceLostError" on some drivers.
  # # If you see repeated crashes, use the CPU-only config above instead.
  # # Verify GIDs on your host:  stat -c '%g' /dev/dri/render* /dev/dri/card*
  # whisper:
  #   image: ghcr.io/mutablelogic/go-whisper
  #   volumes:
  #     - whisper-data:/data
  #   devices:
  #     - /dev/dri:/dev/dri
  #   group_add:
  #     - "110"   # render — adjust to match your host GID
  #     - "44"    # video  — adjust to match your host GID
  #   environment:
  #     - GOWHISPER_DIR=/data
  #     - GOWHISPER_ADDR=0.0.0.0:8081
  #   command: ["run"]
  #   restart: unless-stopped

  # # --- NVIDIA GPU example ---
  # whisper:
  #   image: ghcr.io/mutablelogic/go-whisper-cuda
  #   volumes:
  #     - whisper-data:/data
  #   environment:
  #     - GOWHISPER_DIR=/data
  #     - GOWHISPER_ADDR=0.0.0.0:8081
  #   command: ["run"]
  #   deploy:
  #     resources:
  #       reservations:
  #         devices:
  #           - driver: nvidia
  #             count: 1
  #             capabilities: [gpu]
  #   restart: unless-stopped

  # # --- AMD GPU example (ROCm) ---
  # whisper:
  #   image: ghcr.io/mutablelogic/go-whisper
  #   volumes:
  #     - whisper-data:/data
  #   devices:
  #     - /dev/kfd:/dev/kfd
  #     - /dev/dri:/dev/dri
  #   group_add:
  #     - "render"
  #     - "video"
  #   environment:
  #     - GOWHISPER_DIR=/data
  #     - GOWHISPER_ADDR=0.0.0.0:8081
  #   command: ["run"]
  #   restart: unless-stopped

volumes:
  whisper-data: