Sociální síť Mastodon: Nainstalujte si server s vlastními pravidly
Co je to vlastně ten Mastodon?
V souvislosti s převzetím Twitteru Elonem Muskem se začal termín Mastodon výrazněji probírat. Jedná se o open-source platformu sociálních sítí, kterou v roce 2016 vytvořil Eugen Rochko (v ruštině Евгений Рочко). Klíčovou vlastností Mastodonu je využití protokolu ActivityPub. Pro svůj chod využívá Ruby on Rails a PostgreSQL.
Protože se jedná o decentralizovanou platformu, můžete se zaregistrovat na libovolném serveru, kde každý má vlastní pravidla pro registraci a obsah a svůj obsah sdílíte s libovolnými dalšími uživateli. Na https://joinmastodon.org/servers najdete seznam serverů na kterých si můžete zažádat o účet. České jsou tam (v době psaní článku) dva.
Výhodou toho, že se jedná o free a open-source je, že si můžete nainstalovat vlastní server s vlastními pravidly. Dokumentace je natolik dobře udělaná, že instalaci zvládne téměř každý.
Snadná instalace serveru na Mastodon
Pochopitelně jsem si instalaci vyzkoušel a byl jsem nadšený, jak snadné to je. Zabezpečení virtuálního serveru jsem si udělal vlastní, ale jinak jsem postupoval podle návodu. Zvolil jsem si VPS s Debian 11.6 Bullseye, 2CPU, 2GB RAM a certifikáty pro doménu jsem použil validní od DigiCert. Po úspěšné instalaci, restartu serveru a kontrole, jestli všechny služby běží, jsem netrpělivě otevřel stránku https://mastodon.vyboh.net/ a vyskočilo na mě:
Paráda, mám funkční Mastodon server. Od objednání serveru a certifikátu do zprovoznění necelá hodina.
Ale na rovinu, zas tak jednoduché to nebylo
Proto píšu, že to zvládne téměř každý. První pokus který jsem zkoušel byl na serveru s 1GB RAM. Instalace proběhla v pohodě (pokud tam byla nějaká chyba, tak jsem si jí nevšiml). Restartoval jsem server, zkontroloval jsem, že všechny služby fungují, zadal do prohlížeče adresu serveru a skončil jsem na chybě 500. Podíval jsem se do error logu Nginx a tohle je jediný záznam naprosto nesouvisející s daným problémem:
2023/01/23 13:31:29 [notice] 9943#9943: using inherited sockets from "6;7;"
Takže jsem se pustil do zkoumání /var/log/syslog a tam jsem konečně našel užitečnou informaci:
Jan 23 14:08:34 mastodont bundle[1072]: [74520534-5d1c-4963-ba12-e5f9c38873b1] Chewy request strategy is `mastodon`
Jan 23 14:08:34 mastodont bundle[1072]: [74520534-5d1c-4963-ba12-e5f9c38873b1] method=GET path=/ format=html controller=HomeController action=index status=500 error='ActionView::Template::Error: Webpacker can't find media/images/preview.
png in /home/mastodon/live/public/packs/manifest.json. Possible causes:
Jan 23 14:08:34 mastodont bundle[1072]: 1. You want to set webpacker.yml value of compile to true for your environment
Jan 23 14:08:34 mastodont bundle[1072]: unless you are using the `webpack -w` or the webpack-dev-server.
Jan 23 14:08:34 mastodont bundle[1072]: 2. webpack has not yet re-run to reflect updates.
Jan 23 14:08:34 mastodont bundle[1072]: 3. You have misconfigured Webpacker's config/webpacker.yml file.
Jan 23 14:08:34 mastodont bundle[1072]: 4. Your webpack configuration is not creating a manifest.
Jan 23 14:08:34 mastodont bundle[1072]: Your manifest contains:
Jan 23 14:08:34 mastodont bundle[1072]: {
Jan 23 14:08:34 mastodont bundle[1072]: }
Jan 23 14:08:34 mastodont bundle[1072]: ' duration=113.80 view=0.00 db=6.73
Protože Ruby on Rails jsem naposledy použil před nějakými dvanácti lety, tak jsem zkusil Google a našel jsem řešení na GitHub.com. Po spuštění příkazu: RAILS_ENV=production bundle exec rails assets:precompile systém zahlásil:
Compiling...
Compilation failed:
<--- Last few GCs --->
[1845:0x629ecc0] 30263 ms: Mark-sweep 461.6 (480.7) -> 458.4 (481.4) MB, 125.6 / 0.0 ms (average mu = 0.142, current mu = 0.027) allocation failure scavenge might not succeed
[1845:0x629ecc0] 30387 ms: Mark-sweep 462.3 (481.4) -> 459.2 (482.2) MB, 121.0 / 0.0 ms (average mu = 0.090, current mu = 0.030) allocation failure scavenge might not succeed
<--- JS stacktrace --->
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
1: 0xb08e80 node::Abort() [node]
Závěr: 1GB RAM na serveru v žádném případě nestačí!
Pojďme dál.
Nová EU legislativa a Mastodon
Jak je vidět, tak zprovoznit si vlastní Mastodon server není ani komplikované a ani finančně náročné (dám za jeden oběd víc, než za měsíc provozu), ale trochu se bojím právních aspektů provozu.
EU to s decentralizací myslí vážně. Doporučuji k přečtení alespoň tenhle článek od NGI iniciativy. A pokud se Vám povede najít nějakou zranitelnost v Mastodon, tak můžete dokonce získat od EU zajímavou finanční odměnu.
Ale o tom třeba někdy později.
Jeden tip na závěr
Jestli provozujete WordPress a chcete svoje nové příspěvky publikovat na Mastodon, určitě budete potřebovat plugin ActivityPub.
Mohlo by vás také zajímat
-
inPage AI: Jak na generování obsahu
18. července 2024 -
AI na dosah ruky: Jak je to s AI v osobních zařízeních?
22. ledna 2024 -
AI v programování: Jak používat GitHub Copilot (část 1)
12. února 2024
Nejnovější
-
AI a internetové podvody
29. října 2024 -
Užitečné nástroje pro bezpečnost na internetu
17. října 2024 -
Jak se chránit před podvody na internetu – část 2
14. října 2024 -
Doména .io v ohrožení: Co přinese předání Čagoských ostrovů?
10. října 2024