Skip to content

Aplikacja desktopowa

kauczu edited this page Oct 16, 2026 · 1 revision

Aplikacja na Windows (Electron). Instalacja: zob. README.

Tryby pracy

Tryb przełącza się w lobby, w zwijanym bloku „Serwer i sieć”. Wybór jest zapamiętywany, a aplikacja uruchamia się ponownie.

Serwer o.tutaj.eu.org (domyślny) – okno aplikacji to klient serwera Tutaj. Interfejs pochodzi z serwera, więc po jego aktualizacji aplikacja od razu ma nową wersję. Aplikacja dodaje:

  • natywny wybór ekranu lub okna do udostępniania,
  • dostęp do kamery bez dodatkowych pytań,
  • otwieranie linków w przeglądarce,
  • Nakładka na grę i skróty działające w grze.

Gdy serwer jest nieosiągalny, pokazuje ekran „Brak połączenia” z ponowieniem (także automatycznie po powrocie internetu) i przejściem do trybu lokalnego.

Tryb lokalny (sieć LAN, bez internetu) – aplikacja sama jest serwerem (sygnalizacja i SFU) i pokazuje w lobby adresy, pod którymi inni w tej samej sieci mogą dołączyć:

  • z przeglądarki: https://<IP-hosta>:3443 – przy pierwszym wejściu trzeba zaakceptować certyfikat (generowany i zapamiętywany przez aplikację). HTTPS jest konieczny, bo przeglądarki udostępniają kamerę tylko na bezpiecznych stronach.
  • z drugiej aplikacji desktopowej (też w trybie lokalnym): w „Ustawieniach zaawansowanych” wpisz <IP-hosta>:3000 jako serwer.

Windows zapyta o zgodę zapory na połączenia przychodzące – trzeba ją dać dla sieci prywatnych.

Inny serwer – aplikacja nie jest przywiązana do o.tutaj.eu.org: w lobby jest „Zmień serwer…”, a na ekranie „Brak połączenia” – „Zmień serwer”. Kto buduje własny instalator dla swojej domeny, ustawia tutaj.defaultServer w packages/desktop/package.json.

Wersje: interfejs (w trybie serwera) pochodzi z serwera, a sama aplikacja to osobny program – stopka lobby pokazuje obie wersje („serwer v… · aplikacja v…”).

Aktualizacje

Kilka sekund po starcie aplikacja sprawdza najnowsze wydanie na GitHubie. Gdy jest nowsza wersja, pyta: Aktualizuj / Później / Pomiń tę wersję; Co nowego? otwiera notatki wydania w przeglądarce.

Po zgodzie pobiera aktualizację z okienkiem postępu nad oknem aplikacji (procent, MB, prędkość; „Ukryj” – pobieranie trwa w tle z postępem na ikonie na pasku zadań; „Anuluj”). Potem sprawdza sumę kontrolną, instaluje po cichu i uruchamia się ponownie. Jeśli trwa rozmowa, najpierw pyta, czy ją przerwać (albo instaluje przy zamknięciu aplikacji). Ręcznie: menu (Alt) → „Sprawdź aktualizacje…”.

Szczegóły techniczne: electron-updater, pliki latest.yml i .blockmap publikowane obok instalatora. Własna kompilacja z innego repozytorium: zmień build.publish (owner/repo) w packages/desktop/package.json. Test bez publikowania: TUTAJ_UPDATE_FEED=http://…/ (katalog z latest.yml i instalatorem) – aplikacja pokaże ofertę i pobierze plik, ale go nie zainstaluje.

Co aplikacja pamięta

Rozmiar, położenie i maksymalizację okna (jeśli monitor zniknął, okno wraca na główny), ustawienia nakładki i skrótów, język, a lobby – ostatnie imię, pokój i wybór mikrofonu/kamery. Ustawienia są w settings.json w katalogu danych aplikacji.

Podpis instalatora

Instalator nie jest podpisany, więc Windows SmartScreen przy pierwszym uruchomieniu pokazuje ostrzeżenie („Więcej informacji” → „Uruchom mimo to”). Autoaktualizacje go nie wywołują.

Certyfikat nie usunąłby ostrzeżenia od razu: SmartScreen ufa podpisanym plikom dopiero po zebraniu „reputacji” (liczby instalacji), także w przypadku certyfikatów EV. Dlatego projekt na razie go nie używa. Najrozsądniejszą opcją dla osoby prywatnej w Polsce jest Certum Open Source Code Signing (podpis w chmurze SimplySign; jako wydawca widnieje imię i nazwisko). Po włączeniu podpisu trzeba podpisywać każde kolejne wydanie, bo aktualizator sprawdza wtedy wydawcę.

Zmienne środowiskowe (dla zaawansowanych i testów)

Zmienna Znaczenie
TUTAJ_MODE remote (serwer) lub lan (tryb lokalny)
TUTAJ_SERVER_URL adres serwera, domyślnie https://o.tutaj.eu.org
TUTAJ_USER_DATA osobny katalog danych (profil)
TUTAJ_PORT / TUTAJ_HTTPS_PORT porty trybu lokalnego, domyślnie 3000 / 3443
TUTAJ_LAN=0 tryb lokalny tylko dla tej maszyny
TUTAJ_SFU=0 / TUTAJ_SFU_PORT tryb lokalny bez SFU / port SFU (40000)
TUTAJ_UPDATE_FEED testowe źródło aktualizacji (zob. wyżej)

Clone this wiki locally