Remove old compose subtree

This commit is contained in:
2025-10-03 09:27:21 -04:00
parent 14bfb4ff68
commit 49d6573a5f
12 changed files with 0 additions and 1655 deletions
-53
View File
@@ -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
-120
View File
@@ -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 <groupname> | 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
-211
View File
@@ -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
-63
View File
@@ -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
-237
View File
@@ -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
@@ -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
@@ -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
-151
View File
@@ -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
@@ -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}
-119
View File
@@ -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
-239
View File
@@ -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
-279
View File
@@ -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