diff --git a/ovos-compose/.env-raspberrypi b/ovos-compose/.env-raspberrypi deleted file mode 100644 index 628d2a6..0000000 --- a/ovos-compose/.env-raspberrypi +++ /dev/null @@ -1,53 +0,0 @@ -# OpenVoiceOS Docker Compose Environment Configuration for Raspberry Pi -# Optimized for Raspberry Pi hardware with Docker best practices - -# User and Group Configuration (defined first to avoid circular references) -OVOS_USER=ovos -HIVEMIND_USER=hivemind - -# Display and Graphics Configuration -DISPLAY=:0 -WAYLAND_DISPLAY=wayland-0 -XDG_RUNTIME_DIR=/run/user/1000 - -# Qt/GUI Configuration for Raspberry Pi -QT_QPA_PLATFORM=eglfs -QT_QPA_EGLFS_INTEGRATION=eglfs_kms -QT_QPA_EGLFS_KMS_CONFIG=/home/ovos/.config/mycroft/ovos-eglfs.json - -# Raspberry Pi specific Group IDs -GPIO_GID=997 -I2C_GID=994 -INPUT_GID=102 -RENDER_GID=106 -SPI_GID=995 -VIDEO_GID=44 - -# Directory Configuration -OVOS_CONFIG_FOLDER=/home/ovos/ovos/config -OVOS_CONFIG_PHAL_FOLDER=/home/ovos/ovos/config/phal -OVOS_PERSONA_FOLDER=/home/ovos/ovos/config/persona -OVOS_SHARE_FOLDER=/home/ovos/ovos/share -TMP_FOLDER=/home/ovos/ovos/tmp - -HIVEMIND_CONFIG_FOLDER=/home/hivemind/hivemind/config -HIVEMIND_CONFIG_PHAL_FOLDER=/home/hivemind/hivemind/config/phal -HIVEMIND_SHARE_FOLDER=/home/hivemind/hivemind/share - -# Docker Configuration -VERSION=alpha -PULL_POLICY=always - -# Audio Configuration (Raspberry Pi specific) -PULSE_SERVER=unix:/run/user/1000/pulse/native -PULSE_COOKIE=/home/ovos/.config/pulse/cookie - -# Timezone Configuration -TZ=America/Montreal - -# Resource Management (Raspberry Pi optimized) -# These can be overridden in compose files for specific services -DEFAULT_MEMORY_LIMIT=256M -DEFAULT_MEMORY_RESERVATION=64M -CORE_MEMORY_LIMIT=512M -CORE_MEMORY_RESERVATION=128M diff --git a/ovos-compose/.env.example b/ovos-compose/.env.example deleted file mode 100644 index 25e2816..0000000 --- a/ovos-compose/.env.example +++ /dev/null @@ -1,120 +0,0 @@ -# OpenVoiceOS Docker Compose Environment Configuration -# Optimized version with improved defaults and documentation -# Copy this file to .env and modify the values as needed - -# ============================================================================= -# USER AND GROUP CONFIGURATION -# ============================================================================= -# Primary users (defined first to avoid circular references) -OVOS_USER=ovos -HIVEMIND_USER=hivemind - -# ============================================================================= -# DISPLAY AND GRAPHICS CONFIGURATION -# ============================================================================= -# X11 Display configuration -DISPLAY=:0 -WAYLAND_DISPLAY=wayland-0 -XDG_RUNTIME_DIR=/run/user/1000 - -# Qt/GUI Configuration -QT_QPA_PLATFORM=eglfs -QT_QPA_EGLFS_INTEGRATION=eglfs_kms -QT_QPA_EGLFS_KMS_CONFIG=/home/ovos/.config/mycroft/ovos-eglfs.json - -# ============================================================================= -# SYSTEM GROUP CONFIGURATION -# ============================================================================= - -# System Group IDs (adjust based on your system) -# Use: getent group | cut -d: -f3 -INPUT_GID=102 -RENDER_GID=106 -VIDEO_GID=44 - -# Raspberry Pi specific Group IDs (only used on Pi) -GPIO_GID=997 -I2C_GID=994 -SPI_GID=995 - -# ============================================================================= -# DIRECTORY CONFIGURATION -# ============================================================================= -# OVOS directories -OVOS_CONFIG_FOLDER=/home/ovos/ovos/config -OVOS_CONFIG_PHAL_FOLDER=/home/ovos/ovos/config/phal -OVOS_PERSONA_FOLDER=/home/ovos/ovos/config/persona -OVOS_SHARE_FOLDER=/home/ovos/ovos/share -TMP_FOLDER=/home/ovos/ovos/tmp - -# Hivemind directories -HIVEMIND_CONFIG_FOLDER=/home/hivemind/hivemind/config -HIVEMIND_CONFIG_PHAL_FOLDER=/home/hivemind/hivemind/config/phal -HIVEMIND_SHARE_FOLDER=/home/hivemind/hivemind/share - -# ============================================================================= -# DOCKER CONFIGURATION -# ============================================================================= -# Image version and pull policy -VERSION=alpha -PULL_POLICY=always - -# ============================================================================= -# SYSTEM CONFIGURATION -# ============================================================================= -# Timezone configuration -TZ=UTC - -# ============================================================================= -# PLATFORM-SPECIFIC OVERRIDES -# ============================================================================= -# Uncomment and modify based on your platform: - -# For macOS: -# PULSE_SERVER=docker.for.mac.host.internal - -# For Windows WSL: -# PULSE_SERVER=/mnt/wslg/PulseServer -# XDG_RUNTIME_DIR=/mnt/wslg - -# For standard Linux: -# PULSE_SERVER=unix:/run/user/1000/pulse/native - -# ============================================================================= -# RESOURCE LIMITS (Optional - uncomment to override defaults) -# ============================================================================= -# Memory limits for different service types -# CORE_MEMORY_LIMIT=1G -# STANDARD_MEMORY_LIMIT=512M -# LIGHT_MEMORY_LIMIT=256M - -# CPU limits -# CORE_CPU_LIMIT=1.0 -# STANDARD_CPU_LIMIT=0.5 - -# ============================================================================= -# ADVANCED CONFIGURATION -# ============================================================================= -# Health check intervals (uncomment to override defaults) -# HEALTH_CHECK_INTERVAL=30s -# HEALTH_CHECK_TIMEOUT=10s -# HEALTH_CHECK_RETRIES=3 - -# Logging configuration -# LOG_MAX_SIZE=200m -# LOG_MAX_FILES=1 - -# ============================================================================= -# SECURITY CONFIGURATION -# ============================================================================= -# Set to 'true' to enable additional security features -# ENABLE_APPARMOR=false -# ENABLE_SECCOMP=false - -# ============================================================================= -# DEVELOPMENT CONFIGURATION -# ============================================================================= -# Development mode settings (uncomment for development) -# DEV_MODE=false -# DEBUG_LOGGING=false -# ENABLE_PROFILING=false diff --git a/ovos-compose/docker-compose.gui.yml b/ovos-compose/docker-compose.gui.yml deleted file mode 100644 index 2e95660..0000000 --- a/ovos-compose/docker-compose.gui.yml +++ /dev/null @@ -1,211 +0,0 @@ ---- -x-podman: &podman - userns_mode: keep-id - security_opt: - - "label=disable" - -x-logging: &default-logging - driver: json-file - options: - mode: non-blocking - max-buffer-size: 4m - max-size: "200m" - max-file: "1" - -x-common-environment: &common-environment - TZ: ${TZ:-UTC} - -x-gui-environment: &gui-environment - <<: *common-environment - DBUS_SESSION_BUS_ADDRESS: unix:path=${XDG_RUNTIME_DIR}/bus - DISPLAY: ${DISPLAY} - PULSE_SERVER: unix:${XDG_RUNTIME_DIR}/pulse/native - PULSE_COOKIE: /home/${OVOS_USER}/.config/pulse/cookie - QML2_IMPORT_PATH: /usr/lib/qml - QT_QPA_PLATFORM: ${QT_QPA_PLATFORM} - QT_QPA_EGLFS_HIDECURSOR: 1 - QT_QPA_EGLFS_KMS_ATOMIC: 1 - QT_QPA_EGLFS_INTEGRATION: ${QT_QPA_EGLFS_INTEGRATION} - QT_QPA_EGLFS_KMS_CONFIG: ${QT_QPA_EGLFS_KMS_CONFIG} - QT_QPA_PLATFORMTHEME: qt5ct - QT_PLUGIN_PATH: /usr/lib/qt/plugins:/usr/lib/plugins:/usr/lib/plugins/kf5 - QT_FILE_SELECTORS: ovos - QT_FONT_DPI: 120 - QT_IM_MODULE: qtvirtualkeyboard - QT_QUICK_CONTROLS_STYLE: OpenVoiceStyle - WAYLAND_DISPLAY: ${WAYLAND_DISPLAY} - XDG_CURRENT_DESKTOP: kde - XDG_RUNTIME_DIR: ${XDG_RUNTIME_DIR} - -x-resource-limits: &resource-limits - deploy: - resources: - limits: - memory: 512M - reservations: - memory: 128M - -x-gui-resource-limits: &gui-resource-limits - deploy: - resources: - limits: - memory: 1G - cpus: "1.0" - reservations: - memory: 256M - cpus: "0.25" - -x-skill-resource-limits: &skill-resource-limits - deploy: - resources: - limits: - memory: 256M - reservations: - memory: 64M - -volumes: - ovos_gui_files: - name: ovos_gui_files - driver: local - -services: - ovos_gui_websocket: - <<: [*podman, *resource-limits] - container_name: ovos_gui_websocket - hostname: ovos_gui_websocket - restart: unless-stopped - image: docker.io/smartgic/ovos-gui-websocket:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *common-environment - network_mode: host - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft:ro - - ovos_gui_files:/home/${OVOS_USER}/.cache/ovos_gui_file_server - - ${TMP_FOLDER}:/tmp/mycroft - depends_on: - ovos_messagebus: - condition: service_started - healthcheck: - test: ["CMD", "pgrep", "-f", "ovos-gui-service"] - interval: 30s - timeout: 10s - retries: 3 - start_period: 15s - - ovos_gui: - <<: [*podman, *gui-resource-limits] - container_name: ovos_gui - hostname: ovos_gui - restart: unless-stopped - image: docker.io/smartgic/ovos-gui-shell:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *gui-environment - network_mode: host - devices: - - /dev/input - - /dev/dri - - /dev/snd - group_add: - - ${INPUT_GID} - - ${RENDER_GID} - - ${VIDEO_GID} - volumes: - - ~/.config/pulse/cookie:/home/${OVOS_USER}/.config/pulse/cookie:ro - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft:ro - - ${TMP_FOLDER}:/tmp/mycroft - - ${XDG_RUNTIME_DIR}:${XDG_RUNTIME_DIR}:ro - - ${XDG_RUNTIME_DIR}/bus:${XDG_RUNTIME_DIR}/bus:ro - - ${XDG_RUNTIME_DIR}/pipewire-0:${XDG_RUNTIME_DIR}/pipewire-0:ro - - ${XDG_RUNTIME_DIR}/pulse:${XDG_RUNTIME_DIR}/pulse:ro - - ${OVOS_SHARE_FOLDER}:/home/${OVOS_USER}/.local/share/mycroft - - ovos_gui_files:/home/${OVOS_USER}/.cache/gui_files - - /run/udev/data:/run/udev/data:ro - depends_on: - ovos_messagebus: - condition: service_started - # ovos_gui_websocket: - # condition: service_started - ovos_phal: - condition: service_started - healthcheck: - test: ["CMD", "pgrep", "-f", "ovos-shell"] - interval: 30s - timeout: 10s - retries: 3 - start_period: 30s - - ######################## - # Uncomment this service if you want to use the original GUI - # without the Open Voice OS Shell layer - ######################## - # ovos_gui_original: - # <<: [*podman, *gui-resource-limits] - # container_name: ovos_gui_original - # hostname: ovos_gui_original - # restart: unless-stopped - # image: docker.io/smartgic/ovos-gui-original:${VERSION} - # logging: *default-logging - # pull_policy: ${PULL_POLICY:-always} - # environment: - # <<: *gui-environment - # DISPLAY: :0 - # network_mode: host - # devices: - # - /dev/input - # - /dev/dri - # - /dev/snd - # group_add: - # - ${INPUT_GID} - # - ${RENDER_GID} - # - ${VIDEO_GID} - # volumes: - # - ~/.config/pulse/cookie:/home/${OVOS_USER}/.config/pulse/cookie:ro - # - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft:ro - # - ${TMP_FOLDER}:/tmp/mycroft - # - ${XDG_RUNTIME_DIR}:${XDG_RUNTIME_DIR}:ro - # - ${XDG_RUNTIME_DIR}/bus:${XDG_RUNTIME_DIR}/bus:ro - # - ${XDG_RUNTIME_DIR}/pipewire-0:${XDG_RUNTIME_DIR}/pipewire-0:ro - # - ${XDG_RUNTIME_DIR}/pulse:${XDG_RUNTIME_DIR}/pulse:ro - # - ${OVOS_SHARE_FOLDER}:/home/${OVOS_USER}/.local/share/mycroft - # - /run/udev/data:/run/udev/data:ro - # depends_on: - # ovos_messagebus: - # condition: service_started - # ovos_gui_websocket: - # condition: service_started - # ovos_phal: - # condition: service_started - # healthcheck: - # test: ["CMD", "pgrep", "-f", "ovos-gui"] - # interval: 30s - # timeout: 10s - # retries: 3 - # start_period: 30s - - ovos_skill_homescreen: - <<: [*podman, *skill-resource-limits] - container_name: ovos_skill_homescreen - hostname: ovos_skill_homescreen - restart: unless-stopped - image: docker.io/smartgic/ovos-skill-homescreen:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *common-environment - network_mode: host - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - depends_on: - ovos_core: - condition: service_started - healthcheck: - test: ["CMD", "pgrep", "-f", "skill-ovos-homescreen"] - interval: 30s - timeout: 10s - retries: 3 - start_period: 15s diff --git a/ovos-compose/docker-compose.hivemind.yml b/ovos-compose/docker-compose.hivemind.yml deleted file mode 100644 index d156f23..0000000 --- a/ovos-compose/docker-compose.hivemind.yml +++ /dev/null @@ -1,63 +0,0 @@ ---- -x-podman: &podman - userns_mode: keep-id - security_opt: - - "label=disable" - -x-logging: &default-logging - driver: json-file - options: - mode: non-blocking - max-buffer-size: 4m - max-size: "200m" - max-file: "1" - -x-common-environment: &common-environment - TZ: ${TZ:-UTC} - -x-light-resource-limits: &light-resource-limits - deploy: - resources: - limits: - memory: 256M - reservations: - memory: 64M - -x-hivemind-base: &hivemind-base - <<: [*podman, *light-resource-limits] - restart: unless-stopped - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - tty: true - environment: - <<: *common-environment - network_mode: host - volumes: - - ${HIVEMIND_CONFIG_FOLDER}:/home/${HIVEMIND_USER}/.config/hivemind:z - - ${HIVEMIND_SHARE_FOLDER}:/home/${HIVEMIND_USER}/.local/share/hivemind:z - healthcheck: - interval: 30s - timeout: 10s - retries: 3 - start_period: 15s - -services: - hivemind_listener: - <<: *hivemind-base - container_name: hivemind_listener - hostname: hivemind_listener - image: docker.io/smartgic/hivemind-listener:${VERSION} - depends_on: - ovos_core: - condition: service_started - healthcheck: - test: ["CMD", "pgrep", "-f", "hivemind-listener"] - - hivemind_cli: - <<: *hivemind-base - container_name: hivemind_cli - hostname: hivemind_cli - image: docker.io/smartgic/hivemind-cli:${VERSION} - depends_on: - hivemind_listener: - condition: service_started diff --git a/ovos-compose/docker-compose.macos.yml b/ovos-compose/docker-compose.macos.yml deleted file mode 100644 index 2fe6004..0000000 --- a/ovos-compose/docker-compose.macos.yml +++ /dev/null @@ -1,237 +0,0 @@ ---- -x-podman: &podman - userns_mode: keep-id - security_opt: - - "label=disable" - -x-logging: &default-logging - driver: json-file - options: - mode: non-blocking - max-buffer-size: 4m - max-size: "200m" - max-file: "1" - -x-common-environment: &common-environment - TZ: ${TZ:-UTC} - -x-audio-environment: &audio-environment - <<: *common-environment - PULSE_SERVER: ${PULSE_SERVER:-docker.for.mac.host.internal} - PULSE_COOKIE: /home/${OVOS_USER}/.config/pulse/cookie - -x-resource-limits: &resource-limits - deploy: - resources: - limits: - memory: 512M - reservations: - memory: 128M - -x-core-resource-limits: &core-resource-limits - deploy: - resources: - limits: - memory: 1G - cpus: "1.0" - reservations: - memory: 256M - cpus: "0.25" - -volumes: - ovos_models: - name: ovos_models - driver: local - ovos_vosk: - name: ovos_vosk - driver: local - ovos_listener_records: - name: ovos_listener_records - driver: local - ovos_tts_cache: - name: ovos_tts_cache - driver: local - ovos_nltk: - name: ovos_nltk - driver: local - ovos_local_state: - name: ovos_local_state - driver: local - -services: - ovos_messagebus: - <<: [*podman, *resource-limits] - container_name: ovos_messagebus - hostname: ovos_messagebus - restart: unless-stopped - image: docker.io/smartgic/ovos-messagebus:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *common-environment - network_mode: host - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft:ro - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - - ovos_phal: - <<: [*podman, *resource-limits] - container_name: ovos_phal - hostname: ovos_phal - restart: unless-stopped - image: docker.io/smartgic/ovos-phal:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *audio-environment - network_mode: host - privileged: true - volumes: - - ~/.config/pulse/cookie:/home/${OVOS_USER}/.config/pulse/cookie:ro - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - depends_on: - ovos_messagebus: - condition: service_started - - ovos_phal_admin: - <<: [*podman, *resource-limits] - container_name: ovos_phal_admin - hostname: ovos_phal_admin - restart: unless-stopped - image: docker.io/smartgic/ovos-phal-admin:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *common-environment - network_mode: host - privileged: true - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - - /dev:/dev:ro - depends_on: - ovos_messagebus: - condition: service_started - - ovos_listener: - <<: [*podman, *resource-limits] - container_name: ovos_listener - hostname: ovos_listener - restart: unless-stopped - image: docker.io/smartgic/ovos-listener:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *audio-environment - network_mode: host - volumes: - - ~/.config/pulse/cookie:/home/${OVOS_USER}/.config/pulse/cookie:ro - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft:ro - - ovos_listener_records:/home/${OVOS_USER}/.local/share/mycroft/listener - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ovos_models:/home/${OVOS_USER}/.local/share/precise-lite - - ovos_vosk:/home/${OVOS_USER}/.local/share/vosk - - ${TMP_FOLDER}:/tmp/mycroft - depends_on: - ovos_messagebus: - condition: service_started - ovos_phal: - condition: service_started - - ovos_plugin_ggwave: - <<: [*podman, *resource-limits] - container_name: ovos_plugin_ggwave - hostname: ovos_plugin_ggwave - restart: unless-stopped - image: docker.io/smartgic/ovos-plugin-ggwave:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *audio-environment - network_mode: host - volumes: - - ~/.config/pulse/cookie:/home/${OVOS_USER}/.config/pulse/cookie:ro - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft:ro - - ${TMP_FOLDER}:/tmp/mycroft - depends_on: - ovos_messagebus: - condition: service_started - ovos_phal: - condition: service_started - healthcheck: - test: ["CMD", "pgrep", "-f", "ggwave"] - interval: 30s - timeout: 10s - retries: 3 - start_period: 15s - - ovos_audio: - <<: [*podman, *resource-limits] - container_name: ovos_audio - hostname: ovos_audio - restart: unless-stopped - image: docker.io/smartgic/ovos-audio:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *audio-environment - network_mode: host - volumes: - - ~/.config/pulse/cookie:/home/${OVOS_USER}/.config/pulse/cookie:ro - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ovos_tts_cache:/home/${OVOS_USER}/.cache/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - depends_on: - ovos_messagebus: - condition: service_started - ovos_phal: - condition: service_started - - ovos_core: - <<: [*podman, *core-resource-limits] - container_name: ovos_core - hostname: ovos_core - restart: unless-stopped - image: docker.io/smartgic/ovos-core:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *audio-environment - network_mode: host - volumes: - - ~/.config/pulse/cookie:/home/${OVOS_USER}/.config/pulse/cookie:ro - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ${OVOS_PERSONA_FOLDER}:/home/${OVOS_USER}/.config/ovos_persona - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ovos_nltk:/home/${OVOS_USER}/nltk_data - - ${OVOS_SHARE_FOLDER}:/home/${OVOS_USER}/.local/share/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - depends_on: - ovos_messagebus: - condition: service_started - ovos_phal: - condition: service_started - - ovos_cli: - <<: [*podman, *resource-limits] - container_name: ovos_cli - hostname: ovos_cli - restart: unless-stopped - image: docker.io/smartgic/ovos-cli:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *common-environment - network_mode: host - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - depends_on: - ovos_messagebus: - condition: service_started diff --git a/ovos-compose/docker-compose.raspberrypi.gui.yml b/ovos-compose/docker-compose.raspberrypi.gui.yml deleted file mode 100644 index 4e4f511..0000000 --- a/ovos-compose/docker-compose.raspberrypi.gui.yml +++ /dev/null @@ -1,15 +0,0 @@ ---- -services: - ovos_gui: - healthcheck: - disable: true - devices: - - /dev/vchiq - - ovos_gui_websocket: - healthcheck: - disable: true - - ovos_skill_homescreen: - healthcheck: - disable: true diff --git a/ovos-compose/docker-compose.raspberrypi.yml b/ovos-compose/docker-compose.raspberrypi.yml deleted file mode 100644 index e791894..0000000 --- a/ovos-compose/docker-compose.raspberrypi.yml +++ /dev/null @@ -1,81 +0,0 @@ ---- -# Raspberry Pi specific overrides with optimized resource limits for ARM hardware - -x-pi-resource-limits: &pi-resource-limits - deploy: - resources: - limits: - memory: 256M - reservations: - memory: 64M - -x-pi-core-resource-limits: &pi-core-resource-limits - deploy: - resources: - limits: - memory: 512M - cpus: "0.8" - reservations: - memory: 128M - cpus: "0.2" - -x-pi-light-resource-limits: &pi-light-resource-limits - deploy: - resources: - limits: - memory: 128M - reservations: - memory: 32M - -services: - ovos_messagebus: - <<: *pi-resource-limits - healthcheck: - disable: true - - ovos_phal: - <<: *pi-resource-limits - healthcheck: - disable: true - group_add: - - "${GPIO_GID}" - - "${I2C_GID}" - - "${SPI_GID}" - - ovos_phal_admin: - <<: *pi-light-resource-limits - healthcheck: - disable: true - group_add: - - "${GPIO_GID}" - - "${I2C_GID}" - - "${SPI_GID}" - - ovos_listener: - <<: *pi-resource-limits - healthcheck: - disable: true - - ovos_plugin_ggwave: - <<: *pi-resource-limits - healthcheck: - disable: true - - ovos_audio: - <<: *pi-resource-limits - healthcheck: - disable: true - - ovos_core: - <<: *pi-core-resource-limits - healthcheck: - disable: true - group_add: - - "${GPIO_GID}" - - "${I2C_GID}" - - "${SPI_GID}" - - ovos_cli: - <<: *pi-light-resource-limits - healthcheck: - disable: true diff --git a/ovos-compose/docker-compose.server.yml b/ovos-compose/docker-compose.server.yml deleted file mode 100644 index 21544a0..0000000 --- a/ovos-compose/docker-compose.server.yml +++ /dev/null @@ -1,151 +0,0 @@ ---- -x-podman: &podman - userns_mode: keep-id - security_opt: - - "label=disable" - -x-logging: &default-logging - driver: json-file - options: - mode: non-blocking - max-buffer-size: 4m - max-size: "200m" - max-file: "1" - -x-common-environment: &common-environment - TZ: ${TZ:-UTC} - -x-resource-limits: &resource-limits - deploy: - resources: - limits: - memory: 512M - reservations: - memory: 128M - -x-core-resource-limits: &core-resource-limits - deploy: - resources: - limits: - memory: 1G - cpus: "1.0" - reservations: - memory: 256M - cpus: "0.25" - -x-light-resource-limits: &light-resource-limits - deploy: - resources: - limits: - memory: 256M - reservations: - memory: 64M - -volumes: - ovos_nltk: - name: ovos_nltk - driver: local - ovos_local_state: - name: ovos_local_state - driver: local - -services: - ovos_messagebus: - <<: [*podman, *resource-limits] - container_name: ovos_messagebus - hostname: ovos_messagebus - restart: unless-stopped - image: docker.io/smartgic/ovos-messagebus:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *common-environment - network_mode: host - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft:ro - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - healthcheck: - test: - [ - "CMD", - "python3", - "-c", - "import socket; s=socket.socket(); s.connect(('localhost', 8181)); s.close()", - ] - interval: 30s - timeout: 10s - retries: 3 - start_period: 10s - - ovos_core: - <<: [*podman, *core-resource-limits] - container_name: ovos_core - hostname: ovos_core - restart: unless-stopped - image: docker.io/smartgic/ovos-core:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *common-environment - network_mode: host - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ${OVOS_PERSONA_FOLDER}:/home/${OVOS_USER}/.config/ovos_persona - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ovos_nltk:/home/${OVOS_USER}/nltk_data - - ${OVOS_SHARE_FOLDER}:/home/${OVOS_USER}/.local/share/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - depends_on: - ovos_messagebus: - condition: service_started - healthcheck: - test: ["CMD", "pgrep", "-f", "ovos-core"] - interval: 30s - timeout: 10s - retries: 3 - start_period: 30s - - hivemind_listener: - <<: [*podman, *light-resource-limits] - container_name: hivemind_listener - hostname: hivemind_listener - restart: unless-stopped - image: docker.io/smartgic/hivemind-listener:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - tty: true - environment: - <<: *common-environment - network_mode: host - volumes: - - ${HIVEMIND_CONFIG_FOLDER}:/home/${HIVEMIND_USER}/.config/hivemind:z - - ${HIVEMIND_SHARE_FOLDER}:/home/${HIVEMIND_USER}/.local/share/hivemind:z - depends_on: - ovos_core: - condition: service_started - healthcheck: - test: ["CMD", "pgrep", "-f", "hivemind-listener"] - interval: 30s - timeout: 10s - retries: 3 - start_period: 15s - - hivemind_cli: - <<: [*podman, *light-resource-limits] - container_name: hivemind_cli - hostname: hivemind_cli - restart: unless-stopped - image: docker.io/smartgic/hivemind-cli:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - tty: true - environment: - <<: *common-environment - network_mode: host - volumes: - - ${HIVEMIND_CONFIG_FOLDER}:/home/${HIVEMIND_USER}/.config/hivemind:z - - ${HIVEMIND_SHARE_FOLDER}:/home/${HIVEMIND_USER}/.local/share/hivemind:z - depends_on: - hivemind_listener: - condition: service_started diff --git a/ovos-compose/docker-compose.skills-extra.yml b/ovos-compose/docker-compose.skills-extra.yml deleted file mode 100644 index ccfa967..0000000 --- a/ovos-compose/docker-compose.skills-extra.yml +++ /dev/null @@ -1,87 +0,0 @@ ---- -x-podman: &podman - userns_mode: keep-id - security_opt: - - "label=disable" - -x-logging: &default-logging - driver: json-file - options: - mode: non-blocking - max-buffer-size: 4m - max-size: "200m" - max-file: "1" - -x-common-environment: &common-environment - TZ: ${TZ:-UTC} - -x-skill-resource-limits: &skill-resource-limits - deploy: - resources: - limits: - memory: 256M - reservations: - memory: 64M - -x-skill-base: &skill-base - <<: [*podman, *skill-resource-limits] - restart: unless-stopped - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *common-environment - network_mode: host - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - depends_on: - ovos_core: - condition: service_started - -volumes: - ovos_nltk: - name: ovos_nltk - driver: local - -services: - ovos_skill_wolfie: - <<: *skill-base - container_name: ovos_skill_wolfie - hostname: ovos_skill_wolfie - image: docker.io/smartgic/ovos-skill-wolfie:${VERSION} - - ovos_skill_jokes: - <<: *skill-base - container_name: ovos_skill_jokes - hostname: ovos_skill_jokes - image: docker.io/smartgic/ovos-skill-jokes:${VERSION} - - ovos_skill_easter_eggs: - <<: *skill-base - container_name: ovos_skill_easter_eggs - hostname: ovos_skill_easter_eggs - image: docker.io/smartgic/ovos-skill-easter-eggs:${VERSION} - - ovos_skill_parrot: - <<: *skill-base - container_name: ovos_skill_parrot - hostname: ovos_skill_parrot - image: docker.io/smartgic/ovos-skill-parrot:${VERSION} - - ovos_skill_randomness: - <<: *skill-base - container_name: ovos_skill_randomness - hostname: ovos_skill_randomness - image: docker.io/smartgic/ovos-skill-randomness:${VERSION} - - ovos_skill_camera: - <<: *skill-base - container_name: ovos_skill_camera - hostname: ovos_skill_camera - image: docker.io/smartgic/ovos-skill-camera:${VERSION} - - ovos_skill_wikihow: - <<: *skill-base - container_name: ovos_skill_wikihow - hostname: ovos_skill_wikihow - image: docker.io/smartgic/ovos-skill-wikihow:${VERSION} diff --git a/ovos-compose/docker-compose.skills.yml b/ovos-compose/docker-compose.skills.yml deleted file mode 100644 index 08aa04d..0000000 --- a/ovos-compose/docker-compose.skills.yml +++ /dev/null @@ -1,119 +0,0 @@ ---- -x-podman: &podman - userns_mode: keep-id - security_opt: - - "label=disable" - -x-logging: &default-logging - driver: json-file - options: - mode: non-blocking - max-buffer-size: 4m - max-size: "200m" - max-file: "1" - -x-common-environment: &common-environment - TZ: ${TZ:-UTC} - -x-skill-resource-limits: &skill-resource-limits - deploy: - resources: - limits: - memory: 256M - reservations: - memory: 64M - -x-skill-base: &skill-base - <<: [*podman, *skill-resource-limits] - restart: unless-stopped - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *common-environment - network_mode: host - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - depends_on: - ovos_core: - condition: service_started - -volumes: - ovos_nltk: - name: ovos_nltk - driver: local - -services: - ovos_skill_wikipedia: - <<: *skill-base - container_name: ovos_skill_wikipedia - hostname: ovos_skill_wikipedia - image: docker.io/smartgic/ovos-skill-wikipedia:${VERSION} - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ovos_nltk:/home/${OVOS_USER}/nltk_data - - ${TMP_FOLDER}:/tmp/mycroft - - ovos_skill_weather: - <<: *skill-base - container_name: ovos_skill_weather - hostname: ovos_skill_weather - image: docker.io/smartgic/ovos-skill-weather:${VERSION} - - ovos_skill_volume: - <<: *skill-base - container_name: ovos_skill_volume - hostname: ovos_skill_volume - image: docker.io/smartgic/ovos-skill-volume:${VERSION} - - ovos_skill_date_time: - <<: *skill-base - container_name: ovos_skill_date_time - hostname: ovos_skill_date_time - image: docker.io/smartgic/ovos-skill-date-time:${VERSION} - - ovos_skill_personal: - <<: *skill-base - container_name: ovos_skill_personal - hostname: ovos_skill_personal - image: docker.io/smartgic/ovos-skill-personal:${VERSION} - - ovos_skill_fallback_unknown: - <<: *skill-base - container_name: ovos_skill_fallback_unknown - hostname: ovos_skill_fallback_unknown - image: docker.io/smartgic/ovos-skill-fallback-unknown:${VERSION} - - ovos_skill_hello_world: - <<: *skill-base - container_name: ovos_skill_hello_world - hostname: ovos_skill_hello_world - image: docker.io/smartgic/ovos-skill-hello-world:${VERSION} - - ovos_skill_alerts: - <<: *skill-base - container_name: ovos_skill_alerts - hostname: ovos_skill_alerts - image: docker.io/smartgic/ovos-skill-alerts:${VERSION} - - ovos_skill_ggwave: - <<: *skill-base - container_name: ovos_skill_ggwave - hostname: ovos_skill_ggwave - image: docker.io/smartgic/ovos-skill-ggwave:${VERSION} - - ovos_skill_duckduckgo: - <<: *skill-base - container_name: ovos_skill_duckduckgo - hostname: ovos_skill_duckduckgo - image: docker.io/smartgic/ovos-skill-duckduckgo:${VERSION} - - ovos_skill_wordnet: - <<: *skill-base - container_name: ovos_skill_wordnet - hostname: ovos_skill_wordnet - image: docker.io/smartgic/ovos-skill-wordnet:${VERSION} - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ovos_nltk:/home/${OVOS_USER}/nltk_data - - ${TMP_FOLDER}:/tmp/mycroft diff --git a/ovos-compose/docker-compose.windows.yml b/ovos-compose/docker-compose.windows.yml deleted file mode 100644 index 0e78749..0000000 --- a/ovos-compose/docker-compose.windows.yml +++ /dev/null @@ -1,239 +0,0 @@ ---- -x-podman: &podman - userns_mode: keep-id - security_opt: - - "label=disable" - -x-logging: &default-logging - driver: json-file - options: - mode: non-blocking - max-buffer-size: 4m - max-size: "200m" - max-file: "1" - -x-common-environment: &common-environment - TZ: ${TZ:-UTC} - -x-audio-environment: &audio-environment - <<: *common-environment - PULSE_SERVER: ${PULSE_SERVER:-/mnt/wslg/PulseServer} - -x-resource-limits: &resource-limits - deploy: - resources: - limits: - memory: 512M - reservations: - memory: 128M - -x-core-resource-limits: &core-resource-limits - deploy: - resources: - limits: - memory: 1G - cpus: "1.0" - reservations: - memory: 256M - cpus: "0.25" - -volumes: - ovos_models: - name: ovos_models - driver: local - ovos_vosk: - name: ovos_vosk - driver: local - ovos_listener_records: - name: ovos_listener_records - driver: local - ovos_tts_cache: - name: ovos_tts_cache - driver: local - ovos_nltk: - name: ovos_nltk - driver: local - ovos_local_state: - name: ovos_local_state - driver: local - -services: - ovos_messagebus: - <<: [*podman, *resource-limits] - container_name: ovos_messagebus - hostname: ovos_messagebus - restart: unless-stopped - image: docker.io/smartgic/ovos-messagebus:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *common-environment - network_mode: host - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft:ro - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - - ovos_phal: - <<: [*podman, *resource-limits] - container_name: ovos_phal - hostname: ovos_phal - restart: unless-stopped - image: docker.io/smartgic/ovos-phal:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *audio-environment - network_mode: host - privileged: true - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - - /mnt/wslg/:/mnt/wslg/ - depends_on: - ovos_messagebus: - condition: service_started - - ovos_phal_admin: - <<: [*podman, *resource-limits] - container_name: ovos_phal_admin - hostname: ovos_phal_admin - restart: unless-stopped - image: docker.io/smartgic/ovos-phal-admin:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *common-environment - network_mode: host - privileged: true - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - - /sys:/sys:ro - - /dev:/dev:ro - depends_on: - ovos_messagebus: - condition: service_started - - ovos_listener: - <<: [*podman, *resource-limits] - container_name: ovos_listener - hostname: ovos_listener - restart: unless-stopped - image: docker.io/smartgic/ovos-listener:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *audio-environment - network_mode: host - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft:ro - - ovos_listener_records:/home/${OVOS_USER}/.local/share/mycroft/listener - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ovos_models:/home/${OVOS_USER}/.local/share/precise-lite - - ovos_vosk:/home/${OVOS_USER}/.local/share/vosk - - ${TMP_FOLDER}:/tmp/mycroft - - /mnt/wslg/:/mnt/wslg/ - depends_on: - ovos_messagebus: - condition: service_started - ovos_phal: - condition: service_started - - ovos_plugin_ggwave: - <<: [*podman, *resource-limits] - container_name: ovos_plugin_ggwave - hostname: ovos_plugin_ggwave - restart: unless-stopped - image: docker.io/smartgic/ovos-plugin-ggwave:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *audio-environment - network_mode: host - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft:ro - - ${TMP_FOLDER}:/tmp/mycroft - - /mnt/wslg/:/mnt/wslg/ - depends_on: - ovos_messagebus: - condition: service_started - ovos_phal: - condition: service_started - healthcheck: - test: ["CMD", "pgrep", "-f", "ggwave"] - interval: 30s - timeout: 10s - retries: 3 - start_period: 15s - - ovos_audio: - <<: [*podman, *resource-limits] - container_name: ovos_audio - hostname: ovos_audio - restart: unless-stopped - image: docker.io/smartgic/ovos-audio:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *audio-environment - DBUS_SESSION_BUS_ADDRESS: unix:path=${XDG_RUNTIME_DIR}/bus - network_mode: host - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ovos_tts_cache:/home/${OVOS_USER}/.cache/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - - ${XDG_RUNTIME_DIR}/bus:${XDG_RUNTIME_DIR}/bus:ro - - /mnt/wslg/:/mnt/wslg/ - depends_on: - ovos_messagebus: - condition: service_started - ovos_phal: - condition: service_started - - ovos_core: - <<: [*podman, *core-resource-limits] - container_name: ovos_core - hostname: ovos_core - restart: unless-stopped - image: docker.io/smartgic/ovos-core:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *audio-environment - network_mode: host - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ${OVOS_PERSONA_FOLDER}:/home/${OVOS_USER}/.config/ovos_persona - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ovos_nltk:/home/${OVOS_USER}/nltk_data - - ${OVOS_SHARE_FOLDER}:/home/${OVOS_USER}/.local/share/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - - /mnt/wslg/:/mnt/wslg/ - depends_on: - ovos_messagebus: - condition: service_started - ovos_phal: - condition: service_started - - ovos_cli: - <<: [*podman, *resource-limits] - container_name: ovos_cli - hostname: ovos_cli - restart: unless-stopped - image: docker.io/smartgic/ovos-cli:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *common-environment - network_mode: host - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - depends_on: - ovos_messagebus: - condition: service_started diff --git a/ovos-compose/docker-compose.yml b/ovos-compose/docker-compose.yml deleted file mode 100644 index 3cda363..0000000 --- a/ovos-compose/docker-compose.yml +++ /dev/null @@ -1,279 +0,0 @@ ---- -x-podman: &podman - userns_mode: keep-id - security_opt: - - "label=disable" - -x-logging: &default-logging - driver: json-file - options: - mode: non-blocking - max-buffer-size: 4m - max-size: "200m" - max-file: "1" - -x-common-environment: &common-environment - TZ: ${TZ:-UTC} - -x-audio-environment: &audio-environment - <<: *common-environment - PULSE_SERVER: unix:${XDG_RUNTIME_DIR}/pulse/native - PULSE_COOKIE: /home/${OVOS_USER}/.config/pulse/cookie - XDG_RUNTIME_DIR: ${XDG_RUNTIME_DIR} - -x-resource-limits: &resource-limits - deploy: - resources: - limits: - memory: 512M - reservations: - memory: 128M - -x-core-resource-limits: &core-resource-limits - deploy: - resources: - limits: - memory: 1G - cpus: "1.0" - reservations: - memory: 256M - cpus: "0.25" - -x-skill-resource-limits: &skill-resource-limits - deploy: - resources: - limits: - memory: 256M - reservations: - memory: 64M - -volumes: - ovos_models: - name: ovos_models - driver: local - ovos_vosk: - name: ovos_vosk - driver: local - ovos_listener_records: - name: ovos_listener_records - driver: local - ovos_tts_cache: - name: ovos_tts_cache - driver: local - ovos_nltk: - name: ovos_nltk - driver: local - ovos_local_state: - name: ovos_local_state - driver: local - -services: - ovos_messagebus: - <<: [*podman, *resource-limits] - container_name: ovos_messagebus - hostname: ovos_messagebus - restart: unless-stopped - image: docker.io/smartgic/ovos-messagebus:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *common-environment - network_mode: host - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft:ro - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - - ovos_phal: - <<: [*podman, *resource-limits] - container_name: ovos_phal - hostname: ovos_phal - restart: unless-stopped - image: docker.io/smartgic/ovos-phal:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *audio-environment - network_mode: host - # Use specific capabilities instead of privileged mode where possible - cap_add: - - SYS_ADMIN - - DAC_OVERRIDE - # Only use privileged if absolutely necessary for hardware access - privileged: true - volumes: - - ~/.config/pulse/cookie:/home/${OVOS_USER}/.config/pulse/cookie:ro - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ${OVOS_CONFIG_PHAL_FOLDER}:/home/${OVOS_USER}/.config/OpenVoiceOS - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - - ${XDG_RUNTIME_DIR}/pipewire-0:${XDG_RUNTIME_DIR}/pipewire-0:ro - - ${XDG_RUNTIME_DIR}/pulse:${XDG_RUNTIME_DIR}/pulse:ro - depends_on: - ovos_messagebus: - condition: service_started - - ovos_phal_admin: - <<: [*podman, *resource-limits] - container_name: ovos_phal_admin - hostname: ovos_phal_admin - restart: unless-stopped - image: docker.io/smartgic/ovos-phal-admin:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *common-environment - network_mode: host - # Use specific capabilities instead of privileged mode where possible - cap_add: - - SYS_ADMIN - - DAC_OVERRIDE - # Only use privileged if absolutely necessary for hardware access - privileged: true - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ${OVOS_CONFIG_PHAL_FOLDER}:/home/${OVOS_USER}/.config/OpenVoiceOS - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - - /sys:/sys:ro - - /dev:/dev:ro - depends_on: - ovos_messagebus: - condition: service_started - - ovos_listener: - <<: [*podman, *resource-limits] - container_name: ovos_listener - hostname: ovos_listener - restart: unless-stopped - image: docker.io/smartgic/ovos-listener:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *audio-environment - network_mode: host - devices: - - /dev/snd - volumes: - - ~/.config/pulse/cookie:/home/${OVOS_USER}/.config/pulse/cookie:ro - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft:ro - - ovos_listener_records:/home/${OVOS_USER}/.local/share/mycroft/listener - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ovos_models:/home/${OVOS_USER}/.local/share/precise-lite - - ovos_vosk:/home/${OVOS_USER}/.local/share/vosk - - ${TMP_FOLDER}:/tmp/mycroft - - ${XDG_RUNTIME_DIR}/pipewire-0:${XDG_RUNTIME_DIR}/pipewire-0:ro - - ${XDG_RUNTIME_DIR}/pulse:${XDG_RUNTIME_DIR}/pulse:ro - depends_on: - ovos_messagebus: - condition: service_started - ovos_phal: - condition: service_started - - ovos_plugin_ggwave: - <<: [*podman, *resource-limits] - container_name: ovos_plugin_ggwave - hostname: ovos_plugin_ggwave - restart: unless-stopped - image: docker.io/smartgic/ovos-plugin-ggwave:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *audio-environment - network_mode: host - devices: - - /dev/snd - volumes: - - ~/.config/pulse/cookie:/home/${OVOS_USER}/.config/pulse/cookie:ro - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft:ro - - ${TMP_FOLDER}:/tmp/mycroft - - ${XDG_RUNTIME_DIR}/pipewire-0:${XDG_RUNTIME_DIR}/pipewire-0:ro - - ${XDG_RUNTIME_DIR}/pulse:${XDG_RUNTIME_DIR}/pulse:ro - depends_on: - ovos_messagebus: - condition: service_started - ovos_phal: - condition: service_started - healthcheck: - test: ["CMD", "pgrep", "-f", "ggwave"] - interval: 30s - timeout: 10s - retries: 3 - start_period: 15s - - ovos_audio: - <<: [*podman, *resource-limits] - container_name: ovos_audio - hostname: ovos_audio - restart: unless-stopped - image: docker.io/smartgic/ovos-audio:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *audio-environment - DBUS_SESSION_BUS_ADDRESS: unix:path=${XDG_RUNTIME_DIR}/bus - network_mode: host - devices: - - /dev/snd - volumes: - - ~/.config/pulse/cookie:/home/${OVOS_USER}/.config/pulse/cookie:ro - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ovos_tts_cache:/home/${OVOS_USER}/.cache/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - - ${XDG_RUNTIME_DIR}/bus:${XDG_RUNTIME_DIR}/bus:ro - - ${XDG_RUNTIME_DIR}/pipewire-0:${XDG_RUNTIME_DIR}/pipewire-0:ro - - ${XDG_RUNTIME_DIR}/pulse:${XDG_RUNTIME_DIR}/pulse:ro - depends_on: - ovos_messagebus: - condition: service_started - ovos_phal: - condition: service_started - - ovos_core: - <<: [*podman, *core-resource-limits] - container_name: ovos_core - hostname: ovos_core - restart: unless-stopped - image: docker.io/smartgic/ovos-core:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *audio-environment - network_mode: host - devices: - - /dev/snd - volumes: - - ~/.config/pulse/cookie:/home/${OVOS_USER}/.config/pulse/cookie:ro - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ${OVOS_PERSONA_FOLDER}:/home/${OVOS_USER}/.config/ovos_persona - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ovos_nltk:/home/${OVOS_USER}/nltk_data - - ${OVOS_SHARE_FOLDER}:/home/${OVOS_USER}/.local/share/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - - ${XDG_RUNTIME_DIR}/pipewire-0:${XDG_RUNTIME_DIR}/pipewire-0:ro - - ${XDG_RUNTIME_DIR}/pulse:${XDG_RUNTIME_DIR}/pulse:ro - depends_on: - ovos_messagebus: - condition: service_started - ovos_phal: - condition: service_started - - ovos_cli: - <<: [*podman, *resource-limits] - container_name: ovos_cli - hostname: ovos_cli - restart: unless-stopped - image: docker.io/smartgic/ovos-cli:${VERSION} - logging: *default-logging - pull_policy: ${PULL_POLICY:-always} - environment: - <<: *common-environment - network_mode: host - volumes: - - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - - ${TMP_FOLDER}:/tmp/mycroft - depends_on: - ovos_messagebus: - condition: service_started