# [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).