[All] {WIP} Change over the quadlet files to use drop-in support.

At the moment these quadlets do not auto start at boot yet.
Still thinking about the best way forward in regards with the upcoming
template support and the overall ovos-containers buildroot package.
This commit is contained in:
j1nx 2024-01-09 11:59:46 +00:00
parent 2f3d930410
commit ba7c614593
32 changed files with 89 additions and 376 deletions

View File

@ -1,35 +0,0 @@
[Unit]
Description=OpenVoiceOS Audio Service
After=local-fs.target
After=network-online.target
Wants=network-online.target
Wants=pipewire.service
After=pipewire.service
Wants=ovos_messagebus.service
After=ovos_messagebus.service
Wants=ovos_phal.service
After=ovos_phal.service
[Container]
ContainerName=ovos_audio
Image=docker.io/smartgic/ovos-audio:alpha
AutoUpdate=registry
LogDriver=journald
HostName=ovos_audio
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
EnvironmentFile=%h/.config/containers/env
AddDevice=/dev/snd
Volume=%h/ovos/config:/home/ovos/.config/mycroft
Volume=/dev/shm:/tmp
Volume=%t/pipewire-0:/run/user/1000/pipewire-0:ro
Volume=%t/bus:/run/user/1000/bus:ro
Volume=ovos_tts_cache:/home/ovos/.cache/mycroft
[Service]
TimeoutStartSec=900
Restart=always
[Install]
WantedBy=multi-user.target default.target

View File

@ -1,25 +0,0 @@
[Unit]
Description=OpenVoiceOS CLI
After=local-fs.target
After=network-online.target
Wants=network-online.target
[Container]
ContainerName=ovos_cli
Image=docker.io/smartgic/ovos-cli:alpha
AutoUpdate=registry
LogDriver=journald
HostName=ovos_cli
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
Volume=%h/ovos/config:/home/ovos/.config/mycroft
Volume=/dev/shm:/tmp
Volume=/var/log/ovos:/var/log/mycroft
[Service]
TimeoutStartSec=900
Restart=always
[Install]
WantedBy=multi-user.target default.target

View File

@ -1,36 +0,0 @@
[Unit]
Description=OpenVoiceOS Core Service
After=local-fs.target
After=network-online.target
Wants=network-online.target
Wants=pipewire.service
After=pipewire.service
Wants=ovos_messagebus.service
After=ovos_messagebus.service
Wants=ovos_phal.service
After=ovos_phal.service
[Container]
ContainerName=ovos_core
Image=docker.io/smartgic/ovos-core:alpha
AutoUpdate=registry
LogDriver=journald
HostName=ovos_core
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
EnvironmentFile=%h/.config/containers/env
AddDevice=/dev/snd
# AddDevice=/dev/gpiomem # RaspberryPi only
Volume=%h/ovos/config:/home/ovos/.config/mycroft
Volume=/dev/shm:/tmp
Volume=%t/pipewire-0:/run/user/1000/pipewire-0:ro
Volume=ovos_nltk:/home/ovos/nltk_data
Volume=%h/ovos/share:/home/ovos/.local/share/mycroft
[Service]
TimeoutStartSec=900
Restart=always
[Install]
WantedBy=multi-user.target default.target

View File

@ -1,42 +0,0 @@
[Unit]
Description=OpenVoiceOS GUI Service
After=local-fs.target
After=network-online.target
Wants=network-online.target
Wants=pipewire.service
After=pipewire.service
Wants=ovos_messagebus.service
After=ovos_messagebus.service
Wants=ovos_phal.service
After=ovos_phal.service
Wants=ovos_gui_websocket.service
After=ovos_gui_websocker.service
[Container]
ContainerName=ovos_gui
Image=docker.io/smartgic/ovos-gui-shell:alpha
AutoUpdate=registry
LogDriver=journald
HostName=ovos_gui
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
EnvironmentFile=%h/.config/containers/env
AddDevice=/dev/snd
AddDevice=/dev/dri
# AddDevice=/dev/vchiq # Raspberry Pi only
AddDevice=/dev/input
Volume=%h/ovos/config:/home/ovos/.config/mycroft
Volume=/dev/shm:/tmp
Volume=%t/pipewire-0:/run/user/1000/pipewire-0:ro
Volume=%t/bus:/run/user/1000/bus:ro
Volume=%h/ovos/share:/home/ovos/.local/share/mycroft
Volume=ovos_gui_files:/home/ovos/.cache/gui_files
Volume=/run/udev/data:/run/udev/data:ro
[Service]
TimeoutStartSec=900
Restart=always
[Install]
WantedBy=multi-user.target default.target

View File

@ -1,27 +0,0 @@
[Unit]
Description=OpenVoiceOS GUI Websocket Service
After=local-fs.target
After=network-online.target
Wants=network-online.target
Wants=ovos_messagebus.service
After=ovos_messagebus.service
[Container]
ContainerName=ovos_gui_websocket
Image=docker.io/smartgic/ovos-gui-websocket:alpha
AutoUpdate=registry
LogDriver=journald
HostName=ovos_gui_websocket
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
Volume=%h/ovos/config:/home/ovos/.config/mycroft:ro
Volume=/dev/shm:/tmp
Volume=ovos_gui_files:/home/ovos/.cache/ovos_gui_file_server
[Service]
TimeoutStartSec=900
Restart=always
[Install]
WantedBy=multi-user.target default.target

View File

@ -1,36 +0,0 @@
[Unit]
Description=OpenVoiceOS Dinkum Listener Service
After=local-fs.target
After=network-online.target
Wants=network-online.target
Wants=pipewire.service
After=pipewire.service
Wants=ovos_messagebus.service
After=ovos_messagebus.service
Wants=ovos_phal.service
After=ovos_phal.service
[Container]
ContainerName=ovos_listener
Image=docker.io/smartgic/ovos-listener-dinkum:alpha
AutoUpdate=registry
LogDriver=journald
HostName=ovos_listener
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
EnvironmentFile=%h/.config/containers/env
AddDevice=/dev/snd
Volume=%h/ovos/config:/home/ovos/.config/mycroft:ro
Volume=/dev/shm:/tmp
Volume=%t/pipewire-0:/run/user/1000/pipewire-0:ro
Volume=ovos_listener_records:/home/ovos/.local/share/mycroft/listener
Volume=ovos_models:/home/ovos/.local/share/precise-lite
Volume=ovos_vosk:/home/ovos/.local/share/vosk
[Service]
TimeoutStartSec=900
Restart=always
[Install]
WantedBy=multi-user.target default.target

View File

@ -1,24 +0,0 @@
[Unit]
Description=OpenVoiceOS Messagebus Service
After=local-fs.target
After=network-online.target
Wants=network-online.target
[Container]
ContainerName=ovos_messagebus
Image=docker.io/smartgic/ovos-messagebus:alpha
AutoUpdate=registry
LogDriver=journald
HostName=ovos_messagebus
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
Volume=%h/ovos/config:/home/ovos/.config/mycroft:ro
Volume=/dev/shm:/tmp
[Service]
TimeoutStartSec=900
Restart=always
[Install]
WantedBy=multi-user.target default.target

View File

@ -1,32 +0,0 @@
[Unit]
Description=OpenVoiceOS PHAL Service
After=local-fs.target
After=network-online.target
Wants=network-online.target
Wants=pipewire.service
After=pipewire.service
Wants=ovos_messagebus.service
After=ovos_messagebus.service
[Container]
ContainerName=ovos_phal
Image=docker.io/smartgic/ovos-phal:alpha
AutoUpdate=registry
LogDriver=journald
HostName=ovos_phal
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
EnvironmentFile=%h/.config/containers/env
AddDevice=/dev/snd
# AddDevice=/dev/gpiomem # Raspberry Pi only
Volume=%h/ovos/config:/home/ovos/.config/mycroft
Volume=/dev/shm:/tmp
Volume=%t/pipewire-0:/run/user/1000/pipewire-0:ro
[Service]
TimeoutStartSec=900
Restart=always
[Install]
WantedBy=multi-user.target default.target

View File

@ -1,29 +0,0 @@
[Unit]
Description=OpenVoiceOS PHAL Admin Service
After=local-fs.target
After=network-online.target
Wants=network-online.target
Wants=ovos_messagebus.service
After=ovos_messagebus.service
[Container]
ContainerName=ovos_phal_admin
Image=docker.io/smartgic/ovos-phal-admin:alpha
AutoUpdate=registry
LogDriver=journald
HostName=ovos_phal_admin
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
# AddDevice=/dev/gpiomem # Raspberry Pi only
Volume=%h/ovos/config:/home/ovos/.config/mycroft
Volume=/dev/shm:/tmp
Volume=/sys:/sys:ro
Volume=/dev:/dev:ro
[Service]
TimeoutStartSec=900
Restart=always
[Install]
WantedBy=multi-user.target default.target

View File

@ -0,0 +1,3 @@
[Container]
AddDevice=/dev/gpiomem
AddDevice=/dev/ttyAMA0

View File

@ -0,0 +1,3 @@
[Container]
AddDevice=/dev/gpiomem
AddDevice=/dev/ttyAMA0

View File

@ -1,26 +0,0 @@
[Unit]
Description=OpenVoiceOS PHAL Admin Service
After=local-fs.target
After=network-online.target
Wants=network-online.target
Wants=ovos_messagebus.service
After=ovos_messagebus.service
[Container]
ContainerName=ovos_phal_admin
Image=docker.io/smartgic/ovos-phal-admin:alpha
AutoUpdate=registry
LogDriver=journald
HostName=ovos_phal_admin
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
AddDevice=/dev/gpiomem
Volume=%h/ovos/config:/home/ovos/.config/mycroft
Volume=%h/ovos/tmp:/tmp
Volume=/sys:/sys:ro
Volume=/dev:/dev:ro
[Service]
TimeoutStartSec=900
Restart=always

View File

@ -23,9 +23,7 @@ config BR2_PACKAGE_OVOS_CONTAINERS_HEADLESS
This install all minimal required containers
to run the OVOS framework headless.
Install: - ovos -messagebus
- ovos-phal
- ovos-phal-admin
Install: - ovos-phal
- ovos-listener-dinkum
- ovos-audio
- ovos-core
@ -38,9 +36,7 @@ config BR2_PACKAGE_OVOS_CONTAINERS_GUI
to run the OVOS framework with the QT5
Graphical User Interface enabled.
Install: - ovos -messagebus
- ovos-phal
- ovos-phal-admin
Install: - ovos-phal
- ovos-listener-dinkum
- ovos-audio
- ovos-core

View File

@ -10,9 +10,7 @@ OVOS_CONTAINERS_LICENSE_FILES = $(BR2_EXTERNAL_OPENVOICEOS_PATH)/../LICENSE
OVOS_CONTAINERS_SITE = $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/ovos-containers
OVOS_CONTAINERS_SITE_METHOD = local
OVOS_CONTAINERS_IMAGES = ovos-messagebus \
ovos-phal \
ovos-phal-admin \
OVOS_CONTAINERS_IMAGES = ovos-phal \
ovos-listener-dinkum \
ovos-audio \
ovos-core \

View File

@ -0,0 +1,23 @@
[Unit]
Description=Hivemind CLI
After=local-fs.target
After=network-online.target
Wants=network-online.target
After=hivemind-listener.service
Wants=hivemind-listener.service
[Container]
ContainerName=hivemind-cli
Image=docker.io/smartgic/hivemind-cli:alpha
AutoUpdate=registry
LogDriver=journald
HostName=hivemind-cli
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
Volume=%h/hivemind/config:/home/hivemind/.config/hivemind:z
Volume=%h/hivemind/share:/home/hivemind/.local/share/hivemind:z
[Service]
TimeoutStartSec=900
Restart=always

View File

@ -0,0 +1,23 @@
[Unit]
Description=Hivemind Listener
After=local-fs.target
After=network-online.target
Wants=network-online.target
After=ovos-core.service
Wants=ovos-core.service
[Container]
ContainerName=hivemind-listener
Image=docker.io/smartgic/hivemind-listener:alpha
AutoUpdate=registry
LogDriver=journald
HostName=hivemind-listener
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
Volume=%h/hivemind/config:/home/hivemind/.config/hivemind:z
Volume=%h/hivemind/share:/home/hivemind/.local/share/hivemind:z
[Service]
TimeoutStartSec=900
Restart=always

View File

@ -7,15 +7,15 @@ Wants=pipewire.service
After=pipewire.service
Wants=ovos-bus-server.service
After=ovos-bus-server.service
Wants=ovos_phal.service
After=ovos_phal.service
Wants=ovos-phal.service
After=ovos-phal.service
[Container]
ContainerName=ovos_audio
ContainerName=ovos-audio
Image=docker.io/smartgic/ovos-audio:alpha
AutoUpdate=registry
LogDriver=journald
HostName=ovos_audio
HostName=ovos-audio
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
@ -31,6 +31,3 @@ Volume=ovos_venv_audio:/home/ovos/.venv
[Service]
TimeoutStartSec=900
Restart=always
[Install]
WantedBy=multi-user.target default.target

View File

@ -5,11 +5,11 @@ After=network-online.target
Wants=network-online.target
[Container]
ContainerName=ovos_cli
ContainerName=ovos-cli
Image=docker.io/smartgic/ovos-cli:alpha
AutoUpdate=registry
LogDriver=journald
HostName=ovos_cli
HostName=ovos-cli
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
@ -20,6 +20,3 @@ Volume=/var/log/ovos:/var/log/mycroft
[Service]
TimeoutStartSec=900
Restart=always
[Install]
WantedBy=multi-user.target default.target

View File

@ -7,21 +7,20 @@ Wants=pipewire.service
After=pipewire.service
Wants=ovos-bus-server.service
After=ovos-bus-server.service
Wants=ovos_phal.service
After=ovos_phal.service
Wants=ovos-phal.service
After=ovos-phal.service
[Container]
ContainerName=ovos_core
ContainerName=ovos-core
Image=docker.io/smartgic/ovos-core:alpha
AutoUpdate=registry
LogDriver=journald
HostName=ovos_core
HostName=ovos-core
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
EnvironmentFile=%h/.config/containers/env
AddDevice=/dev/snd
AddDevice=/dev/gpiomem
Volume=%h/ovos/config:/home/ovos/.config/mycroft
Volume=%h/ovos/tmp:/tmp
Volume=%t/pipewire-0:/run/user/1000/pipewire-0:ro
@ -32,6 +31,3 @@ Volume=%h/ovos/share:/home/ovos/.local/share/mycroft
[Service]
TimeoutStartSec=900
Restart=always
[Install]
WantedBy=multi-user.target default.target

View File

@ -5,26 +5,25 @@ After=network-online.target
Wants=network-online.target
Wants=pipewire.service
After=pipewire.service
Wants=ovos_messagebus.service
After=ovos_messagebus.service
Wants=ovos_phal.service
After=ovos_phal.service
Wants=ovos_gui_websocket.service
After=ovos_gui_websocket.service
Wants=ovos-bus-server.service
After=ovos-bus-server.service
Wants=ovos-phal.service
After=ovos-phal.service
Wants=ovos-gui-websocket.service
After=ovos-gui-websocket.service
[Container]
ContainerName=ovos_gui
ContainerName=ovos-gui-shell
Image=docker.io/smartgic/ovos-gui-shell:alpha
AutoUpdate=registry
LogDriver=journald
HostName=ovos_gui
HostName=ovos-gui-shell
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
EnvironmentFile=%h/.config/containers/env
AddDevice=/dev/snd
AddDevice=/dev/dri
AddDevice=/dev/vchiq
AddDevice=/dev/input
Volume=%h/ovos/config:/home/ovos/.config/mycroft
Volume=%h/ovos/tmp:/tmp
@ -37,6 +36,3 @@ Volume=/run/udev/data:/run/udev/data:ro
[Service]
TimeoutStartSec=900
Restart=always
[Install]
WantedBy=multi-user.target default.target

View File

@ -3,15 +3,15 @@ Description=OpenVoiceOS GUI Websocket Service
After=local-fs.target
After=network-online.target
Wants=network-online.target
Wants=ovos_messagebus.service
After=ovos_messagebus.service
Wants=ovos-bus-server.service
After=ovos-bus-server.service
[Container]
ContainerName=ovos_gui_websocket
ContainerName=ovos-gui-websocket
Image=docker.io/smartgic/ovos-gui-websocket:alpha
AutoUpdate=registry
LogDriver=journald
HostName=ovos_gui_websocket
HostName=ovos-gui-websocket
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
@ -22,6 +22,3 @@ Volume=ovos_gui_files:/home/ovos/.cache/ovos_gui_file_server
[Service]
TimeoutStartSec=900
Restart=always
[Install]
WantedBy=multi-user.target default.target

View File

@ -7,15 +7,15 @@ Wants=pipewire.service
After=pipewire.service
Wants=ovos-bus-server.service
After=ovos-bus-server.service
Wants=ovos_phal.service
After=ovos_phal.service
Wants=ovos-phal.service
After=ovos-phal.service
[Container]
ContainerName=ovos_listener
ContainerName=ovos-listener-dinkum
Image=docker.io/smartgic/ovos-listener-dinkum:alpha
AutoUpdate=registry
LogDriver=journald
HostName=ovos_listener
HostName=ovos-listener-dinkum
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
@ -32,6 +32,3 @@ Volume=ovos_venv_listener:/home/ovos/.venv
[Service]
TimeoutStartSec=900
Restart=always
[Install]
WantedBy=multi-user.target default.target

View File

@ -5,11 +5,11 @@ After=network-online.target
Wants=network-online.target
[Container]
ContainerName=ovos_messagebus
ContainerName=ovos-messagebus
Image=docker.io/smartgic/ovos-messagebus:alpha
AutoUpdate=registry
LogDriver=journald
HostName=ovos_messagebus
HostName=ovos-messagebus
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G

View File

@ -9,26 +9,23 @@ Wants=ovos-bus-server.service
After=ovos-bus-server.service
[Container]
ContainerName=ovos_phal
ContainerName=ovos-phal
Image=docker.io/smartgic/ovos-phal:alpha
AutoUpdate=registry
LogDriver=journald
HostName=ovos_phal
HostName=ovos-phal
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
EnvironmentFile=%h/.config/containers/env
AddDevice=/dev/snd
AddDevice=/dev/gpiomem
AddDevice=/dev/ttyAMA0
Volume=%h/ovos/config:/home/ovos/.config/mycroft
Volume=%h/ovos/tmp:/tmp
Volume=%t/pipewire-0:/run/user/1000/pipewire-0:ro
Volume=ovos_venv_phal:/home/ovos/.venv
Volume=/sys:/sys:ro
Volume=/dev:/dev:ro
[Service]
TimeoutStartSec=900
Restart=always
[Install]
WantedBy=multi-user.target default.target