ADSBItalia logo
Join the global ADSBItalia network

Connect your ADS-B and MLAT feeder to ADSBItalia.

ADSBItalia aggregates ADS-B feeds and MLAT results from independent stations around the world. You can contribute to the live map while keeping full control of your local setup.

You can join with Ultrafeeder/Docker, ADSB.im, with a compatible Beast feed, or with the classic script-based installation. All connections to ADSBItalia are outbound: no router port forwarding is required.

Community support

Need help with your setup?

Ask the ADSBItalia community on Discord or Telegram. Include your setup method, hardware, software, error message and relevant logs. Never share tokens, passwords or personal information.

Ways to join

ADSBItalia accepts ADS-B feeds in Beast format and, where possible, dedicated MLAT connections. The best method depends on how your station is configured: Docker/Ultrafeeder, ADSB.im, a classic local decoder, readsb, dump1090 or other compatible software.

Recommended Ultrafeeder / Docker

If you use Ultrafeeder, you can add ADSBItalia as an outbound feeder without installing additional systemd services on the host.

No script ADSB.im

From ADSB.im v3.0.13, ADSBItalia is built in. Enable it with a checkbox on the Data Sharing page; no manual arguments are required.

Alternative Classic installation

If you have a local decoder with Beast output available on a TCP port, you can use the ADSBItalia script to create dedicated ADS-B and MLAT services.

VHF / HF / Satcom ACARS / VDL2 / HFDL / Satcom

Feed VHF ACARS, VDL Mode 2, HFDL shortwave, or Inmarsat/Iridium Satcom telemetry via acars_router, dumphfdl, or ADSB.im.

FLARM / OGN FLARM / OGN (Gliders & VFR)

Feed live gliders, ultralights, hang gliders, and paragliders via an OGN receiver (868/915 MHz), Air!Squitter, or direct BaseStation SBS stream.

VHF 162 MHz Marine AIS (Vessels & Ships)

Maritime VHF AIS tracking via UDP or HTTP (AIS-catcher / ShipFeeder / rtl-ais / OpenCPN).

UHF 403 MHz Weather Radiosondes (High-Altitude Balloons)

Track stratospheric weather balloons (Vaisala RS41, Meteomodem M20, DFM) via radiosonde_auto_rx, dxlAPRS, or UDP.

The “Your feed status” page also works with Ultrafeeder: ADSBItalia checks connections from your public IP to the network ports.

What you send to ADSBItalia

  • ADS-B Beast feed to ADSBItalia on port 31108.
  • MLAT connection to ADSBItalia on port 41113, if configured.
  • Optional local MLAT results on a dedicated port, if supported by your setup.
  • Correct feeder name, coordinates and altitude to identify the station and improve MLAT quality.

Main ports

Local Beast30005
ADSBItalia ADS-B31108
ADSBItalia MLAT41113
MLAT results33106 / libera

The local Beast port may be different from 30005. ADSBItalia ports are outbound connections from the feeder to the server.

Recommended method: Ultrafeeder / Docker

Ultrafeeder is the best option if you already manage your ADS-B station with Docker. In this case, you do not need to install the ADSBItalia script on the host: add ADSBItalia to the outbound configuration of the container and restart Ultrafeeder.

Before editing

  • Make a copy of your docker-compose.yml or .env file.
  • Check that coordinates, altitude, feeder name and UUID are correct.
  • If you already have other networks in ULTRAFEEDER_CONFIG, add ADSBItalia without deleting existing lines.

Ultrafeeder configuration example

Add the ADSBItalia lines to your ULTRAFEEDER_CONFIG variable. Keep semicolons between lines, except on the last line of the variable.

ULTRAFEEDER_CONFIG=
adsb,adsbitalia.it,31108,beast_reduce_plus_out;
mlat,mlat.adsbitalia.it,41113;

Restart and check

docker compose pull ultrafeeder
docker compose up -d ultrafeeder
docker logs -f ultrafeeder
The MLAT line requires only the MLAT server host and port. Use the configuration exactly as shown. If you are unsure, contact ADSBItalia and mention that you use Ultrafeeder.
đź“§ Feeder Offline & MLAT Email Alerts: Once Ultrafeeder connects to ADSBItalia, simply open adsbitalia.it/status.html from any device on your local network. Your station is automatically detected via your public IP, allowing you to link your email for offline alerts and weekly performance digests with 1 click.

ADSB.im method

From ADSB.im version v3.0.13, ADSBItalia is integrated directly into the web interface. You no longer need to run a script, open the Expert section or paste Ultrafeeder arguments.

Enable ADSBItalia

  1. Make sure your ADSB.im installation is updated to v3.0.13 or later.
  2. Open the ADSB.im web interface and go to Data Sharing.
  3. Find ADSBItalia in the list of aggregators.
  4. Enable the ADSBItalia checkbox and save or apply the changes.
That is all: ADSB.im manages the required ADS-B and MLAT connections automatically. After applying the change, check the “Your feed status” page to confirm that the station is online.
đź“§ Feeder Offline & MLAT Email Alerts: Once ADSBItalia is activated in your ADSB.im interface, visit adsbitalia.it/status.html from your local Wi-Fi. Your receiver is detected instantly by public IP, letting you register your email address in seconds.

Classic script-based installation

Use this method if you have a local ADS-B decoder exposing Beast output on 127.0.0.1 or on a host reachable by the feeder machine.

Quick install

Run this command on the feeder:

curl -fsSL https://raw.githubusercontent.com/ADSBItalia/Feeding/main/install.sh -o install.sh && bash install.sh

What the script does

The script checks the local Beast port, installs the needed packages, prepares the dedicated mlat-client environment, registers the feeder and creates local systemd services to send ADS-B and MLAT to ADSBItalia.

Available scripts

  • install.sh — initial feeder installation.
  • update.sh — update feeder name, coordinates and altitude.
  • uninstall.sh — remove ADSBItalia services and the dedicated MLAT environment.

Requirements

  • Active ADS-B receiver.
  • Local Beast feed available or a compatible Ultrafeeder/Docker setup.
  • Stable Internet connection.
  • Ability to send data to ADSBItalia through an outbound connection.
  • Correct coordinates and altitude if you also want to contribute to MLAT.

No router port forwarding is required. Classic installation needs sudo privileges; with Ultrafeeder you only edit your existing Docker configuration.

Local MLAT results

When configured, the feeder can receive MLAT results locally and reuse them in its own installation, for example in the local map or compatible services.

Management commands

Classic installation

Service status:

sudo systemctl status adsbitalia-feed.service
sudo systemctl status adsbitalia-mlat.service

Live logs:

sudo journalctl -u adsbitalia-feed.service -f
sudo journalctl -u adsbitalia-mlat.service -f

Ultrafeeder / Docker

docker ps | grep ultrafeeder
docker logs -f ultrafeeder
docker compose logs -f ultrafeeder

Update and removal

Update classic installation details

To change feeder name, coordinates or altitude:

curl -fsSL https://raw.githubusercontent.com/ADSBItalia/Feeding/main/update.sh -o update.sh && bash update.sh

Remove ADSBItalia

To remove ADSBItalia services from the classic installation:

curl -fsSL https://raw.githubusercontent.com/ADSBItalia/Feeding/main/uninstall.sh | sudo bash

With Ultrafeeder, remove the ADSBItalia lines from the container configuration and restart Ultrafeeder.

Files created by the classic installation

/opt/adsbitalia-mlat                         Python environment dedicated to mlat-client.
/etc/adsbitalia/feeder.conf                 Feeder configuration.
/etc/systemd/system/adsbitalia-mlat.service     ADSBItalia MLAT systemd service.
/etc/systemd/system/adsbitalia-feed.service     ADSBItalia ADS-B forwarding systemd service.

These files are not created if you join through Ultrafeeder/Docker without using the classic script.

Troubleshooting

If the feed does not appear online, first check which method you are using.

Classic installation

sudo systemctl status adsbitalia-feed.service
sudo systemctl status adsbitalia-mlat.service
sudo journalctl -u adsbitalia-feed.service -n 100 --no-pager
sudo journalctl -u adsbitalia-mlat.service -n 100 --no-pager

Ultrafeeder

docker ps | grep ultrafeeder
docker logs --tail 100 ultrafeeder
docker compose logs --tail 100 ultrafeeder

Also check that the local feeder is generating ADS-B data, that coordinates are correct and that the firewall allows outbound connections to ADSBItalia.

Feeding ACARS, VDL-M2, HFDL & Satcom to ADSBItalia

ADSBItalia hosts a dedicated central ACARS & Satcom Router Engine that aggregates live telemetry from VHF ACARS, VDL Mode 2, HFDL (Shortwave), and Satcom (Inmarsat/Iridium) stations worldwide.

Our backend automatically enriches position reports with real-time GroundSpeed calculation and Altitude Memory persistence for oceanic and remote flights, rendering them live on the map.

Global Ingestion Host: feed.adsbitalia.it (or adsbitalia.it)

Dedicated Ingestion Ports Table

VHF ACARS (131 MHz)5550JSON (TCP/UDP)
VDL Mode 2 (VHF 136 MHz)5555JSON (TCP/UDP)
HFDL (Shortwave 2–30 MHz)5556JSON (TCP/UDP)
Satcom Inmarsat (JAERO / IMSL)5557JSON (TCP/UDP)
Satcom Iridium (IRDM / irdm2acars)5558JSON (TCP/UDP)
Generic BaseStation SBS (JAERO)31109SBS (TCP)

acars_router Setup (Docker / SDR-Enthusiasts)

If you run acars_router (SDR-Enthusiasts), add forwarding destinations via TCP to your docker-compose.yml environment variables and restart the container:

environment:
  - AR_SEND_TCP_ACARS=feed.adsbitalia.it:5550
  - AR_SEND_TCP_VDLM2=feed.adsbitalia.it:5555
  - AR_SEND_TCP_HFDL=feed.adsbitalia.it:5556
  - AR_SEND_TCP_IMSL=feed.adsbitalia.it:5557
  - AR_SEND_TCP_IRDM=feed.adsbitalia.it:5558

Reliability note: We strongly recommend using TCP (as shown above) rather than UDP to prevent message drops caused by carrier firewalls or router NAT.

ADSB.im Setup

Open your ADSB.im web dashboard, navigate to the active HFDL, VDL2, Satcom or ACARS package, and under Custom Destinations set feed.adsbitalia.it (or adsbitalia.it) with the designated port in JSON format.

Host: feed.adsbitalia.it
Ports: 5550 (VHF ACARS) | 5555 (VDL2) | 5556 (HFDL) | 5557 (Inmarsat) | 5558 (Iridium)
Format: JSON

Standalone Demodulators & Decoders

# Satcom Inmarsat (JAERO):
Settings -> Audio/Decoding -> ACARS Output -> Host: feed.adsbitalia.it, Port: 5557, Protocol: TCP or UDP (JSON)
# (or SBS TCP output on port 31109)

# Satcom Iridium (irdm2acars / iridium-toolkit):
Host: feed.adsbitalia.it, Port: 5558, Protocol: TCP or UDP (JSON)

# VHF ACARS (acarsdec):
acarsdec -j feed.adsbitalia.it:5550

# VDL Mode 2 (dumpvdl2):
dumpvdl2 --output-acars decoded:json:tcp:address=feed.adsbitalia.it,port=5555

# HFDL (dumphfdl):
dumphfdl --output decoded:json:tcp:address=feed.adsbitalia.it,port=5556

Feeding FLARM & OGN (Gliders, Ultralights & VFR) to ADSBItalia

ADSBItalia integrates worldwide FLARM, Open Glider Network (OGN), FANET, PilotAware, and SafeSky telemetry in real time, rendering gliders, motorgliders, light aircraft, and paragliders on the live flight map.

If you operate a FLARM or OGN receiving station (RTL-SDR dongle on 868.2/868.4 MHz or 915 MHz, Air!Squitter, PowerFLARM, FlarmBox, or local decoder), you can contribute data to ADSBItalia with ease.

Global Ingestion Server: feed.adsbitalia.it (or adsbitalia.it)

Dedicated FLARM / OGN Ports Table

BaseStation SBS FLARM (readsb)32006SBS (TCP)
Secondary BaseStation SBS31110SBS (TCP)
Global OGN APRS Backbone14580APRS-IS (aprs.glidernet.org)

Method 1: Via OGN Network (Recommended for OGN Receivers)

If you run an OGN receiver using rtlsdr-ogn or Docker (such as glidernet/ogn-receiver or sdr-enthusiasts/docker-ogn), configure it to send beacons to the standard OGN APRS server:

# In your ogn-rf.conf configuration:
APRS:
{
  Call = "YOUR_STATION_CALLSIGN";
  Server = "aprs.glidernet.org:14580";
}

Note: ADSBItalia is directly connected to the Open Glider Network global APRS-IS backbone. Packets received by your OGN station are ingested automatically into ADSBItalia in real time!

Method 2: Direct BaseStation SBS Stream (Port 32006 TCP)

If you have an Air!Squitter, PowerFLARM, local ogn2sbs bridge, or custom FLARM decoder with BaseStation SBS-1 output, you can send the feed directly to ADSBItalia over TCP:

Host: feed.adsbitalia.it
Port: 32006 (or 31110)
Protocol: TCP
Format: BaseStation (SBS-1)

Method 3: Ultrafeeder / Docker

If you aggregate local FLARM feeds or want to forward SBS data using Ultrafeeder, add the destination in your environment variables:

environment:
  - ULTRAFEEDER_DESTINATIONS=...;feed.adsbitalia.it,32006,sbs_out

How to Feed AIS Data (Maritime & Vessel Tracking)

ADSBItalia features a dedicated real-time marine radar map at adsbitalia.it/marine/ for live vessel tracking (cargo ships, tankers, passenger ferries, sailing yachts, fishing vessels, and patrol boats).

If you receive VHF maritime signals (AIS channels 161.975 MHz and 162.025 MHz) with an RTL-SDR dongle or dedicated receiver, you can feed your reception to our network via UDP, TCP or HTTP POST.

AIS Ingestion Server / Host: feed.adsbitalia.it

AIS Ingestion Ports & Endpoints

Standard NMEA Port10110NMEA 0183 (UDP / TCP)
Alternative Port5001NMEA AIVDM (UDP / TCP)
Dedicated ADSBItalia Port5559NMEA Marine (UDP / TCP)
HTTP/HTTPS Endpoint (Station ID)443https://adsbitalia.it/api/ais

Method 1: AIS-catcher via HTTP POST (Recommended for Station ID)

If you run AIS-catcher or ShipFeeder, you can forward packets over HTTPS with your custom station identifier:

AIS-catcher -H "https://adsbitalia.it/api/ais" ID YOUR_STATION_ID INTERVAL 15 GZIP on RESPONSE off

This identifies your station in the ADSBItalia AIS Feeder Control Center!

Method 2: AIS-catcher via Direct UDP

Stream decoded NMEA sentences via UDP to port 10110:

AIS-catcher -u feed.adsbitalia.it 10110

Method 3: Ultrafeeder / ShipFeeder Docker

In Docker with Ultrafeeder or ShipFeeder (sdr-enthusiasts), add the destination:

environment:
  - ULTRAFEEDER_DESTINATIONS=...;feed.adsbitalia.it,10110,ais_out

Method 4: rtl-ais / OpenCPN / dAISy

With rtl_ais, forward UDP sentences directly:

rtl_ais -h feed.adsbitalia.it -P 10110 -u

In OpenCPN, navigate to Options → Connections → Add Connection: Network, Type: UDP, Address: feed.adsbitalia.it, Port: 10110, Output: Output on this port (Transmit only).

How to Feed Radiosonde Data (UHF 400-406 MHz Weather Balloons)

ADSBItalia tracks real-time meteorological radiosondes and stratospheric balloons (launched by national weather services up to 35,000+ meters / 115,000 ft altitude) as well as amateur high-altitude balloons.

If you receive UHF radiosonde signals on 400-406 MHz with an RTL-SDR dongle and decoding software such as radiosonde_auto_rx or dxlAPRS, you can feed decoded telemetry directly to the ADSBItalia network via HTTP POST or UDP.

Radiosonde Ingestion Server / Host: feed.adsbitalia.it

Radiosonde Ingestion Ports & Endpoints

Standard Radiosonde Port10120JSON / OziPlotter (UDP / TCP)
HTTP/HTTPS Endpoint (Station ID)443https://feed.adsbitalia.it/api/sonde?id=YOUR_ID

Method 1: radiosonde_auto_rx via HTTP POST (Recommended)

If you run radiosonde_auto_rx, configure the [payload_exporter] block in your auto_rx.ini to export decoded packets to ADSBItalia's HTTPS endpoint:

[payload_exporter]
enabled = True
destination = http_post
url = https://feed.adsbitalia.it/api/sonde?id=YOUR_STATION_ID

Method 2: radiosonde_auto_rx via OziPlotter / UDP

Alternatively, stream continuous OziPlotter telemetry via UDP to port 10120:

[ozi_plotter]
ozi_enabled = True
ozi_host = feed.adsbitalia.it
ozi_port = 10120

Method 3: cURL / Python / Custom Script

Submit JSON telemetry via a simple HTTP POST request:

curl -X POST "https://feed.adsbitalia.it/api/sonde?id=YOUR_STATION_ID" \
  -H "Content-Type: application/json" \
  -d '{"serial":"V2830859","type":"RS41","lat":41.445,"lon":12.430,"alt":18500,"temp":-35.2,"freq":403.5}'