−25%

su Windows con pagamento annuale, fino al 31/10. Vai ai piani

EQVPS
Inizia

VPS per Mastodon: la tua piccola istanza

Ospita una piccola istanza Mastodon su un VPS: RAM e disco senza giri di parole, setup Docker, email tramite relay SMTP e pulizia dei media perché il disco non si riempia.

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 è

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.

IstanzaPiano
Un utente, pochi account seguitiSmall-IP — 2 vCPU, 4 GB, $16/mese
Piccola comunità, federazione attivaMedium-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

Cerchi qualcosa di più leggero per la chat di un team? Un server Matrix potrebbe fare più al caso tuo.

Pronto a fare il deploy? Paga in crypto, niente KYC — online in circa un minuto.

Fai il deploy ora →

FAQ

Quanta RAM serve a un'istanza Mastodon?

Per un'istanza personale o piccola, 4 GB sono il minimo realistico e 6 GB sono comodi. Mastodon esegue insieme un processo web, i worker Sidekiq, PostgreSQL e Redis, e la federazione tiene occupato Sidekiq anche quando nessuno pubblica.

Perché Mastodon ha bisogno di un IP dedicato?

Gli altri server consegnano i post al tuo via HTTPS sulla porta 443, e le persone aprono la tua istanza nel browser. Serve quindi la 443 in entrata sul tuo IP, che i piani NAT non hanno.

Come invio email da Mastodon?

Tramite un provider esterno di email transazionali in SMTP sulla porta 587. Le porte 25 e 465 sono chiuse sui nostri server, e un relay garantisce comunque una consegna molto migliore di un IP nuovo.

Perché il disco si riempie così in fretta?

Il tuo server mette in cache i media di tutti gli account che vede. Esegui 'tootctl media remove --days 7' a intervalli regolari, oppure sposta i media su uno storage a oggetti compatibile S3.

Posso cambiare dominio in seguito?

No. Il dominio fa parte dell'identità di ogni account in tutto il fediverso. Sceglilo con cura prima di creare il primo account.

Commenti

Ancora nessun commento. Sii il primo.

Lascia un commento

I commenti sono moderati prima di comparire.