Idź na socjal

Idź na socjal – tak właśnie można przetłumaczyć GoToSocial, czyli nazwę serwera ActivityPub napisanego w Golangu. Czyli serwera, by zaistnieć w Fediverse. Bo Mastodon może i jest popularny, ale nie jest jedyny.

GoToSocial był moim wyborem do zabawy z Fediverse już dawno temu, jednak wymagania nieco odstraszały. Głównie te związane z VPSem i jego parametrami. Co prawda niby powinno działać na mniej niż 1 GB RAM i kilkanaście GB dysku, ale jakoś nie miałem gdzie tego wcisnąć na istniejących maszynkach. Zwłaszcza, że chodzi wyłącznie o zabawę.

Jak wspominałem we wpisie o Sesji Linuksowej, wygrałem talon na VPS mikr.us. I niedawno go zrealizowałem na potrzeby innego projektu. Zasobów jest tam dużo za dużo, więc idealny moment, by pobawić się GoToSocial. Tym bardziej, że VPS na mikr.us nie pozwala na uruchomienie kontenerów LXC. W każdym razie mi się nie udało, a konsultacja na Discordzie potwierdziła, że się nie da. Za to działa docker.

Nie jestem fanem dockera. Zdarza mi się go używać, ale raczej nie jest pierwszym wyborem. Jednak i Uptime Kuma, i GoToSocial dają obrazy i sensowną – na pierwszy rzut oka – dokumentację. Postanowiłem spróbować.

Z dokumentacji GoToSocial dowiedziałem się, że potrzebuję otwartego portu 443 oraz osobnej domeny dla instancji. Ogólnie wymagania są nieco dziwne. Po pierwsze, nie można wykorzystać dowolnego portu. Na mikrusie to problem, bo o ile możemy sobie przekierować kilka portów, to są to inne porty niż 443. Po drugie, domena jest trwale przywiązana do instancji (a w zasadzie kluczy), co oznacza, że nie można zmienić oprogramowania serwera na tej samej domenie.

Wziąłem zatem darmową (sub)domenę, którą wykorzystam tylko do tego jednego celu i tylko do testu. Mikrus daje normalny dostęp po IPv6, bez konieczności przekierowywania portów, a większe serwery działają w dual stack, wiec stwierdziłem, że instancja będzie dostępna wyłącznie po IPv6.

Ostateczny setup na który się zdecydowałem to: GoToSocial w dockerze (tylko IPv4), nginx na froncie, robiący za reverse proxy, nasłuchujący na porcie 443 i adresie IPv6. TLS od Let’s Encrypt z wykorzystaniem certbota, terminowany na nginx. Dla domeny ustawiłem wyłącznie rekord AAAA. Czemu tak? Bo tak jest najwygodniej i standardowo. Mógłbym pominąć nginx, ale straciłbym wszystkie dodatkowe możliwości typu bezproblemowy rate limit. I musiałbym włączyć IPv6 w dockerze.

Uruchomienie nie było bezproblemowe. Już sama konfiguracja i start dockera sprawiły trudności. Przyczyną były oczywiście uprawnienia do katalogów. Niby jest to pokazane w logach, ale zachowanie jest nieco dziwne, zwł. w kwestii tworzenia nieistniejących katalogów. Jednak w końcu docker ruszył.

Dla odmiany z nginx poszło łatwo. Przykładowy konfig zadziałał niemal od kopa, drobnego dostosowania wymagała jedynie obsługa http2 w starszej wersji nginx. Uroki Ubuntu 24.04 LTS. Gdy już wszystkie znaki na niebie i ziemi wskazywały, że powinno działać, przyszła pora na dodanie użytkownika.

Tu nastąpiło moje lekkie zdziwienie, bo GoToSocial nie oferuje żadnego panelu, jedynie API. Użytkowników zakłada się z wiersza poleceń. Nieco dziwny wybór i raczej nie przysporzy popularności rozwiązaniu, w każdym razie nie poza grupą geeków. Kolejną konsekwencją jest konieczność połączenia się jakimś klientem, bo nie ma interfejsu WWW.

Czyli kolejny problem, bo okazało się, że nie mam dostępu do IPv6 z domu. Ani korzystając z internetu w domu od ISP, ani na telefonie, po wyłączeniu WiFi. To ostatnie mnie zdziwiło, byłem przekonany, że GSM to głównie IPv6. Na szczęście jest Pinafore, czyli klient dostępny w przeglądarce. Do tego tunel SSH do VPSa z IPv6[1], rozwiązywanie nazw DNS po socks proxy i… mogłem zobaczyć swoje konto i napisać coś.

Niektórym to może wystarczyć, jednak idea jest nieco inna. Powinna być możliwa interakcja z innymi instancjami. Wyszukałem jakieś konto w Pinafore, wybrałem follow, powtórzyłem dla kilku innych i… żadnego efektu. Informacja o oczekiwaniu na zatwierdzenie. Tylko te konta nie wymagały zatwierdzania. Sprawdziłem na swoim podstawowym koncie, na którym dla odmiany wymagam zatwierdzenia obserwacji. Ten sam efekt – pokazywało, że czeka na zgodę, ale nie dostałem zapytania o zgodę. No i nie mogłem z podstawowego konta wyszukać konta na testowej instancji. Czyli coś nie działa.

Diagnostyka tego zajęła sporo czasu, usłyszałem, że z IPv6-only bywają problemy, dostałem niepocieszające opisy problemów z GoToSocial i forwardowaniem portów przy NAT i w zasadzie już miałem stwierdzić, że gdzieś zrobiłem błąd, gdy skutecznie zaobserwowałem konto na instancji, która miała tylko adres IPv4 i korzystała z GoToSocial. Natomiast konta na serwerach Mastodon pozostawały niedostępne. Także na tych, które miały tylko IPv4.

Ostatecznie znalazłem instancję Mastodona, posiadającą zarówno adres IPv4 jak i IPv6, gdzie mogłem normalnie obserwować konta[2]. Dostrzegłem też w gąszczu logów błędy 503 przy próbach interakcji z innymi instancjami (subskrybcji). Czyli jakiś problem z kompatybilnością softów GoToSocial i Mastodon, nie u mnie z konfiguracją.

Jak już było wiadomo czego szukać, to ustaliłem, że z Mastodon v4.8.0-alpha.1 działa (dual stack), za to nie działa z v4.8.0-nightly.2026-08-27 (też dual stack) ani v4.7.0 (wyłącznie IPv4). Z kronikarskiego obowiązku, używana przeze mnie wersja to 0.22.1+git-fdff42b.

Co dalej? Pewnie nic. Może jeszcze coś mi przyjdzie do głowy, zasobów na VPS nie potrzebuję, więc zabawek nie zbieram. Przy okazji obserwacja: wymagania podawane przez dokumentację GoToSocial wyglądają na zawyżone, ale może to być kwestia obliczania pod ilość userów i interakcji zewnętrznych. Do samego postawienia opisanego setupu wystarczy spokojnie 0,5 GB RAM, na Ubuntu.

Natomiast w kwestii rozważań o selfhostingu, własnej instancji itp. – wygląda, że rozwiązanie nie robi i ciężko stwierdzić dokładnie, dlaczego. Kolejna lekcja to konieczność posiadania adresu IPv4, co skreśla mikrusa. Może być ciężko podłączyć się do instancji bez takiego adresu. Teoretycznie rozwiązaniem mógłby być Cloudflare, ale na takie eksperymenty zupełnie mi odeszła ochota, skoro nie działa zasadnicza część.

UPDATE: Trochę mi to nie dawało spokoju, więc sprawdziłem większą ilość serwerów. Nie wszystko działa, ale coś tam działa. Problem jest chyba tylko z serwerami Mastodon, ale niestety są to duże instancje, co przekreśla sens rozwiązania. Posty z nich widzę, profile widzę, ale nie mogę obserwować kont.

Nieco rozrywki/stan oprogramowania. Mój GoToSocial obecnie przedstawia się home to 0 users who have written 2 posts; peered with 29 other instances. Off by one?
Przy 11 obserwowanych.

[1] Zupełnym przypadkiem tego samego, na którym działa serwer GoToSocial, ale to bez znaczenia.
[2] Popularne Dziesiony. Szacun dla administratorów.

Czy teraz futbol?

Czytelników zaniepokojonych nagłą zmianą zainteresowań muszę uspokoić. Nie, nie zacząłem interesować się piłką nożną. Nie chodzi o moje zainteresowania, a o tłumaczenie z języka hiszpańskiego. Hay ahora futbol[1] można przetłumaczyć właśnie w taki sposób. No ale o co chodzi?

Dziś dowiedziałem się o istnieniu strony, która pokazuje odpowiedź na tytułowe pytanie. Można by pomyśleć, że nieźli fanatycy piłki nożnej w tej Hiszpanii. Być może, ale ponownie, nie o to chodzi. Chodzi o wyrok sądu, który nakazuje największym hiszpańskim ISP blokadę… określonych IP CDNów w trakcie trwania transmisji niektórych rozgrywek. Na stronie hayahora.futbol jest opisane[2], czemu blokada na poziomie IP, a nie DNS lub podobnej. Czyli cenzura, sankcjonowana przez prawo, pod hasłem ochrony własności intelektualnej i walki z piractwem.

W Polsce też mamy coś podobnego, za sprawą ustawy antyhazardowej. Co prawda obejście naszego wariantu jest trywialne, ale istnieje od wielu lat. I jest umocowany prawnie. Całkiem niedawno były próby wykorzystania listy tworzonej przez CERT Polska w podobnym celu. Tym razem nieudane.

I tak sobie myślę, że wydaje nam się, że w Europie, w XXI w. cieszymy się wolnością, nie to co [tu wstaw dowolną dyktaturę czy państwo wyznaniowe], a tymczasem wcale wiele się nie różnimy. Motywacja może trochę inna, ale metody jakby podobne.

[1] Jeszcze obustronne znaki zapytania by się przydały, jednak nie przesadzajmy.
[2] Jest, nieco mało widoczny, przełącznik języka. Do wyboru hiszpański i angielski.

Podwójne standardy

Przy okazji wchodzącej w wielu zakątkach Internetu weryfikacji wieku i protestów z nią związanych, zauważyłem występowanie podwójnych standardów. Chodzi o to, że w świecie fizycznym raczej nikt nie ma problemu z tym, że wiek jest weryfikowany i istnieją ograniczenia wiekowe, a pewne rzeczy dostępne są tylko dla osób pełnoletnich.

Chodzi o możliwość zakupu alkoholu, wyrobów tytoniowych, ostatnio do towarów dostępnych tylko dla pełnoletnich zostały dodane energetyki. Podobnie jest z głosowaniem – czynne prawo wyborcze przysługuje od ukończenia 18 lat. Bierne – jeszcze później.

Tymczasem podnoszony jest argument, że tak nie można, bo prywatność, bo anonimowość, bo wolność. Zastanawiam się jednak, czy anonimowość – czy też: przyzwolenie na nią – mieliśmy do tej pory. Czy możliwość względnej anonimowości pojawiła się dopiero wraz z pojawieniem się Internetu. Przecież idąc do sklepu czy lokalu wyborczego nie jesteśmy anonimowi. Widać, kto kupuje (nawet niekoniecznie towary dostępne od 18 roku życia). W lokalu wyborczym sprawdzana jest tożsamość (i pośrednio wiek) osoby głosującej.

Co więcej, zakaz utrudniania (nawet nie: uniemożliwiania) identyfikacji osoby występuje – już teraz – także w miejscach, gdzie w przypadku uczestnictwa nie ma wymogu ukończenia określonego wieku. Na przykład ustawa o bezpieczeństwie imprez masowych mówi:

Art. 57a. Kto w miejscu i w czasie trwania masowej imprezy sportowej używa
elementu odzieży lub przedmiotu w celu uniemożliwienia lub istotnego utrudnienia rozpoznania osoby, podlega karze ograniczenia wolności albo grzywny nie niższej niż 2000 zł.

Czyli nie można anonimowo kibicować drużynie sportowej. I jakoś nikt nie robi o to afery, prawda?

Podobnie jest z rejestracją kart SIM. Obowiązek rejestracji mamy od około dekady. Jest to ograniczenie anonimowego dostępu do komunikacji telefonicznej, internetu oraz SMSów. Oraz niejawny wymóg weryfikacji wieku. Osoba poniżej 18 roku życia może zarejestrować kartę SIM, o ile ukończyła 13 lat i posiada dowód osobisty. Ten uprawniający do rejestracji karty SIM można mieć po ukończeniu 13 roku życia ale… za zgodą rodziców.

Realny, odczuwalny wpływ w przypadku kart SIM? Dla przytłaczającej większości obywateli żaden. Anegdotycznie, słyszałem, że po wprowadzeniu obowiązku rejestracji kart SIM, osoba zarządzająca w branży budowlanej przestała dostawać telefony z pogróżkami w weekendy od niekoniecznie trzeźwych expracowników.

Dyskusja nt. weryfikacji wieku online mogłaby być znacznie bardziej konstruktywna, gdybyśmy przestali stosować podwójne standardy…