Mastodon backup

Kolejna w stosunkowo krótkim czasie, ale dość długa awaria jednego z liczniejszych serwerów Mastodon w Polsce, pol.social, dała okazję do bliższego przyjrzenia się możliwościom backupu. Okazało się, że ludzie się przenoszą na inne serwery i… nie jest to takie proste, szczególnie, gdy dotychczasowy serwer nie działa.

W normalnych warunkach migracja na Mastodonie polega na wskazaniu nowego miejsca, gdzie ma znaleźć się konto. Przenoszeni są m.in. obserwowani, obserwujący, ale treści (tooty, czyli dopowiednik postów) zostają na starym serwerze. Nie ma możliwości przeniesienia treści na nowy serwer, przynajmniej oficjalnej. Zresztą byłoby to trudne, bo wszystkie istniejące odnośniki do niej, wątki, i tak przestaną działać. Kwestia niezbyt szczęśliwego projektu protokołu.

Istnieje nieoficjalne rozwiązanie slurp, które zostało zaprojektowane do działania z GoToSocial. Jeden serwerów ActivityPub, raczej pomyślany o małych, samodzielnie utrzymywanych instancjach. Polega na umieszczeniu starych tootów na serwerze z oryginalnymi datami. Wątki i odnośniki nadal przestają działać, jeśli serwer na którym były umieszczane zostanie wyłączony. Jednak można mieć przynajmniej swoje wpisy w formie „ciągłej”, razem z nowymi, które będą już pełnoprawne. Nie jest to rozwiązanie idealne, ale lepsze, niż nic.

Mastodon pozwala na wykonanie pełnej kopii, eksportu danych, raz na siedem dni:

You can request an archive of your posts and uploaded media. The exported data will be in the ActivityPub format, readable by any compliant software. You can request an archive every 7 days.

Niezależnie od tego, można – czy może bardziej: trzeba – pobierać formacie CSV dodatkowe ustawienia swojego profilu, np. obserwowanych, banowanych, bookmarki czy blokowane domeny. Trzeba, bo tych danych nie ma w tworzonym archiwum. A szkoda.

Zrobiłem prosty skrypt, który – nie wymagając logowania w przypadku publicznej widoczności – wyświetla obserwowanych. Wg mnie to najważniejsza, najtrudniej odtwarzalna informacja, poza samą treścią. Można go użyć np. w trakcie robienia backupu danych, jako jednego z elementów wykonywanych przez skrypty do backupu.

Włączyłem tworzenie archiwum i… po 20 minutach nadal wyświetlał informację, że tworzy archiwum. Przynajmniej tak pokazywała strona, bo po odświeżeniu strony jednak pojawił się gotowy do pobrania plik. Zapewne był już wcześniej, tylko błąd w Mastodon powoduje, że nie ma informacji o zakończeniu tworzenia.

Sam plik zawiera kilka plików JSON oraz drzewo katalogów z grafikami. W samych grafikach trudno się zorientować – tytuły plików i struktura katalogów nie są w formacie czytelnym dla człowieka.

Fun fact: archiwum pobrałem głównie po to, żeby łatwo móc przeszukiwać treść swoich postów. Wyszukiwarka na Mastodonie jest i niby działa, ale jednak wygodniej mi korzystać z grep w wierszu poleceń.

BlogDay 2025

Ludzie przypomnieli, że dziś BlogDay. Wiele lat nie zamieszczałem wpisów z tej okazji i… w sumie dziś też nie będzie takiego wpisu, przynajmniej nie w tradycyjnej, dotychczasowej formie. Tzn. niczego nie będę polecał do czytnika RSS. Zamiast tego może jak to blogowanie wygląda.

Koniec wakacji, nieco nostalgiczny nastrój, kiedyś to było. Czy faktycznie? Postanowiłem zrobić statystykę ilości wpisów zamieszczanych na tym blogu.

Ilość postów na blogu miesięcznie. Zaczyna się od 8 pod koniec 2009, kończy na 2 w sierpniu 2025.
Ilość postów miesięcznie zamieszczanych na blogu. Źródło: opracowanie własne.

Nie ma niespodzianki, jest wyraźny spadek, co widać po linii trendu. Nie jest to do końca uczciwe, jeśli chodzi o moje pisanie, bo piszę nieco więcej, ale… gdzie indziej, na innych zasadach i tylko w trochę podobnej formie. Więc: na blogu – spadek.

A jak wygląda moje czytanie blogów? Cóż, pojawiają się jakieś nowe blogi, ale czytam raczej to, co wieki temu. Jak zajrzycie do starych polecanek z okazji BlogDay albo na Planetę Joggera, to znajdziecie większość blogów, które regularnie czytam. Część po prostu awansowała z mam w czytniku na regularnie zaglądam.

Zmienił się mój sposób czytania. Rzadziej korzystam z czytnika RSS do czytania blogów dla przyjemności, choć nadal pełni funkcję zakładek. Obecnie użytkowo pełni on bardziej funkcję agregatora newsów z portali. O nowych wpisach dowiaduję się raczej z Planety Joggera, social media lub po prostu wchodzę co jakiś czas na stronę. Nawiasem, jeśli piszecie bloga bloga, to warto dodać powiadomienia o nowych wpisach na socjale. RSSy trochę zdechły, mamy trochę natłok informacji, warto się dostosować, żeby dotrzeć do czytelników.

Co jeszcze? Pewnie pojawi się – który to już raz – stwierdzenie, że blogi umierają. To półprawda. Tzn. tak, część umiera. Ale także powstają nowe. I – podobnie jak kiedyś – wiele z nowych zniknie po paru latach. Tylko coraz bardziej mam wrażenie, że nic nowego i zawsze tak było.

Jeśli macie coś ciekawego do polecenia, zachęcam do napisania stosownych wpisów na swoich blogach.

Planeta – reaktywacja

Po nieco ponad kwartale od zatrzymania Planety Joggera, dojrzałem do jej przywrócenia. Nie jest to ta sama planeta, co wcześniej. Główna zmiana to silnik. Skręciłem w stronę o której pisałem czyli prosta planeta, gdzie będą tylko tytuły i daty wpisów. Może tekstowy fragment opisu, bez formatowania HTML.

Zmiana silnika spowodowała też parę zmian. Jest też kilka niedoróbek:

  • Lista blogów w stopce jest generowana dynamicznie. Tylko jeśli uda się pobrać feed, to blog się pojawi na liście źródeł. Wynika z pewnego uproszczenia działania po stronie silnika, może kiedyś zmienię. Albo może i nie zmienię, bo po co oszukiwać, że wpisy z danego źródła są pobierane, skoro nie są?
  • W przeciwieństwie do poprzedniej wersji nie są prezentowane pełne wpisy, a jedynie zajawki. Czyli wykorzystuję pole description z feedu. Powodów jest wiele, ale w sumie przy poprzedniej wersji była sugestia, żeby właśnie tylko zajawkę dawać i… wg mnie jest OK.
  • Nie będą pojawiały się obrazki/zdjęcia. Trochę jest to pokłosie punktu wyżej, a trochę ze względu na bezpieczeństwo.
  • Nie działa feed planety (choć jest linkowany). Nie zrobiłem na razie, ale będzie.

Z niewidocznych zmian: wylatuje kontener LXC, nie ma całego Planet Venus. Nie ma cache. Całość to obecnie jest jeden plik konfiguracyjny (YAML), dwa pliki template i jeden plik z kodem (Python). Uruchomić z crona, najlepiej z wykorzystaniem venv i… to wszystko. Działa szybciej. KISS

Jeśli chodzi o jak to jest zrobione, to silnik – albo raczej: silniczek – opublikuję wkrótce. Na razie przetestowałem działanie ręcznie, teraz uruchomiłem automatyczne odświeżanie z crona. Jeśli zauważycie błędy liczę na informację. Gdy wszystko będzie działało i dorobię generowanie feedu planety, wtedy publikacja kodu. Repo nanoplanet – chwilowo puste – już linkuję, żeby nie musieć aktualizować wpisu.

Dajcie znać jak się podoba i czy widzicie jakieś usterki.