Dire Wolf (APRS / AX.25) avec Docker

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
Installation de Docker
Installer Docker simplement sous Linux et comprendre Docker Compose Docker permet d’installer et de faire fonctionner des applications dans des “conteneurs”, sans modifier profondément son système. C’est particulièrement utile en radioamateur pour déployer : * un site web, * un serveur de monitoring relais, * une base de données, * un outil APRS,

📡 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 Wolf
  • config/ → configuration persistante
  • data/ → stockage éventuel

🧱 Prérequis

  • Linux
  • Docker + Docker Compose
  • Carte son fonctionnelle

Vérification côté hôte :

aplay -l
ls /dev/snd

Si 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 direwolf
docker compose build

La compilation se fait depuis les sources officielles de Dire Wolf.


🚀 Lancer Dire Wolf

docker compose up -d

Voir les logs :

docker compose logs -f direwolf

Si 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 0

Explication 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/snd

Cela 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) |||||||__