Să-ți deții contul social e o idee frumoasă până realizezi că acel cont trăiește pe serverul altcuiva, după regulile și uptime-ul lui. Propria instanță Mastodon rezolvă asta: identificatorul tău e @tu@domeniul-tău și nimeni nu-l poate închide în afară de tine. Problema e că Mastodon nu e o aplicație mică. Merită să știi la ce te înhami.
Pentru cine e
- O instanță cu un singur utilizator, pentru tine sau pentru contul oficial al companiei.
- O comunitate mică de prieteni sau o echipă de proiect — zeci de oameni, nu mii.
Pentru orice mai mare, rulezi un serviciu cu obligații de moderare, rapoarte de abuz și infrastructură reală. Asta e altă discuție.
De ce are nevoie de fapt
Mastodon rulează mai multe procese deodată: aplicația web Rails, workerii Sidekiq de fundal, un server de streaming, PostgreSQL și Redis. Federarea înseamnă că serverul tău preia continuu postări și fișiere media de la alte servere, chiar și când dormi.
| Instanță | Plan |
|---|---|
| Un singur utilizator, puține conturi urmărite | Small-IP — 4 vCPU, 4 GB, $16/lună |
| Comunitate mică, federare activă | Medium-IP — 6 vCPU, 6 GB, $20/lună |
4 GB merg, dar la limită; cozile Sidekiq se adună când o postare populară pe care o urmărești primește mii de răspunsuri. 6 GB îți dau loc să respiri. Discul e cealaltă constrângere — vezi secțiunea despre media de mai jos.
Ai nevoie și de un domeniu și de un IP dedicat: alte servere livrează către al tău pe portul 443.
Configurare cu Docker
Repository-ul oficial vine cu un docker-compose.yml. Pe un server Ubuntu 24.04 proaspăt, cu Docker instalat:
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
Sarcina de configurare cere domeniul, setările bazei de date și Redis (valorile implicite se potrivesc cu fișierul compose), setările de e-mail și primul cont de administrator. Scrie totul în .env.production. Citește notele de versiune ale tagului pe care l-ai ales — pașii se schimbă uneori între versiunile majore.
Mastodon include un șablon nginx în dist/nginx.conf. Copiază-l în /etc/nginx/sites-available/, înlocuiește domeniul și ia un certificat cu certbot. Ghidul nostru despre reverse proxy și ghidul despre domenii le acoperă pe amândouă.
E-mail: folosește un releu
Mastodon trimite e-mailuri de confirmare și de resetare a parolei. Porturile 25 și 465 sunt închise pe serverele noastre, așa că îndreaptă Mastodon spre un furnizor extern de e-mail tranzacțional, pe portul 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
Sincer, oricum ai vrea un releu. E-mailurile de pe IP-ul unui server nou-nouț tind să ajungă în spam; un releu are reputația pe care tu n-o ai încă.
Media: mâncătorul de disc
Fiecare imagine și fiecare video de la conturile pe care le vede serverul tău sunt ținute local în cache. Pe o instanță aglomerată înseamnă gigaocteți pe săptămână. Curăță periodic fișierele media vechi de la distanță:
docker compose exec web tootctl media remove --days 7
docker compose exec web tootctl preview_cards remove --days 30
Pune-le într-o sarcină cron zilnică. Dacă instanța crește, mută fișierele media într-o stocare de obiecte compatibilă S3, cu setările S3_* din .env.production — atunci discul VPS-ului ține doar baza de date.
Întreținere
- Actualizări: iei noul tag,
docker compose pull, rulezi migrările cum spun notele de versiune, repornești. Nu sări peste versiunile majore. - Backup-uri: fă un dump PostgreSQL și păstrează în siguranță
.env.production— fără secretele lui, o restaurare nu va merge. Ghidul nostru despre restic acoperă copiile în afara serverului, iar backup-urile gestionate adaugă puncte zilnice de restaurare pentru tot serverul. - Domeniul e permanent. E încorporat în adresa fiecărui cont din fediverse. Alege-l înainte să creezi primul cont.
Vrei în schimb ceva mai ușor pentru chatul unei echipe? Un server Matrix s-ar putea potrivi mai bine.
Comentarii
Încă nu există comentarii. Fii primul.