name: benedikta x-lva-env: &lva-env environment: # Linux-Voice-Assistant - Docker Environment Configuration # Copy this file to .env and customize for your setup by 'cp .env.example .env' ### Enable debug mode (optional): ENABLE_DEBUG: "1" ### List audio devices (optional): # if enabled normal startup is disabled # LIST_DEVICES="1" ### User ID: # This is used to set the correct permissions for the accessing the audio device and accessing the PulseAudio socket LVA_USER_ID: 1000 LVA_USER_GROUP: 1000 ### Name for the client (optional): CLIENT_NAME: "benedikta" ### PulseAudio socket path on the host: # PulseAudio Server: /run/user/1000/pulse # Pipewire Server: /run/user/1000/pulse/native LVA_PULSE_SERVER: unix:/run/user/1000/pulse/native LVA_XDG_RUNTIME_DIR: /run/user/1000 PULSE_SERVER: unix:/run/user/1000/pulse/native XDG_RUNTIME_DIR: "/run/user/1000" ### Path to the preferences file (optional): # PREFERENCES_FILE="/app/configuration/preferences.json" ### Network interface (optional): # NETWORK_INTERFACE="eth0" ### IP-Address for the api (optional): # HOST="0.0.0.0" ### Port for the api (optional): # PORT="6053" ### Audio input device (optional): # AUDIO_INPUT_DEVICE="default" ### Audio output device (optional): # AUDIO_OUTPUT_DEVICE="default" ### Enable thinking sound (optional): ENABLE_THINKING_SOUND: "1" ### Wake word directory (optional): # path for custom files in docker is for example "app/wakewords/custom" # WAKE_WORD_DIR="app/wakewords" ### Wake model (optional): WAKE_MODEL: "hey_luna" ### Stop model (optional): # STOP_MODEL="stop" ### Refactory seconds (optional): # REFACTORY_SECONDS="2" ### Sound files (optional): # path for custom files in docker is for example "sounds/custom/your_soundfile.flac" # WAKEUP_SOUND="sounds/wake_word_triggered.flac" # TIMER_FINISHED_SOUND="sounds/timer_finished.flac" # PROCESSING_SOUND="sounds/processing.wav" # MUTE_SOUND="sounds/mute_switch_on.flac" # UNMUTE_SOUND="sounds/mute_switch_off.flac" services: beszel-agent: container_name: beszel-agent environment: LISTEN: 45876 KEY: ${BESZEL_BENEDIKTA_AGENT_KEY} TOKEN: ${BESZEL_BENEDIKTA_TOKEN} HUB_URL: http://192.168.1.254:22220 expose: - 45876 image: henrygd/beszel-agent:latest@sha256:8874e2c53f9de5e063a6a80d6b617e20fa593ac5dc4eb4c6ce1f912f510f38f8 network_mode: host restart: unless-stopped volumes: - beszel-agent-data:/var/lib/beszel-agent - /var/run/docker.sock:/var/run/docker.sock:ro - /dev/mmcblk0:/extra-filesystems/dev/mmcblk0:ro docker-socket-proxy: container_name: dockerproxy environment: AUTH: 1 BUILD: 1 COMMIT: 1 CONFIGS: 1 CONTAINERS: 1 DISTRIBUTION: 1 EVENTS: 1 EXEC: 1 GPRC: 1 IMAGES: 1 INFO: 1 NETWORKS: 1 NODES: 1 POST: 1 PLUGINS: 1 SERVICES: 1 SESSION: 1 SYSTEM: 1 TASKS: 1 VOLUMES: 1 LOG_LEVEL: debug image: ghcr.io/tecnativa/docker-socket-proxy:latest@sha256:1f3a6f303320723d199d2316a3e82b2e2685d86c275d5e3deeaf182573b47476 ports: - 2375:2375 privileged: true restart: unless-stopped volumes: - /var/run/docker.sock:/var/run/docker.sock faster-whisper: container_name: faster-whisper environment: PUID: ${PUID} PGID: ${PGID} TZ: ${TZ} WHISPER_MODEL: large LOCAL_ONLY: #optional WHISPER_BEAM: 1 #optional WHISPER_LANG: en #optional image: lscr.io/linuxserver/faster-whisper:latest@sha256:e3c60c49e27cb3af718d1540555b448fd102e92612159af1bf9101b3faa3574b ports: - "10300:10300" restart: unless-stopped volumes: - ${BENEDIKTA_DOCKER_DIR}/faster-whisper/:/config linux-voice-assistant: container_name: linux-voice-assistant image: ghcr.io/ohf-voice/linux-voice-assistant:1.1.10@sha256:cd04acd204c647da2663704c694f963d6a3c59e2815ddfcd83aa6114d41e36d5 restart: unless-stopped network_mode: "host" user: "${PUID}:${PGID}" group_add: - audio environment: ENABLE_DEBUG: 1 ENABLE_THINKING_SOUND: 1 WAKE_MODEL: "hey_luna" # Pulseaudio PULSE_SERVER: ${LVA_PULSE_SERVER} PULSE_COOKIE: /run/user/1000/pulse/cookie XDG_RUNTIME_DIR: ${LVA_XDG_RUNTIME_DIR} # Priority for audio process AUDIO_INPUT_DEVICE: alsa_input.platform-soc_107c000000_sound.stereo-fallback AUDIO_OUTPUT_DEVICE: pipewire/alsa_output.platform-soc_107c000000_sound.stereo-fallback cap_add: - SYS_NICE volumes: # Wakeword data and configuration - lva_wakeword_data:/app/local - lva_wakeword_custom:/app/wakewords/custom - lva_configuration:/app/configuration # Time and zone - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro # Pulseaudio - ${LVA_XDG_RUNTIME_DIR}:${LVA_XDG_RUNTIME_DIR} depends_on: - lva-fix-permissions # Health check for process healthcheck: test: [ "CMD", "pgrep", "-f", "linux_voice_assistant" ] interval: 30s timeout: 5s retries: 3 start_period: 90s lva-fix-permissions: container_name: lva-fix-permissions image: "ghcr.io/ohf-voice/linux-voice-assistant:latest@sha256:cd04acd204c647da2\ 663704c694f963d6a3c59e2815ddfcd83aa6114d41e36d5" entrypoint: [] command: "chown -R ${PUID}:${PGID} /app/local /app/configuration /app/wakewords/custom /app/sounds/custom" <<: *lva-env group_add: - audio volumes: # Wakeword data and configuration - lva_wakeword_data:/app/local - lva_wakeword_custom:/app/wakewords/custom - lva_configuration:/app/configuration - ${BENEDIKTA_DOCKER_DIR}/linux-voice-assistant/sounds/custom:/app/sounds/custom restart: "no" piper: container_name: piper environment: PUID: ${PUID} PGID: ${PGID} TZ: ${TZ} PIPER_VOICE: en_GB-jenny_dioco-medium LOCAL_ONLY: #optional PIPER_LENGTH: 1.0 #optional PIPER_NOISE: 0.667 #optional PIPER_NOISEW: 0.333 #optional PIPER_SPEAKER: 0 #optional NO_STREAMING: #optional image: lscr.io/linuxserver/piper:latest@sha256:03a9e73377ddeedc549d1aa8dcec698ab1fbdd19b172d1d069312c7046f951c2 ports: - 10200:10200 restart: unless-stopped volumes: - ${BENEDIKTA_DOCKER_DIR}/piper/:/config portainer-agent: container_name: portainer_agent image: portainer/agent:latest@sha256:7af856876dcb2778108bf6846f3da31b176443db90e3de31fcfdf17e5ab7857e volumes: - /:/host - /var/lib/docker/volumes:/var/lib/docker/volumes - /var/run/docker.sock:/var/run/docker.sock restart: always ports: - 9001:9001 signoz-logspout: command: signoz://192.168.1.254:8082 container_name: signoz-logspout environment: ENV: prod SIGNOZ_LOG_ENDPOINT: http://192.168.1.254:8082 image: pavanputhra/logspout-signoz@sha256:6da8ce12279a5262de8b2d5c083ce82d4c878c4eab702b4d328afe147ed7553b restart: unless-stopped volumes: - /var/run/docker.sock:/var/run/docker.sock volumes: beszel-agent-data: name: beszel-agent-data lva_wakeword_data: name: lva_wakeword_data lva_wakeword_custom: name: lva_wakeword_custom lva_configuration: name: lva_configuration