Run SvxLink in Docker — svxlink, remotetrx, or svxreflector — on amd64 or arm64 (Raspberry Pi included).
The standard svxreflector is replaced by GeuReflector, an extended version that adds server-to-server trunk protocol for linking multiple reflectors together.
git clone https://github.com/f4hlv/svxlink-docker.git
cd svxlink-docker
docker compose up -dThat's it. The pre-built image is pulled automatically.
Extract the default config files from the container:
mkdir -p config/etc config/usr/share
docker compose cp svxlink:/etc/svxlink config/etc/
docker compose cp svxlink:/usr/share/svxlink config/usr/share/Edit the files in config/ to match your setup, then restart:
docker compose restartSet these in the environment: section of docker-compose.yml:
| Variable | Default | Description |
|---|---|---|
START_SVXLINK |
1 |
Enable svxlink |
START_REMOTETRX |
0 |
Enable remotetrx |
START_SVXREFLECTOR |
0 |
Enable svxreflector (GeuReflector) |
Extra options:
| Variable | Default | Description |
|---|---|---|
SVXLINK_ARGS |
(empty) | Extra CLI args (e.g. --logfile=/var/log/svxlink/svxlink.log) |
REMOTETRX_ARGS |
(empty) | Extra CLI args |
SVXREFLECTOR_ARGS |
(empty) | Extra CLI args |
When running the reflector (START_SVXREFLECTOR=1), these ports are available:
| Port | Description |
|---|---|
5300 |
Client connections (same as standard svxreflector) |
5302 |
Server-to-server trunk links |
5303 |
Satellite relay connections (optional, uncomment in docker-compose.yml) |
8080 |
HTTP status endpoints /status and /config (optional, uncomment in docker-compose.yml) |
Trunk and satellite ports are configured in svxreflector.conf via [TRUNK_*] and [SATELLITE] sections. See the GeuReflector documentation for details.
Uncomment the relevant lines in docker-compose.yml:
devices:
- /dev/snd:/dev/snd # sound card
- /dev/gpiochip0:/dev/gpiochip0 # GPIO (Raspberry Pi)
- /dev/bus/usb:/dev/bus/usb # USB / RTL-SDROr set privileged: true for full device access.
docker compose logs -f --tail=500To use the dl1hrc/svxlink USRP fork, change the image in docker-compose.yml:
image: ghcr.io/audric/svxlink-docker-usrp:latestTo build from source instead of using the pre-built image, comment out image: and uncomment the build: block in docker-compose.yml, then:
docker compose up -d --buildBuild from a different SvxLink or GeuReflector branch:
docker compose build --build-arg GIT_BRANCH=develop
docker compose build --build-arg GEUREFLECTOR_BRANCH=develop
docker compose up -dRebuild from scratch:
docker compose build --no-cache
docker compose up -dSvxLink is licensed under the GPL. This Docker setup follows the same spirit of openness and reuse.
Maintained by IW1GEU — contributions welcome.