A lightweight Docker image that builds OwnTone (formerly forked-daapd) from source on Alpine Linux. OwnTone is a media server that shares music libraries over your local network using the DAAP protocol.
The image is built as a multi-arch manifest for linux/amd64, linux/arm64, and linux/arm/v7, and published to Docker Hub as rohmilkaese/owntone. Docker will automatically pull the correct image for your platform.
docker run -d \
--network host \
-v /path/to/config:/config \
-v /path/to/music:/music \
-v /etc/localtime:/etc/localtime:ro \
--restart unless-stopped \
rohmilkaese/owntone:latestOr with Docker Compose:
version: "3"
services:
owntone:
image: rohmilkaese/owntone:latest
container_name: owntone
network_mode: host
volumes:
- ./config:/config
- /path/to/music:/music
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped| Port | Description |
|---|---|
| 3689 | DAAP protocol (music sharing) |
| 3688 | Web interface |
| Path | Description |
|---|---|
/config |
Persistent configuration and database cache |
/music |
Music library directory |
On first start, the default owntone.conf is copied to /config/owntone.conf. Edit this file to customize the server.
docker build -t owntone .To build a specific OwnTone version:
docker build --build-arg OWNTONE_BRANCH=29.0 -t owntone .The Dockerfile compiles OwnTone with the following options:
- iTunes support: enabled
- Chromecast: disabled
- MPD: disabled
- Spotify: disabled
- IPv6: disabled
- Runs as: root
- Logs to: stdout (for
docker logs)
CI is split into two workflows:
- Test (
test.yml) — Runs on every push tomaster. Builds the Docker image for all platforms (no push). On success, creates av<version>git tag if it doesn't already exist, and calls the Publish workflow. - Publish (
publish.yml) — Called by the Test workflow (viaworkflow_call) or triggered by av*tag push. Builds and pushes the multi-arch image to Docker Hub with version andlatesttags.