Dire Wolf (APRS / AX.25) avec Docker
L’APRS reste un outil incontournable pour la localisation, la télémétrie et les échanges de trames AX.25.
Plutôt que d’installer directement Dire Wolf sur le système, il est possible de l’exécuter proprement dans un conteneur Docker.
Je propose ici une méthode simple basée sur mon projet Dire Wolf sous Docker.
🐳 Retrouver comment installer et utiliser docker ici

📡 Qu’est-ce que Dire Wolf ?
Dire Wolf est un TNC logiciel compatible AX.25 / APRS.
Il permet notamment :
- 📻 Décodage / encodage packet 1200 bauds
- 🔌 Mode KISS TCP (connexion à Xastir, YAAC, etc.)
- 🌍 Fonction iGate APRS-IS
- 🎛 Gestion PTT (VOX, GPIO, CM108, RTS…)
📁 Structure du projet
direwolf-docker/
├─ docker-compose.yml
├─ build/
│ ├─ Dockerfile
│ └─ entrypoint.sh
├─ config/
│ └─ direwolf.conf
└─ data/
build/→ construction de l’image Alpine + compilation Dire Wolfconfig/→ configuration persistantedata/→ stockage éventuel
🧱 Prérequis
- Linux
- Docker + Docker Compose
- Carte son fonctionnelle
Vérification côté hôte :
aplay -l
ls /dev/sndSi aucun périphérique n’apparaît, le conteneur ne pourra pas accéder à l’audio.
🛠️ Construction de l’image
Télécharger le dépôt "direwolf-docker" sur Github:
git clone https://github.com/f4hlv/direwolf-docker.git direwolf
cd direwolfdocker compose buildLa compilation se fait depuis les sources officielles de Dire Wolf.

🚀 Lancer Dire Wolf
docker compose up -dVoir les logs :
docker compose logs -f direwolfSi tout est correct, vous devriez voir :
- Initialisation audio
- Activation modem 1200
- Ouverture du port KISS
Voici un exemple des logs au démarrage:
direwolf | Reading config file /etc/direwolf/direwolf.conf
direwolf | Audio device for both receive and transmit: plughw:1,0 (channel 0)
direwolf | Channel 0: 1200 baud, AFSK 1200 & 2200 Hz, A+, 44100 sample rate, Tx AX.25.
direwolf | Ready to accept AGW client application 0 on port 8000 ...
direwolf | Ready to accept KISS TCP client application 0 on port 8001 ...⚙️ Configuration Dire Wolf
Voici un exemple minimal du direwolf.conf :
#############################################
# Configuration Dire Wolf – Exemple simple
#############################################
# Indicatif (avec SSID si besoin)
MYCALL F0XXX-10
# Carte son (adapter selon votre système)
ADEVICE plughw:0,0
# Nombre de canaux
# 1 pour mono, 2 pour stéréo. Par défaut : 1.
CHANNELS 1
# Mode modem (1200 bauds pour VHF)
MODEM 1200
# PTT (choisir selon votre matériel)
PTT VOX
# Exemple GPIO Raspberry Pi moderne :
# PTT GPIOD gpiochip0 18
# Exemple GPIO ancien OS Raspberry Pi:
# GPIO 18
# Port KISS TCP
# KISSPORT 8001
# Beacon APRS locale (optionnel)
#PBEACON lat=43.077104 long=-79.075674 symbol="canoe" comment="Niagara Falls"
# Activer iGate APRS-IS (optionnel)
# IGLOGIN F0XXX-10 12345
# IGSERVER france.aprs2.net 14580
# IGTXVIA 0Explication rapide des lignes importantes
- MYCALL → ton indicatif (avec SSID selon usage)
- ADEVICE → périphérique audio ALSA
- MODEM 1200 → pour APRS VHF classique
- PTT → méthode d’activation émission
- KISSPORT → port TCP pour connecter Xastir / YAAC
- PBEACON → balise automatique
- IGLOGIN → active la fonction iGate
Explication détaillé du fichier de configuration direwolf.conf:
🔉 Accès audio ALSA
Dans le docker-compose.yml :
devices:
- /dev/snd:/dev/sndCela donne accès à la carte son du système.
⚠️ Le nom du périphérique peut varier.
🌐 KISS TCP
Par défaut :
- Port : 8001
- Accès :
localhost:8001
Cela permet de connecter :
- Xastir
- YAAC
- LinPac
- autre client APRS
🔧 Gestion PTT
Plusieurs méthodes possibles :
- VOX
- CM108
- GPIO
- RTS / DTR
Exemple Raspberry Pi moderne :
PTT GPIOD gpiochip0 18
Ancien Raspberry OS :
PTT GPIO 18
Réglage du niveau audio
Le réglage du niveau audio est primordial pour obtenir le meilleur décodage possible. Taper alsamixer dans la console Linux pour ajuster les gains Tx et Rx.

Dans les logs du container Direwolf, ajuster l'entrée audio (Mic) pour que Audio level soit le plus proche de la valeur "50".
audio level = 49(17/17) |||||||__