Possedere il proprio account social è una bella idea, finché non ti accorgi che l'account vive sul server di qualcun altro, con le sue regole e i suoi tempi di disponibilità. Un'istanza Mastodon tua risolve il problema: il tuo handle è @you@your-domain e nessuno può chiuderlo tranne te. Il rovescio della medaglia è che Mastodon non è un'app piccola. Conviene sapere a cosa si va incontro.
Per chi è
- Un'istanza per un solo utente, per te o per l'account ufficiale della tua azienda.
- Una piccola comunità di amici o un team di progetto: decine di persone, non migliaia.
Oltre, stai gestendo un servizio con obblighi di moderazione, segnalazioni e un'infrastruttura vera. È un altro discorso.
Cosa serve davvero
Mastodon esegue diversi processi insieme: l'app web Rails, i worker Sidekiq in background, un server di streaming, PostgreSQL e Redis. Con la federazione, il tuo server continua a scaricare post e media da altri server anche mentre dormi.
| Istanza | Piano |
|---|---|
| Un utente, pochi account seguiti | Small-IP — 2 vCPU, 4 GB, $16/mese |
| Piccola comunità, federazione attiva | Medium-IP — 4 vCPU, 6 GB, $20/mese |
4 GB funzionano ma sono stretti; le code di Sidekiq si intasano quando un post popolare che segui riceve migliaia di risposte. 6 GB ti lasciano respirare. L'altro limite è il disco — vedi la sezione sui media.
Ti servono anche un dominio e un IP dedicato: gli altri server consegnano al tuo sulla porta 443.
Setup con Docker
Il repository ufficiale include un docker-compose.yml. Su un server Ubuntu 24.04 pulito con Docker installato:
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
Il task di setup chiede dominio, impostazioni di database e Redis (i valori predefiniti corrispondono al file compose), impostazioni email e il primo account amministratore. Scrive tutto in .env.production. Leggi le note di rilascio del tag scelto: i passaggi a volte cambiano tra versioni principali.
Mastodon include un modello nginx in dist/nginx.conf. Copialo in /etc/nginx/sites-available/, sostituisci il dominio e ottieni un certificato con certbot. Le nostre guide al reverse proxy e al dominio coprono entrambe le cose.
Email: usa un relay
Mastodon invia email di conferma e di reimpostazione della password. Le porte 25 e 465 sono chiuse sui nostri server, quindi collega Mastodon a un provider esterno di email transazionali sulla porta 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
A dirla tutta, un relay ti servirebbe comunque. La posta da un IP di server appena nato tende a finire nello spam; un relay ha la reputazione che tu ancora non hai.
Media: il divoratore di disco
Ogni immagine e video degli account che il tuo server vede viene messo in cache in locale. Su un'istanza attiva sono gigabyte a settimana. Pulisci regolarmente i vecchi media remoti:
docker compose exec web tootctl media remove --days 7
docker compose exec web tootctl preview_cards remove --days 30
Mettili in un cron job giornaliero. Se l'istanza cresce, sposta i media su uno storage a oggetti compatibile S3 con le impostazioni S3_* in .env.production: a quel punto il disco del VPS contiene solo il database.
Manutenzione
- Aggiornamenti: scarica il nuovo tag,
docker compose pull, esegui le migrazioni come indicato nelle note di rilascio, riavvia. Non saltare versioni principali. - Backup: fai il dump di PostgreSQL e tieni al sicuro
.env.production— senza i suoi segreti un ripristino non funziona. La nostra guida a restic copre le copie fuori sede, e i Managed Backups aggiungono punti di ripristino giornalieri dell'intero server. - Il dominio è per sempre. È scritto nell'indirizzo di ogni account in tutto il fediverso. Sceglilo prima di creare il primo account.
Cerchi qualcosa di più leggero per la chat di un team? Un server Matrix potrebbe fare più al caso tuo.
Commenti
Ancora nessun commento. Sii il primo.