šµ A Docker image that runs Castafiore for headless servers with hardware audio output.
2.9K
Ā Ā
Ā Ā
Ā Ā
Ā Ā
Ā Ā
Ā Ā

A Docker image that runs Castafioreā as a self-hosted web app designed for Raspberry Pi and headless servers with hardware audio output.
ā ļø WORK IN PROGRESS
linux/arm64 or linux/amd64 supportservices:
castafiore-headless:
image: cstaelen/castafiore-headless:latest
devices:
- /dev/snd
ports:
- "8899:8899"
environment:
ALSA_DEVICE: plughw:0,0 # run `aplay -l` to list available devices
restart: unless-stopped
docker run --rm -p 8899:8899 \
--device /dev/snd \
-e ALSA_DEVICE="plughw:0,0" \
cstaelen/castafiore-headless:latest
Then open http://<host>:8899 in your browser and connect to your Navidrome/Subsonic server.
Castafiore UI lets you switch between two output modes:
A 10-band parametric EQ powered by CamillaDSPā is available at http://<host>:8899/eq.
To enable it, mount a local config/ directory:
volumes:
- ./config:/config # optional ā required to use the EQ
On first start, default presets (flat, bass, treble, rock...) are copied to config/presets/. The active config is always config/camilladsp.yml.
Directory layout:
config/
āāā camilladsp.yml # active config (written by the EQ UI)
āāā dsp-state.json # enabled/disabled state (auto-managed)
āāā presets/
āāā flat.yml
āāā bass.yml
āāā custom.yml # add your own YML files here
Selecting a preset in the UI copies it to camilladsp.yml. Adjusting a slider writes directly to camilladsp.yml and keeps the active preset file in sync.
The ALSA_DEVICE environment variable is automatically injected into all preset files on first start. Run aplay -l inside the container to list available devices.
| Variable | Default | Description |
|---|---|---|
PORT | 8899 | HTTP port for the web server |
ALSA_DEVICE | plughw:0,0 | ALSA output device (used by default CamillaDSP config) |
docker run --rm --device /dev/snd cstaelen/castafiore-headless:latest aplay -l
/api/* endpoints served by the same Node.js server# Local build
make build
# Multi-arch push (amd64 + arm64)
make push
# arm64 only (Raspberry Pi)
make push-rpi
Content type
Image
Digest
sha256:f9aa32a81ā¦
Size
39.7 MB
Last updated
4 months ago
docker pull cstaelen/castafiore-headless