EQVPS
PanelZacznij

VPS dla Mastodona: własna mała instancja

Postaw małą instancję Mastodona na VPS: uczciwie o RAM i dysku, instalacja w Dockerze, poczta przez przekaźnik SMTP i czyszczenie mediów, żeby dysk się nie zapchał.

Posiadanie własnego konta społecznościowego brzmi świetnie, dopóki nie zdasz sobie sprawy, że konto żyje na cudzym serwerze, według cudzych zasad i cudzej dostępności. Własna instancja Mastodona to naprawia: twój identyfikator to @you@your-domain i nikt poza tobą nie może go wyłączyć. Haczyk polega na tym, że Mastodon nie jest małą aplikacją. Warto wiedzieć, na co się piszesz.

Dla kogo to jest

  • Instancja jednoosobowa dla ciebie albo dla oficjalnego konta twojej firmy.
  • Mała społeczność znajomych lub zespół projektowy — dziesiątki osób, nie tysiące.

Przy czymś większym prowadzisz już usługę z obowiązkami moderacji, zgłoszeniami nadużyć i prawdziwą infrastrukturą. To zupełnie inna rozmowa.

Czego naprawdę potrzebuje

Mastodon uruchamia kilka procesów naraz: aplikację webową w Rails, workery Sidekiq w tle, serwer streamingu, PostgreSQL i Redis. Przez federację twój serwer pobiera posty i media z innych serwerów nawet wtedy, gdy śpisz.

InstancjaPlan
Jedna osoba, mało obserwowanychSmall-IP — 4 vCPU, 4 GB, $16/mies.
Mała społeczność, aktywna federacjaMedium-IP — 6 vCPU, 6 GB, $20/mies.

4 GB działają, ale na styk; kolejki Sidekiq się zapychają, gdy popularny post, który obserwujesz, dostaje tysiące odpowiedzi. 6 GB daje oddech. Drugim ograniczeniem jest dysk — patrz sekcja o mediach niżej.

Potrzebujesz też domeny i dedykowanego IP: inne serwery dostarczają do twojego na porcie 443.

Instalacja w Dockerze

Oficjalne repozytorium zawiera docker-compose.yml. Na świeżym serwerze z Ubuntu 24.04 i zainstalowanym Dockerem:

git clone https://github.com/mastodon/mastodon.git
cd mastodon
git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)
touch .env.production
docker compose run --rm -v $(pwd)/.env.production:/opt/mastodon/.env.production \
  web bundle exec rake mastodon:setup
docker compose up -d

Zadanie konfiguracyjne pyta o domenę, ustawienia bazy danych i Redisa (domyślne wartości pasują do pliku compose), ustawienia poczty i pierwsze konto administratora. Wszystko zapisuje w .env.production. Przeczytaj informacje o wydaniu dla wybranego tagu — kroki czasem zmieniają się między głównymi wersjami.

Mastodon zawiera szablon nginx w dist/nginx.conf. Skopiuj go do /etc/nginx/sites-available/, podmień domenę i zdobądź certyfikat przez certbota. Nasze poradniki o reverse proxy i o domenie opisują oba kroki.

Poczta: użyj przekaźnika

Mastodon wysyła maile z potwierdzeniem i resetem hasła. Porty 25 i 465 są na naszych serwerach zamknięte, więc skieruj Mastodona do zewnętrznego dostawcy poczty transakcyjnej przez port 587:

SMTP_SERVER=smtp.your-provider.example
SMTP_PORT=587
SMTP_LOGIN=apikey
SMTP_PASSWORD=your-smtp-password
SMTP_FROM_ADDRESS=notifications@your-domain.example

Szczerze mówiąc, przekaźnika i tak byś chciał. Poczta z zupełnie nowego adresu IP serwera często ląduje w spamie; przekaźnik ma reputację, której ty jeszcze nie masz.

Media: pożeracz dysku

Każdy obraz i film z kont, które widzi twój serwer, trafia do lokalnego cache. Na aktywnej instancji to gigabajty tygodniowo. Regularnie czyść stare zdalne media:

docker compose exec web tootctl media remove --days 7
docker compose exec web tootctl preview_cards remove --days 30

Wrzuć to do codziennego crona. Jeśli instancja urośnie, przenieś media do storage obiektowego zgodnego z S3 za pomocą ustawień S3_* w .env.production — wtedy dysk VPS trzyma tylko bazę danych.

Utrzymanie

  • Aktualizacje: pobierz nowy tag, docker compose pull, uruchom migracje zgodnie z informacjami o wydaniu, zrestartuj. Nie przeskakuj głównych wersji.
  • Kopie zapasowe: zrzucaj PostgreSQL i pilnuj .env.production — bez jego sekretów przywrócenie nie zadziała. Nasz poradnik restic opisuje kopie poza serwerem, a Managed Backups dodają codzienne punkty przywracania całego serwera.
  • Domena jest na zawsze. Jest wpisana w adres każdego konta w całym fediwersum. Wybierz ją przed utworzeniem pierwszego konta.

Szukasz czegoś lżejszego na czat zespołu? Serwer Matrix może pasować lepiej.

Gotowy na wdrożenie? Płać kryptowalutą, bez KYC — online w około minutę.

Wdróż teraz →

FAQ

Ile RAM potrzebuje instancja Mastodona?

Dla instancji jednoosobowej lub małej 4 GB to realne minimum, a 6 GB to komfort. Mastodon uruchamia jednocześnie proces webowy, workery Sidekiq, PostgreSQL i Redis, a federacja zajmuje Sidekiq nawet wtedy, gdy nikt nic nie publikuje.

Dlaczego Mastodon potrzebuje dedykowanego IP?

Inne serwery dostarczają posty do twojego przez HTTPS na porcie 443, a ludzie otwierają twoją instancję w przeglądarce. To wymaga ruchu przychodzącego na 443 na twoim własnym IP, a plany NAT tego nie mają.

Jak wysyłać maile z Mastodona?

Przez zewnętrznego dostawcę poczty transakcyjnej, po SMTP na porcie 587. Porty 25 i 465 są na naszych serwerach zamknięte, a przekaźnik i tak zapewnia dużo lepszą dostarczalność niż świeży adres IP.

Dlaczego dysk zapełnia się tak szybko?

Twój serwer zapisuje w cache media ze wszystkich kont, które widzi. Uruchamiaj regularnie 'tootctl media remove --days 7' albo przenieś media do storage obiektowego zgodnego z S3.

Czy mogę później zmienić domenę?

Nie. Domena jest częścią tożsamości każdego konta w całym fediwersum. Wybierz ją starannie przed utworzeniem pierwszego konta.

Komentarze

Brak komentarzy. Bądź pierwszy.

Zostaw komentarz

Komentarze są moderowane przed pojawieniem się.