Avanzado ⏱️ 8 min Guías Airframes

Cómo compartir datos aeronáuticos usando Docker

Aprendé cómo usar Docker y ACARS Hub para ejecutar múltiples decodificadores y alimentar los servicios de Airframes en una sola máquina.

📅 Publicado: 25 de junio de 2026 ✍️ Por Equipo Zorzal RF

Basado en la documentación oficial de airframes.io.
Traducido y adaptado por el equipo técnico de Zorzal RF para la comunidad hispanohablante.

Docker es el método recomendado para ejecutar múltiples decodificadores en una sola máquina. Esta guía cubre dos enfoques: la configuración moderna de ACARS Hub (recomendada) y una configuración manual de Docker Compose.

ACARS Hub (Recomendado)

ACARS Hub es una solución en Docker “todo en uno” que decodifica ACARS, VDL2, HFDL y mensajes satelitales, proporciona un panel web local (dashboard) y alimenta automáticamente a servicios de agregación como Airframes.

La arquitectura utiliza acars_router como un centro unificador (hub):

acarsdec ──UDP──► ┐
dumpvdl2 ──ZMQ──► │ acars_router ──ZMQ──► ACARS Hub (panel web)
dumphfdl ──UDP──► ┘       │
                          └──UDP/TCP──► feed.airframes.io

Configuración con Docker Compose

Crea un archivo docker-compose.yml:

services:
  acarshub:
    image: ghcr.io/sdr-enthusiasts/docker-acarshub:latest
    container_name: acarshub
    restart: always
    ports:
      - 8080:80
    volumes:
      - ./acars_data:/run/acars
    tmpfs:
      - /database:exec,size=64M
      - /run:exec,size=64M
      - /var/log:size=64M
    environment:
      - TZ=Etc/UTC
      - ENABLE_ACARS=true
      - ENABLE_VDLM=true
      - ACARS_CONNECTIONS=zmq://acars_router:45550
      - VDLM_CONNECTIONS=zmq://acars_router:45555

  acars_router:
    image: ghcr.io/sdr-enthusiasts/acars_router:latest
    container_name: acars_router
    restart: always
    tmpfs:
      - /run:exec,size=64M
      - /var/log:size=64M
    environment:
      - TZ=Etc/UTC
      - AR_OVERRIDE_STATION_NAME=MI-ESTACION
      - AR_ENABLE_DEDUPE=true
      - AR_RECV_ZMQ_VDLM2=dumpvdl2:45555
      # Compartir datos con Airframes (descomenta las líneas de tus decodificadores)
      - AR_SEND_UDP_ACARS=feed.airframes.io:5550
      - AR_SEND_TCP_VDLM2=feed.airframes.io:5553
      # - AR_SEND_TCP_HFDL=feed.airframes.io:5556

  acarsdec:
    image: ghcr.io/sdr-enthusiasts/docker-acarsdec:latest
    container_name: acarsdec
    restart: always
    environment:
      - TZ=Etc/UTC
      - SERIAL=               # Número de serie de tu [RTL-SDR](/catalogo/rtl-sdr-blog-v3-receptor-usba/)
      - GAIN=-10
      - PPM=0
      - FREQUENCIES=130.025;130.450;131.125;131.550
      - FEED_ID=MI-ESTACION
      - OUTPUT_SERVER=acars_router
      - OUTPUT_SERVER_MODE=udp
    tmpfs:
      - /run:exec,size=64M
      - /var/log:size=64M
    device_cgroup_rules:
      - "c 189:* rwm"
    volumes:
      - /dev/bus/usb:/dev/bus/usb:ro

  dumpvdl2:
    image: ghcr.io/sdr-enthusiasts/docker-dumpvdl2:latest
    container_name: dumpvdl2
    restart: always
    environment:
      - TZ=Etc/UTC
      - SERIAL=               # Número de serie de tu RTL-SDR
      - GAIN=40.0
      - PPM=0
      - FREQUENCIES=136650000;136700000;136800000;136975000
      - FEED_ID=MI-ESTACION
      - ZMQ_MODE=server
      - ZMQ_ENDPOINT=tcp://0.0.0.0:45555
    tmpfs:
      - /run:exec,size=64M
      - /var/log:size=64M
    device_cgroup_rules:
      - "c 189:* rwm"
    volumes:
      - /dev/bus/usb:/dev/bus/usb:ro

Pasos de Configuración

  1. Configurá el nombre de tu estación: Cambia AR_OVERRIDE_STATION_NAME y FEED_ID por tu identificador de estación.
  2. Configurá los números de serie de tu SDR: Cada SDR necesita un número de serie único. Configurá el campo SERIAL para cada decodificador. Podés asignar números de serie a los dispositivos RTL-SDR con rtl_eeprom -s MINUMEROSERIE.
  3. Configurá tus frecuencias: Actualiza el campo FREQUENCIES de cada decodificador para que coincida con tu región.
  4. Configurá tu zona horaria: Cambia TZ por tu zona horaria local.
  5. Habilita el envío a Airframes: Las líneas que comienzan con AR_SEND_* en acars_router controlan a dónde se envía la información. Descomenta las líneas correspondientes a cada tipo de decodificador que estés ejecutando.

Puertos de envío de acars_router

VariableDestinoProtocolo
AR_SEND_UDP_ACARSfeed.airframes.io:5550UDP
AR_SEND_TCP_VDLM2feed.airframes.io:5553TCP
AR_SEND_TCP_HFDLfeed.airframes.io:5556TCP

Iniciar y Detener

# Iniciar todos los contenedores
docker compose up -d

# Ver registros (logs)
docker compose logs -f

# Detener todos los contenedores
docker compose down

Acceder al panel de control (Dashboard)

Una vez que se esté ejecutando, abrí http://localhost:8080 (o la IP de tu máquina) en un navegador para ver el panel de ACARS Hub con los mensajes decodificados en tiempo real.

Docker Compose Manual (Sin ACARS Hub)

Si preferís una configuración más simple sin el panel de ACARS Hub, podés ejecutar los decodificadores directamente en contenedores Docker que alimenten a Airframes de manera independiente.

(El documento original detalla extractos equivalentes del archivo docker-compose.yml donde se configuran los puertos directos de Airframes. Ver guía original para el archivo completo).

Validando tu Feeder

Una vez que tu feeder esté funcionando, visitá la página de estaciones de Airframes para ver tu estación y el contador de mensajes.

Nota: Es posible que no recibas ningún mensaje de inmediato. El volumen de mensajes depende del tráfico aéreo en tu área y de la hora del día.

Configuración de Sincronización de Tiempo

Tener marcas de tiempo (timestamps) precisas es importante para los mensajes ACARS. Si tu sistema (especialmente una Raspberry Pi sin un reloj en tiempo real o RTC) no tiene una hora confiable, podés configurarlo mediante NTP (systemd-timesyncd).

Solución a Problemas Frecuentes

Los contenedores no arrancan / No se encuentra el SDR:

  • Verificá el acceso al dispositivo USB ejecutando lsusb. Debería mostrar tu SDR.
  • Asegurate de que ninguna otra pieza de software esté ocupando el SDR.

No se reciben mensajes:

  • Revisá los logs de los contenedores usando docker compose logs acarsdec o docker compose logs dumpvdl2.
  • Verificá que las frecuencias sean las correctas para tu región.
  • Intentá ajustar la ganancia (GAIN).

¿Listo para arrancar con tu proyecto?

En nuestra tienda oficial vas a encontrar los receptores RTL-SDR, antenas y accesorios que necesitas, con envío a todo el país.

Ir a la Tienda

Buscar en Zorzal RF