# [PL] Zostań feederem ADS-B.Pro

# Konfiguracja ADS-B.Pro feeder

## 1. Co będzie potrzebne

- Raspberry Pi / Debian / Ubuntu z dostępem do internetu.
- Odbiornik RTL-SDR lub inny odbiornik ADS-B.
- Działający `dump1090-fa`, `dump1090-mutability`, `dump1090` albo `readsb`.
- Konto w ADS-B.Pro.
- Twój prywatny feeder token z konta użytkownika.

Token feeder jest unikalny. W panelu konta jest pokazywany jako **Your Feeder Token** i ma format:

```text
ADS-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```

czyli `ADS-` plus 32 znaki hex. Skrypt wymaga małych liter `a-f`.

## 2. Skąd wziąć token

1. Zaloguj się w ADS-B.Pro.
2. Wejdź w **My Account**.
3. Skopiuj wartość z pola **Your Feeder Token**.
4. Nie publikuj tego tokena w logach, na GitHubie ani w screenach.

Frontend używa tego tokena tylko jako wartości przypisanej do konta. Sam feeder wysyła go do backendu przez osobny skrypt `/opt/radarview.py`.

## 3. Najprostsza instalacja feedera

Rekomenduję wariant `radarview_setup-nogit.sh`, bo nie wymaga klonowania repozytorium i sam pobiera aktualny `radarview.py`.

```bash
sudo apt update
sudo apt install -y curl wget ca-certificates

curl -fsSL https://raw.githubusercontent.com/br3jski/radarview/refs/heads/main/radarview_setup-nogit.sh -o radarview_setup-nogit.sh
chmod +x radarview_setup-nogit.sh

sudo ./radarview_setup-nogit.sh
```

Po uruchomieniu skrypt poprosi o token:

```text
Please enter your RadarView token (format: ADS-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX):
```

Wklej token z **My Account**.

## 4. Co robi skrypt

Skrypt:

1. Sprawdza, czy jest uruchomiony jako `root`.
2. Waliduje token użytkownika.
3. Sprawdza, czy istnieje lokalne źródło ADS-B:
   - `dump1090-fa`
   - `dump1090-mutability`
   - `dump1090`
   - `readsb`
4. Jeśli nie ma dump1090/readsb, pyta, czy zainstalować `dump1090-fa`.
5. Pobiera `radarview.py` do:

```text
/opt/radarview.py
```

6. Wstawia token do zmiennej:

```python
USER_TOKEN = 'ADS-...'
```

7. Tworzy usługę systemd:

```text
/etc/systemd/system/radarview.service
```

8. Uruchamia i włącza usługę na start systemu:

```bash
systemctl start radarview
systemctl enable radarview
```

## 5. Jak działa wysyłanie danych

`radarview.py` łączy się lokalnie z odbiornikiem ADS-B na porcie SBS:

```text
127.0.0.1:30003
```

Następnie wysyła dane do ADS-B.Pro:

```text
feed.ads-b.pro:48581
```

Przed każdą linią danych skrypt wysyła token:

```text
TOKEN:ADS-...
```

Dlatego kluczowe są dwie rzeczy:

- lokalny `dump1090` / `readsb` musi wystawiać dane SBS na `127.0.0.1:30003`,
- urządzenie musi mieć możliwość połączenia wychodzącego TCP do `feed.ads-b.pro:48581`.

## 6. Sprawdzenie po instalacji

Status usługi feedera:

```bash
sudo systemctl status radarview
```

Logi na żywo:

```bash
sudo journalctl -u radarview -f
```

Poprawne logi powinny zawierać coś w tym stylu:

```text
Connected to source 127.0.0.1:30003
Connected to destination feed.ads-b.pro:48581
Data sent with token
```

Sprawdzenie, czy lokalny ADS-B działa na porcie `30003`:

```bash
nc -vz 127.0.0.1 30003
```

Sprawdzenie połączenia do serwera ADS-B.Pro:

```bash
nc -vz feed.ads-b.pro 48581
```

## 7. Jeśli używasz readsb zamiast dump1090-fa

Upewnij się, że `readsb` ma włączony port SBS `30003`. Feeder z podanego skryptu nie czyta JSON-a ani Beast, tylko tekstowy strumień SBS/BaseStation z portu `30003`.

Przykładowo konfiguracja `readsb` powinna zawierać odpowiednik:

```text
--net
--net-sbs-port 30003
```

Po zmianach zrestartuj `readsb`.

## 8. Zmiana tokena po instalacji

Jeśli token został odnowiony albo wklejony błędnie, najprościej uruchomić skrypt instalacyjny ponownie.

Można też ręcznie poprawić `/opt/radarview.py`, znaleźć linię:

```python
USER_TOKEN = 'ADS-...'
```

i po zmianie zrestartować usługę:

```bash
sudo systemctl restart radarview
```

## 9. Typowe problemy

**Invalid token format**  
Token nie pasuje do formatu `ADS-` plus 32 znaki hex. Skopiuj token dokładnie z **My Account**.

**Error: User token not set**  
W `/opt/radarview.py` token jest pusty. Uruchom setup ponownie albo popraw `USER_TOKEN`.

**Socket error przy `127.0.0.1:30003`**  
`dump1090` / `readsb` nie działa albo nie wystawia SBS na porcie `30003`.

**Socket error przy `feed.ads-b.pro:48581`**  
Problem z DNS, internetem, firewallem albo blokadą połączeń wychodzących TCP na port `48581`.

**Konto nadal nie ma statusu Feeder**  
Feeder musi faktycznie wysyłać stabilne dane. Po stronie frontendu status `Feeder` pojawia się z konta użytkownika/backendu; czasem trzeba się wylogować i zalogować ponownie albo odświeżyć token sesji po zatwierdzeniu feedera.