SanadR1/docker/docker-compose.yml

38 lines
1.4 KiB
YAML

# SanadR1 on the R1 EDU backpack.
#
# cd ~/SanadR1/docker
# cp .env.example .env # then put your SANAD_GEMINI_API_KEY in it
# docker compose up -d --build
#
# `network_mode: host` is REQUIRED: the robot's CycloneDDS discovery + the
# on-board mic UDP multicast (239.168.123.161:5555) do not cross a bridge NAT,
# and the dashboard must bind the host's eth10 / wlan0 addresses.
services:
sanadr1:
build:
context: .. # the SanadR1 folder (parent of docker/)
dockerfile: docker/Dockerfile
image: sanadr1:latest
container_name: sanadr1
network_mode: host # DDS + audio multicast + bind wlan0/eth10
restart: unless-stopped # auto-starts on boot (docker.service enabled)
env_file:
- .env # SANAD_GEMINI_API_KEY=...
environment:
- SANAD_DDS_INTERFACE=eth10
- SANAD_DASHBOARD_HOST=0.0.0.0
- SANAD_NAV_TOOLS=0
- SANAD_AUDIO_PROFILE=builtin
- SANAD_VOICE_BRAIN=gemini
volumes:
# Named volumes auto-populate from the image on first run, then persist
# the dashboard's writes (recordings, faces, zones, tuned runtime config
# which lives under data/motions/config.json). config/ is left tracking the
# image (read-only defaults) so `up --build` can ship updated defaults.
- sanadr1_data:/opt/SanadR1/data
- sanadr1_logs:/opt/SanadR1/logs
volumes:
sanadr1_data:
sanadr1_logs: