Docker Container Installation
Docker is the recommended deployment method for home servers or Network Attached Storage (NAS) systems (like Unraid, TrueNAS, or Synology).
System Prerequisites
Before running SnapDog inside Docker, make sure you configure your container hosting environment correctly:
1. Network Mode Selection
For full plug-and-play functionality, running the container in network_mode: host is strongly recommended.
SnapDog relies on mDNS/Bonjour multicast for automated client zone discovery and KNX IP multicast routing for smart building integration. Standard bridge networks will block multicast traffic unless configured with complex mDNS reflectors.
However, running in standard container bridge mode is fully supported if:
- You configure client receiver targets manually via IP addresses (disabling mDNS autodiscovery).
- Your KNX integration is configured in tunneling mode rather than routing mode (as point-to-point UDP tunnels do not require multicast access).
2. Device Access for Audio Output
If you plan to use local soundcards connected to the host machine for audio output (via ALSA), you must expose /dev/snd to the container:
- Docker CLI flag:
--device /dev/snd:/dev/snd - Compose property:
devices: - "/dev/snd:/dev/snd"
Docker Compose Setup
- Create a
docker-compose.ymlfile:services:snapdog:image: ghcr.io/snapdogrocks/snapdog:latestcontainer_name: snapdogrestart: unless-stoppednetwork_mode: host # Recommended for mDNS discovery and KNX multicast. Can be omitted for bridge mode if using manual IPs and KNX tunneling.devices:- "/dev/snd:/dev/snd" # Expose ALSA soundcards for direct playbackvolumes:- snapdog-data:/var/lib/snapdog- ./snapdog.toml:/etc/snapdog/snapdog.toml:roenvironment:- TZ=Europe/Berlinvolumes:snapdog-data: - Start the container:
Terminal window docker compose up -d