# How to become a feeder?

Step-by-step installation and migration guides for ADS-B.Pro feeder v2. Choose Linux or Windows, including VRS and Kinetic SBS. / Instrukcje instalacji i migracji feedera ADS-B.Pro v2 dla Linux i Windows, w tym VRS i Kinetic SBS.

# [PL] Linux — instalacja feedera ADS-B.Pro

Ta instrukcja jest przeznaczona dla Raspberry Pi oraz komputerów z systemem Linux. Obsługiwane architektury to `amd64`, `arm64`, `armv6` i `armv7`.

Nowy feeder łączy się z ADS-B.Pro przez szyfrowane połączenie TLS. Token jest potrzebny tylko podczas pierwszego parowania instalacji — nie jest wysyłany razem z każdą ramką ADS-B.

## Zanim zaczniesz

Potrzebujesz:

- konta ADS-B.Pro i tokenu zaczynającego się od `ADS-`;
- działającego źródła danych ADS-B na tej samej maszynie;
- dostępu do konta z uprawnieniami `sudo`;
- połączenia wychodzącego do `feed.ads-b.pro` na porcie `48582`.

Instalator automatycznie szuka prawidłowych ramek, a nie nazw zainstalowanych programów:

1. Beast Binary na `127.0.0.1:30005`;
2. jeśli nie znajdzie ramek Beast w ciągu 5 sekund — BaseStation/SBS na `127.0.0.1:30003`.

Może więc współpracować między innymi z `readsb`, `dump1090`, `tar1090` i innymi programami wystawiającymi zgodny strumień.

## Instalacja

W terminalu wykonaj:

```bash
curl -fsSL https://raw.githubusercontent.com/br3jski/radarview/main/radarview_setup.sh | sudo bash
```

Jeżeli instalator nie znajdzie starej konfiguracji, poprosi o token ADS-B.Pro. Wprowadzany token nie jest wyświetlany.

Instalator:

- pobiera feeder odpowiedni dla architektury komputera;
- sprawdza podpisany manifest wydania oraz sumę SHA-256 pliku;
- tworzy użytkownika systemowego `adsbpro-feeder`;
- zapisuje prywatny klucz instalacji wyłącznie lokalnie;
- instaluje i uruchamia usługę systemd;
- uruchamia lokalną stronę statusu na porcie `54321`;
- czeka na połączenie z ADS-B.Pro i pierwszą zaakceptowaną ramkę.

Po udanym sparowaniu tymczasowa kopia tokenu jest usuwana.

## Migracja ze starego `/opt/radarview.py`

Jeżeli masz starą usługę `radarview`, nie usuwaj jej przed instalacją.

Instalator sam odczyta token ze starego skryptu, ale go nie wypisze. Stara usługa zostanie zatrzymana dopiero wtedy, gdy nowy feeder połączy się z ADS-B.Pro i prześle pierwszą zaakceptowaną ramkę. Sam plik starego skryptu pozostaje na dysku jako możliwość awaryjnego powrotu.

Nie uruchamiaj jednocześnie starego i nowego feedera dla tego samego odbiornika — powoduje to wysyłanie duplikatów i niepotrzebne użycie łącza.

## Sprawdzenie działania

Status w terminalu:

```bash
sudo /usr/local/bin/adsbpro-feeder status
```

Status usługi i ostatnie logi:

```bash
sudo systemctl status adsbpro-feeder --no-pager
sudo journalctl -u adsbpro-feeder -n 50 --no-pager
```

Strona statusu:

```text
http://ADRES-IP-FEEDERA:54321
```

Na tym samym komputerze możesz użyć `http://localhost:54321`. Port statusu jest przeznaczony wyłącznie dla sieci lokalnej lub VPN — nie przekierowuj go w routerze do Internetu.

Prawidłowy status to **ACTIVE**. Panel pokazuje między innymi liczbę widzianych samolotów, tempo wiadomości, bieżący upload oraz wersję feedera.

## Kolejna instalacja na tym samym koncie

Pierwsza instalacja v2 może zostać sparowana samym tokenem. Przed dodaniem każdej kolejnej instalacji otwórz w swoim koncie ADS-B.Pro 10-minutowe okno parowania, a następnie uruchom instalator na nowym komputerze.

## Niestandardowy adres lub port źródła

Najprościej uruchomić instalator interaktywnie. Jeżeli źródło ADS-B działa na innym adresie albo porcie, dostępne są opcje instalatora, na przykład:

```bash
curl -fsSL https://raw.githubusercontent.com/br3jski/radarview/main/radarview_setup.sh -o /tmp/radarview_setup.sh
sudo bash /tmp/radarview_setup.sh --source-host 192.168.1.25 --source-mode beast --beast-port 30005
```

Dla BaseStation/SBS użyj `--source-mode sbs --sbs-port NUMER_PORTU`.

## Aktualizacja

Feeder nie aktualizuje się sam. Gdy strona statusu pokaże **UPDATE AVAILABLE**, uruchom ponownie tę samą komendę instalacyjną. To zachowa sparowaną tożsamość instalacji.

## Awaryjny powrót

```bash
sudo /usr/local/sbin/adsbpro-feeder-rollback
```

Polecenie wyłącza nową usługę i, jeżeli była wcześniej wykryta, przywraca starą usługę `radarview`.

## Gdy feeder nie jest ACTIVE

Sprawdź kolejno:

1. czy na `127.0.0.1:30005` albo `127.0.0.1:30003` rzeczywiście płyną dane;
2. wynik `sudo /usr/local/bin/adsbpro-feeder status`;
3. logi `sudo journalctl -u adsbpro-feeder -n 100 --no-pager`;
4. czy firewall pozwala na połączenie wychodzące TCP do `feed.ads-b.pro:48582`;
5. przy kolejnej instalacji — czy w panelu konta otwarto okno parowania.

Kod instalatora i feedera jest publiczny: [github.com/br3jski/radarview](https://github.com/br3jski/radarview).

# [EN] Linux — ADS-B.Pro feeder installation

This guide is for Raspberry Pi and other Linux computers. Supported architectures are `amd64`, `arm64`, `armv6`, and `armv7`.

The new feeder connects to ADS-B.Pro over encrypted TLS. Your token is needed only for the first pairing of an installation — it is not sent with every ADS-B frame.

## Before you start

You need:

- an ADS-B.Pro account and a token beginning with `ADS-`;
- a working ADS-B data source on the same machine;
- an account with `sudo` access;
- outbound access to `feed.ads-b.pro` on port `48582`.

The installer looks for valid frames, not for particular program names:

1. Beast Binary on `127.0.0.1:30005`;
2. if no valid Beast frame is received within 5 seconds — BaseStation/SBS on `127.0.0.1:30003`.

This works with `readsb`, `dump1090`, `tar1090`, and other software exposing a compatible stream.

## Installation

Run in a terminal:

```bash
curl -fsSL https://raw.githubusercontent.com/br3jski/radarview/main/radarview_setup.sh | sudo bash
```

If no previous configuration is found, the installer asks for your ADS-B.Pro token without displaying it on screen.

The installer:

- downloads the correct feeder build for the computer;
- verifies the signed release manifest and the file's SHA-256 checksum;
- creates the dedicated `adsbpro-feeder` system user;
- stores the installation's private key locally only;
- installs and starts a hardened systemd service;
- enables the local status page on port `54321`;
- waits for the connection and the first frame accepted by ADS-B.Pro.

The temporary token copy is removed after successful pairing.

## Migrating from `/opt/radarview.py`

Do not remove the old `radarview` service before installation.

The installer can read the token from the old script without printing it. It disables the old service only after the new feeder connects to ADS-B.Pro and sends its first accepted frame. The old script stays on disk for emergency rollback.

Do not run both the legacy and the new feeder for the same receiver. That sends duplicate data and wastes bandwidth.

## Verify the installation

Feeder status:

```bash
sudo /usr/local/bin/adsbpro-feeder status
```

Service status and recent logs:

```bash
sudo systemctl status adsbpro-feeder --no-pager
sudo journalctl -u adsbpro-feeder -n 50 --no-pager
```

Status page:

```text
http://FEEDER-IP-ADDRESS:54321
```

On the same machine use `http://localhost:54321`. The status port is intended for your LAN or VPN only — do not expose it to the Internet with router port forwarding.

The expected state is **ACTIVE**. The page also shows aircraft count, message rate, current upload rate, and feeder version.

## Adding another installation to the same account

The first v2 installation can be paired with the token alone. Before pairing every additional installation, open a 10-minute pairing window in your ADS-B.Pro account and then run the installer on the new computer.

## Non-standard source address or port

For a source running on a different host or port, download the setup script and pass explicit options, for example:

```bash
curl -fsSL https://raw.githubusercontent.com/br3jski/radarview/main/radarview_setup.sh -o /tmp/radarview_setup.sh
sudo bash /tmp/radarview_setup.sh --source-host 192.168.1.25 --source-mode beast --beast-port 30005
```

For BaseStation/SBS use `--source-mode sbs --sbs-port PORT_NUMBER`.

## Updating

The feeder does not update itself. When the status page displays **UPDATE AVAILABLE**, run the same installation command again. The paired installation identity is preserved.

## Emergency rollback

```bash
sudo /usr/local/sbin/adsbpro-feeder-rollback
```

This disables the new service and, when a previous `radarview` service was detected, restores it.

## If the feeder is not ACTIVE

Check:

1. that data is really available on `127.0.0.1:30005` or `127.0.0.1:30003`;
2. the output of `sudo /usr/local/bin/adsbpro-feeder status`;
3. `sudo journalctl -u adsbpro-feeder -n 100 --no-pager`;
4. outbound TCP access to `feed.ads-b.pro:48582`;
5. for an additional installation, that the pairing window is open in the account panel.

The installer and feeder source code are public: [github.com/br3jski/radarview](https://github.com/br3jski/radarview).

# [PL] Windows — instalacja feedera ADS-B.Pro

Ta instrukcja jest przeznaczona dla Windows i źródeł takich jak Kinetic SBS, Virtual Radar Server, BaseStation, `readsb` lub `dump1090`.

Feeder łączy się z ADS-B.Pro przez szyfrowane TLS. Token służy tylko do jednorazowego sparowania instalacji — nie jest wysyłany z każdą ramką ADS-B.

## Wymagania

- Windows na komputerze `AMD64` lub `ARM64`;
- **Windows PowerShell uruchomiony jako Administrator**;
- konto ADS-B.Pro i token zaczynający się od `ADS-`;
- strumień Beast Binary albo BaseStation/SBS dostępny lokalnie lub w sieci LAN;
- połączenie wychodzące do `feed.ads-b.pro:48582`.

Domyślnie instalator sprawdza, czy naprawdę płyną poprawne ramki:

1. Beast Binary na `127.0.0.1:30005`;
2. po 5 sekundach bez prawidłowej ramki Beast — BaseStation/SBS na `127.0.0.1:30003`.

## Zalecana instalacja: pobierz, obejrzyj i uruchom

Nie musisz uruchamiać kodu prosto z Internetu. Otwórz menu Start, wyszukaj **Windows PowerShell**, kliknij prawym przyciskiem i wybierz **Uruchom jako administrator**. Następnie wykonaj po kolei:

```powershell
$InstallerUrl = 'https://raw.githubusercontent.com/br3jski/radarview/main/radarview_setup.ps1'
$InstallerPath = Join-Path $env:TEMP 'radarview_setup.ps1'
Invoke-WebRequest -UseBasicParsing -Uri $InstallerUrl -OutFile $InstallerPath
notepad $InstallerPath
```

Notatnik otworzy dokładnie ten skrypt, który ma zostać uruchomiony. Po sprawdzeniu zamknij Notatnik i wykonaj:

```powershell
& $InstallerPath
```

Jeżeli PowerShell zablokuje lokalny skrypt polityką wykonywania, ustaw wyjątek tylko dla aktualnego okna:

```powershell
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
& $InstallerPath
```

`-Scope Process` nie zmienia stałych ustawień systemu i przestaje obowiązywać po zamknięciu tego okna PowerShell.

## Szybka instalacja jedną komendą

Poniższa komenda pobiera i uruchamia ten sam publiczny skrypt, ale nie daje możliwości obejrzenia go przed startem:

```powershell
irm https://raw.githubusercontent.com/br3jski/radarview/main/radarview_setup.ps1 | iex
```

## Co robi instalator

- wykrywa prawidłowe dane Beast lub SBS;
- pobiera właściwą binarkę feedera;
- weryfikuje podpis ECDSA manifestu wydania i sumę SHA-256 archiwum;
- instaluje pliki w `C:\Program Files\ADSBPro\Feeder`;
- zapisuje konfigurację i tożsamość w `C:\ProgramData\ADSBPro\Feeder`;
- tworzy automatyczną usługę `ADSBProFeeder` działającą jako ograniczone konto `LocalService`;
- tworzy regułę zapory dla strony statusu wyłącznie z sieci prywatnych/VPN;
- czeka na połączenie i pierwszą zaakceptowaną ramkę.

Klucz prywatny instalacji nie opuszcza komputera. Token jest wpisywany w bezpiecznym monicie, używany do pierwszego parowania i usuwany z tymczasowej konfiguracji po uzyskaniu statusu **ACTIVE**. Feeder nie ma automatycznych aktualizacji.

Jeżeli aktualizacja istniejącej instalacji v2 się nie powiedzie, instalator próbuje automatycznie przywrócić poprzednią wersję.

## Virtual Radar Server i Kinetic SBS

Jeżeli BaseStation, `readsb`, `dump1090` albo inny program już udostępnia Beast na porcie `30005` lub SBS na `30003`, nie musisz zmieniać konfiguracji VRS.

Jeśli dane muszą zostać wystawione przez VRS:

1. Otwórz **Tools → Options → Rebroadcast Servers**.
2. Dodaj nowy rebroadcast server i wybierz właściwy Receiver.
3. Ustaw format **BaseStation**.
4. Ustaw wolny lokalny port, na przykład `31003`.
5. Pozostaw **Push feed** wyłączone — feeder sam połączy się z tym lokalnym portem.
6. Uruchom instalator wskazując port:

```powershell
& $InstallerPath -SourceMode sbs -SbsPort 31003
```

Jeżeli VRS nadal wysyła stary Push Feed bezpośrednio do `feed.ads-b.pro:48581`, nie wyłączaj go przed instalacją. Wyłącz go dopiero po potwierdzeniu, że nowy feeder pokazuje **ACTIVE** i przesyła dane. Pozostawienie obu metod włączonych powoduje duplikaty i niepotrzebne zużycie łącza.

## Źródło na innym komputerze albo porcie

Przykład Beast na innym urządzeniu w sieci LAN:

```powershell
& $InstallerPath -SourceHost 192.168.1.25 -SourceMode beast -BeastPort 30005
```

Przykład SBS na niestandardowym porcie:

```powershell
& $InstallerPath -SourceMode sbs -SbsPort 31003
```

## Sprawdzenie działania

```powershell
Get-Service ADSBProFeeder
& "$env:ProgramFiles\ADSBPro\Feeder\adsbpro-feeder.exe" status
Get-Content "$env:ProgramData\ADSBPro\Feeder\data\feeder.log" -Tail 50
```

Strona statusu na tym samym komputerze:

```text
http://localhost:54321
```

Z innego urządzenia w tej samej sieci lub VPN użyj `http://ADRES-IP-KOMPUTERA:54321`. Nie przekierowuj tego portu w routerze do Internetu.

Prawidłowy stan to **ACTIVE**. Panel pokazuje liczbę widzianych samolotów, tempo wiadomości, aktualny upload oraz wersję feedera.

## Kolejna instalacja na tym samym koncie

Pierwsza instalacja v2 może zostać sparowana samym tokenem. Przed każdą kolejną otwórz w panelu konta ADS-B.Pro 10-minutowe okno parowania, a dopiero potem uruchom instalator na nowym komputerze.

## Aktualizacja

Feeder nie aktualizuje się sam. Gdy strona statusu pokaże **UPDATE AVAILABLE**, pobierz aktualny skrypt i uruchom go ponownie. Sparowana tożsamość zostanie zachowana.

```powershell
Invoke-WebRequest -UseBasicParsing -Uri $InstallerUrl -OutFile $InstallerPath
& $InstallerPath
```

## Usunięcie usługi lub awaryjny powrót

```powershell
& "$env:ProgramFiles\ADSBPro\Feeder\rollback-windows.ps1"
```

Polecenie usuwa usługę i regułę zapory, ale zachowuje lokalną tożsamość instalacji, aby można było później wrócić bez ponownego parowania.

## Gdy feeder nie jest ACTIVE

Sprawdź kolejno:

```powershell
Test-NetConnection 127.0.0.1 -Port 30005
Test-NetConnection 127.0.0.1 -Port 30003
Test-NetConnection feed.ads-b.pro -Port 48582
```

Samo otwarcie portu lokalnego nie wystarcza — muszą płynąć nim prawidłowe ramki Beast albo linie `MSG,` formatu SBS. Sprawdź też log, uruchom PowerShell jako Administrator oraz, przy kolejnej instalacji, otwórz okno parowania na koncie.

Kod instalatora i feedera jest publiczny: [github.com/br3jski/radarview](https://github.com/br3jski/radarview).

# [EN] Windows — ADS-B.Pro feeder installation

This guide covers Windows installations using Kinetic SBS, Virtual Radar Server, BaseStation, `readsb`, `dump1090`, or another compatible ADS-B source.

The feeder connects to ADS-B.Pro using encrypted TLS. Your token is used once to pair the installation — it is not sent with every ADS-B frame.

## Requirements

- Windows on an `AMD64` or `ARM64` computer;
- **Windows PowerShell opened as Administrator**;
- an ADS-B.Pro account and a token beginning with `ADS-`;
- a Beast Binary or BaseStation/SBS stream available locally or on your LAN;
- outbound access to `feed.ads-b.pro:48582`.

By default, the installer checks for actual valid frames:

1. Beast Binary on `127.0.0.1:30005`;
2. after 5 seconds without a valid Beast frame — BaseStation/SBS on `127.0.0.1:30003`.

## Recommended method: download, inspect, then run

You do not have to execute code directly from the Internet. Open the Start menu, find **Windows PowerShell**, right-click it, and select **Run as administrator**. Run these commands one at a time:

```powershell
$InstallerUrl = 'https://raw.githubusercontent.com/br3jski/radarview/main/radarview_setup.ps1'
$InstallerPath = Join-Path $env:TEMP 'radarview_setup.ps1'
Invoke-WebRequest -UseBasicParsing -Uri $InstallerUrl -OutFile $InstallerPath
notepad $InstallerPath
```

Notepad opens the exact script that will be executed. After reviewing it, close Notepad and run:

```powershell
& $InstallerPath
```

If PowerShell blocks the local script because of the execution policy, allow it only in the current window:

```powershell
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
& $InstallerPath
```

`-Scope Process` does not permanently change the computer configuration and stops applying when that PowerShell window is closed.

## Quick one-line installation

The command below downloads and runs the same public script, but does not let you inspect it before execution:

```powershell
irm https://raw.githubusercontent.com/br3jski/radarview/main/radarview_setup.ps1 | iex
```

## What the installer does

- detects valid Beast or SBS data;
- downloads the correct feeder binary;
- verifies the release manifest's ECDSA signature and the archive's SHA-256 checksum;
- installs files under `C:\Program Files\ADSBPro\Feeder`;
- stores configuration and identity under `C:\ProgramData\ADSBPro\Feeder`;
- creates the automatic `ADSBProFeeder` service running as the restricted `LocalService` account;
- adds a firewall rule for the status page from private/VPN networks only;
- waits for the connection and first accepted frame.

The installation private key never leaves the computer. The token is entered in a secure prompt, used for initial pairing, and removed from temporary configuration after the feeder becomes **ACTIVE**. The feeder does not update itself automatically.

If an upgrade of an existing v2 installation fails, the installer attempts to restore the previous version automatically.

## Virtual Radar Server and Kinetic SBS

If BaseStation, `readsb`, `dump1090`, or another program already exposes Beast on port `30005` or SBS on `30003`, no VRS configuration is needed.

If VRS must expose the data:

1. Open **Tools → Options → Rebroadcast Servers**.
2. Add a rebroadcast server and select the correct Receiver.
3. Set Format to **BaseStation**.
4. Choose an unused local port, for example `31003`.
5. Leave **Push feed** disabled — the feeder connects to this local port itself.
6. Run the installer with that port:

```powershell
& $InstallerPath -SourceMode sbs -SbsPort 31003
```

If VRS still has a legacy Push Feed to `feed.ads-b.pro:48581`, do not disable it before installing. Disable it only after the new feeder shows **ACTIVE** and is sending data. Leaving both methods enabled causes duplicates and unnecessary bandwidth use.

## Source on another computer or port

Example for Beast on another LAN device:

```powershell
& $InstallerPath -SourceHost 192.168.1.25 -SourceMode beast -BeastPort 30005
```

Example for SBS on a non-standard port:

```powershell
& $InstallerPath -SourceMode sbs -SbsPort 31003
```

## Verify the installation

```powershell
Get-Service ADSBProFeeder
& "$env:ProgramFiles\ADSBPro\Feeder\adsbpro-feeder.exe" status
Get-Content "$env:ProgramData\ADSBPro\Feeder\data\feeder.log" -Tail 50
```

Status page on the same computer:

```text
http://localhost:54321
```

From another device on the same LAN or VPN, use `http://COMPUTER-IP-ADDRESS:54321`. Do not expose this port to the Internet with router port forwarding.

The expected state is **ACTIVE**. The page also shows aircraft count, message rate, current upload rate, and feeder version.

## Adding another installation to the same account

The first v2 installation can be paired with the token alone. Before pairing each additional installation, open a 10-minute pairing window in your ADS-B.Pro account and then run the installer on the new computer.

## Updating

The feeder does not update itself. When the status page shows **UPDATE AVAILABLE**, download the current script and run it again. The paired identity is preserved.

```powershell
Invoke-WebRequest -UseBasicParsing -Uri $InstallerUrl -OutFile $InstallerPath
& $InstallerPath
```

## Remove the service or roll back

```powershell
& "$env:ProgramFiles\ADSBPro\Feeder\rollback-windows.ps1"
```

This removes the service and firewall rule but keeps the local installation identity, so it can be reinstalled later without pairing again.

## If the feeder is not ACTIVE

Check connectivity:

```powershell
Test-NetConnection 127.0.0.1 -Port 30005
Test-NetConnection 127.0.0.1 -Port 30003
Test-NetConnection feed.ads-b.pro -Port 48582
```

An open local port alone is not enough — it must carry valid Beast frames or SBS `MSG,` lines. Also inspect the log, make sure PowerShell was opened as Administrator, and for an additional installation make sure the pairing window is open.

The installer and feeder source code are public: [github.com/br3jski/radarview](https://github.com/br3jski/radarview).

# [PL] Virtual Radar Server — legacy Push Feed

Ta metoda jest przeznaczona dla użytkowników **Virtual Radar Server**, którzy chcą wysyłać dane bez instalowania dodatkowego feedera. VRS otwiera wychodzące połączenie TCP i wysyła strumień BaseStation bezpośrednio do ADS-B.Pro.

> **Zalecenie:** nowy feeder v2 jest bezpieczniejszy, używa TLS i ma lokalną stronę statusu. Metoda VRS legacy pozostaje dostępna dla kompatybilności oraz urządzeń, na których nie można uruchomić feedera v2.

## Najważniejsze informacje

- serwer: `feed.ads-b.pro`;
- port: `48581`;
- format: **BaseStation**;
- typ połączenia: **Push feed**;
- token w polu Passphrase jest opcjonalny;
- połączenie legacy nie używa TLS.

Jeżeli podasz token ADS-B.Pro jako Passphrase, VRS prześle go jeden raz podczas zestawiania połączenia. Token nie jest dodawany do każdej wiadomości ADS-B. Ponieważ port `48581` nie jest szyfrowany, token jest przesyłany przez Internet otwartym tekstem.

Pozostawienie Passphrase pustego nadal pozwala wysyłać anonimowe dane, ale feed nie zostanie powiązany z kontem użytkownika.

## Konfiguracja krok po kroku

1. Uruchom Virtual Radar Server.
2. Otwórz **Tools → Options**.
3. W drzewie po lewej stronie rozwiń **Data Sources**.
4. Wybierz **Rebroadcast Servers**.
5. Kliknij przycisk dodawania nowego serwera.
6. Wypełnij pola według poniższej tabeli.

| Pole w VRS | Wartość |
|---|---|
| Enabled | włączone |
| Name | `ADS-B.Pro legacy` — jest to tylko lokalna nazwa |
| Receiver | odbiornik albo Merged Feed, który chcesz wysyłać |
| Format | `BaseStation` |
| Push feed | włączone |
| Address | `feed.ads-b.pro` |
| Port | `48581` |
| Passphrase | pełny token `ADS-...` albo puste pole |
| Max. message age | `3` sekundy |
| Send keep-alive packets | można pozostawić wyłączone |
| Idle timeout | `30` sekund |

> **Ważne:** pole **Name** jest wyłącznie opisem konfiguracji. Wpisanie `feed.ads-b.pro:48581` jako nazwy nie ustawia adresu serwera. Faktyczne pole **Address** musi zawierać `feed.ads-b.pro`, a **Port** musi zawierać `48581`. Nie używaj tutaj `127.0.0.1` ani portu `30003`.

7. Jeżeli chcesz powiązać feed z kontem, skopiuj pełny token z panelu ADS-B.Pro do pola **Passphrase**.
8. Wklej sam token, na przykład `ADS-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`. Nie dodawaj `TOKEN:`, cudzysłowów ani spacji.
9. Zapisz ustawienia przyciskiem **OK**.

VRS automatycznie spróbuje połączyć się z ADS-B.Pro. Nie trzeba uruchamiać dodatkowego skryptu.

## Sprawdzenie działania

W głównym oknie VRS znajdź sekcję **Rebroadcast server status**.

Prawidłowa konfiguracja powinna spełniać wszystkie warunki:

- widoczny jest wiersz `ADS-B.Pro legacy`;
- licznik **Bytes Sent** regularnie rośnie;
- **Bytes Discarded** pozostaje równy `0` lub nie rośnie;
- wybrany odbiornik ma status Connected i rosnący licznik Total Messages.

Jeżeli użyto prawidłowego tokenu, konto powinno otrzymać status feedera po pierwszej poprawnej wiadomości. Aktualizacja konta może potrwać do około 60 sekund.

Metoda legacy nie ma lokalnej strony `:54321`. Strona statusu jest dostępna tylko w feederze v2.

## Nie wysyłaj tego samego odbiornika dwa razy

Nie pozostawiaj jednocześnie włączonych:

- VRS Push Feed do `feed.ads-b.pro:48581`;
- feedera v2 łączącego się z `feed.ads-b.pro:48582`.

Wysłanie tego samego źródła obiema metodami powoduje duplikaty i niepotrzebne wykorzystanie łącza.

Jeżeli przechodzisz na legacy, po potwierdzeniu rosnącego **Bytes Sent** zatrzymaj feeder v2.

Windows PowerShell uruchomiony jako Administrator:

```powershell
Stop-Service ADSBProFeeder
Set-Service ADSBProFeeder -StartupType Disabled
```

Linux:

```bash
sudo systemctl disable --now adsbpro-feeder
```

## Typowe problemy

### VRS pokazuje konfigurację, ale ADS-B.Pro nie otrzymuje danych

Sprawdź przede wszystkim faktyczne pola **Address** i **Port**. Sama nazwa konfiguracji nie ustawia miejsca docelowego.

Poprawne wartości to:

```text
Address: feed.ads-b.pro
Port: 48581
```

### Bytes Sent nie rośnie

Wybrany Receiver nie dostarcza danych albo wybrano niewłaściwy odbiornik. Sprawdź jego Connection Status i Total Messages w głównym oknie VRS.

### Dane są widoczne, ale konto nie ma statusu feedera

- upewnij się, że Passphrase zawiera pełny token `ADS-...`;
- usuń spacje przed i po tokenie;
- nie dodawaj prefiksu `TOKEN:`;
- poczekaj 60 sekund od wysłania pierwszej wiadomości;
- puste Passphrase oznacza feed anonimowy.

### Brak połączenia z serwerem

Sprawdź DNS, połączenie z Internetem oraz zaporę. VRS musi mieć możliwość otwarcia wychodzącego połączenia TCP do `feed.ads-b.pro:48581`.

### Rosną Bytes Discarded

Ustaw **Max. message age** na `3` sekundy i sprawdź jakość połączenia. Odrzucane przez VRS stare wiadomości nie są wysyłane do ADS-B.Pro.

Więcej informacji o Rebroadcast Servers znajduje się w [oficjalnej dokumentacji Virtual Radar Server](https://www.virtualradarserver.co.uk/Documentation/WebServer/RebroadcastServersParentOptions.aspx).

# [EN] Virtual Radar Server — legacy Push Feed

This method is intended for **Virtual Radar Server** users who want to send data without installing an additional feeder application. VRS opens an outbound TCP connection and sends a BaseStation stream directly to ADS-B.Pro.

> **Recommendation:** feeder v2 is more secure, uses TLS, and provides a local status page. The VRS legacy method remains available for compatibility and for computers where feeder v2 cannot be used.

## Important information

- server: `feed.ads-b.pro`;
- port: `48581`;
- format: **BaseStation**;
- connection type: **Push feed**;
- the ADS-B.Pro token in Passphrase is optional;
- the legacy connection does not use TLS.

When an ADS-B.Pro token is entered as the Passphrase, VRS sends it once while establishing the TCP connection. It is not added to every ADS-B message. Because port `48581` is not encrypted, the token is transmitted over the Internet in clear text.

Leaving Passphrase empty still allows an anonymous data feed, but the feed will not be associated with a user account.

## Step-by-step configuration

1. Start Virtual Radar Server.
2. Open **Tools → Options**.
3. Expand **Data Sources** in the tree on the left.
4. Select **Rebroadcast Servers**.
5. Click the button to add a new server.
6. Configure the fields as shown below.

| VRS field | Value |
|---|---|
| Enabled | enabled |
| Name | `ADS-B.Pro legacy` — this is only a local label |
| Receiver | the Receiver or Merged Feed that you want to send |
| Format | `BaseStation` |
| Push feed | enabled |
| Address | `feed.ads-b.pro` |
| Port | `48581` |
| Passphrase | the complete `ADS-...` token or an empty field |
| Max. message age | `3` seconds |
| Send keep-alive packets | may remain disabled |
| Idle timeout | `30` seconds |

> **Important:** the **Name** field is only a description of the configuration. Naming it `feed.ads-b.pro:48581` does not configure the destination. The actual **Address** field must contain `feed.ads-b.pro`, and **Port** must contain `48581`. Do not use `127.0.0.1` or port `30003` here.

7. To associate the feed with your account, copy the complete token from your ADS-B.Pro account into **Passphrase**.
8. Paste the token itself, for example `ADS-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`. Do not add `TOKEN:`, quotation marks, or spaces.
9. Save the configuration with **OK**.

VRS will automatically try to connect to ADS-B.Pro. No additional script is required.

## Verify the connection

Find **Rebroadcast server status** in the main VRS window.

A working configuration should have all of the following:

- an `ADS-B.Pro legacy` row is visible;
- **Bytes Sent** keeps increasing;
- **Bytes Discarded** remains at `0` or does not increase;
- the selected receiver is Connected and its Total Messages counter increases.

When a correct token was supplied, the account should receive feeder status after the first valid message. The account update can take up to approximately 60 seconds.

The legacy method does not provide the local `:54321` status page. That page is available only with feeder v2.

## Do not send the same receiver twice

Do not leave both of these enabled for the same data source:

- VRS Push Feed to `feed.ads-b.pro:48581`;
- feeder v2 connecting to `feed.ads-b.pro:48582`.

Sending the same receiver using both methods creates duplicates and wastes bandwidth.

When switching to legacy, stop feeder v2 after confirming that VRS **Bytes Sent** is increasing.

Windows PowerShell opened as Administrator:

```powershell
Stop-Service ADSBProFeeder
Set-Service ADSBProFeeder -StartupType Disabled
```

Linux:

```bash
sudo systemctl disable --now adsbpro-feeder
```

## Troubleshooting

### VRS shows a configuration but ADS-B.Pro receives no data

Check the actual **Address** and **Port** fields first. The configuration name does not set the destination.

The correct values are:

```text
Address: feed.ads-b.pro
Port: 48581
```

### Bytes Sent does not increase

The selected Receiver is not producing data or the wrong receiver was selected. Check its Connection Status and Total Messages in the main VRS window.

### Data is visible but the account has no feeder status

- make sure Passphrase contains the complete `ADS-...` token;
- remove spaces before or after the token;
- do not add a `TOKEN:` prefix;
- allow 60 seconds after the first message is sent;
- an empty Passphrase creates an anonymous feed.

### VRS cannot connect to the server

Check DNS, Internet connectivity, and the firewall. VRS must be allowed to open an outbound TCP connection to `feed.ads-b.pro:48581`.

### Bytes Discarded keeps increasing

Set **Max. message age** to `3` seconds and check the network connection. Old messages discarded by VRS are not sent to ADS-B.Pro.

More information about Rebroadcast Servers is available in the [official Virtual Radar Server documentation](https://www.virtualradarserver.co.uk/Documentation/WebServer/RebroadcastServersParentOptions.aspx).