Repository navigation
Aplikacja desktopowa
Aplikacja na Windows (Electron). Instalacja: zob. README.
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>:3000jako 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…”).
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.
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.
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ę.
| 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) |
Użytkownicy
Serwer
Programiści