Come creare un proprio server per Mastodon: tutorial

Un server Mastodon personale ti permette di avere il pieno controllo sui tuoi dati e sulla moderazione della tua community. In questo modo godrai di un’esperienza d’uso personalizzata, che tutela la tua privacy e non ti mostra pubblicità fastidiose.

Server per Mastodon: i requisiti

Se ancora non sai con certezza quali dimensioni dovrebbe avere il tuo server, ti consigliamo di cominciare con una configurazione server ridotta, che puoi espandere in qualsiasi momento in base alle crescenti esigenze tue e della tua community. Per configurare un server per Mastodon hai bisogno di:

  • Un server VPS (o di altro tipo): sebbene sia possibile eseguire Mastodon anche su un server locale, un Virtual Private Server (VPS) rappresenta la soluzione più flessibile e facile da gestire. Questo server dovrebbe utilizzare Ubuntu 20.04 o Debian 11 come sistema operativo e garantirti l’accesso root per effettuare le configurazioni necessarie.
  • Dominio o sottodominio: per identificare il tuo server Mastodon hai bisogno di un tuo dominio o sottodominio. In questo modo l’utente potrà trovare la tua istanza e connettersi a essa.
Controllo Dominio
  • Costante disponibilità online: per consentire ad altri utenti di utilizzare la tua istanza Mastodon in qualsiasi momento, il tuo server deve essere sempre online.
  • Provider di posta elettronica: Mastodon invia le notifiche e i link di conferma via e-mail, quindi è necessario un provider di posta elettronica che supporti queste funzioni. Hai la possibilità di installare un tuo server SMTP. In genere la soluzione più pratica è un software di terze parti. Mastodon consiglia Mailgun, SparkPost o Sendgrid, tra gli altri.
  • Object Storage Provider (opzionale): è consigliabile utilizzare un provider di archiviazione di oggetti compatibile con il servizio di archiviazione Amazon S3, dal momento che Mastodon memorizza immagini, video e altri file multimediali sul server. Con uno spazio di archiviazione aggiuntivo, l’istanza di Mastodon funziona senza intoppi e offre risorse sufficienti per i dati dell’utente.
IONOS Object Storage
Archiviazione sicura e a prezzi vantaggiosi

Archivia i tuoi dati in tutta sicurezza sui nostri server, e proteggili dagli accessi non autorizzati.

Il tuo server deve inoltre soddisfare i seguenti requisiti tecnici minimi:

  • Processore (CPU): min. 2 core
  • RAM : min. 2 GB
  • Spazio su disco rigido: min. 30 GB

Mastodon utilizza un database (PostgreSQL) per memorizzare i dati dell’utente e altre informazioni. In presenza di un’ampia base di utenti, il numero di accessi al database può essere elevato. Assicurati che il tuo database sia sufficientemente ottimizzato e che siano disponibili risorse adeguate (CPU e RAM) per gestire questi accessi in modo efficiente.

Ospitare un server per Mastodon con un VPS di IONOS

Vuoi iniziare a utilizzare la tua istanza di Mastodon ma non sai quale piano VPS è adatto alle tue esigenze? IONOS ti offre pacchetti VPS ad alte prestazioni con risorse dedicate e traffico illimitato a prezzi convenienti.

Se non hai esigenze particolari e desideri creare un server per Mastodon semplice e senza fronzoli, il pacchetto VPS Linux S è ciò che fa al caso tuo. Con questa soluzione avrai a disposizione 80 GB di spazio di archiviazione e una connessione veloce a banda larga fino a 1 Gbit/s. Se in futuro dovessi avere bisogno di più risorse, non dovrai fare altro che selezionare il pacchetto di servizi di dimensioni maggiori.

Possibili scenari per il tuo server Mastodon (con le tariffe IONOS più adatte)

Durante la scelta del pacchetto VPS più adatto alle tue esigenze, è importante tenere in considerazione il numero potenziale di utenti della tua istanza Mastodon. A seconda del traffico previsto, ti consigliamo le seguenti tariffe IONOS:

Scenario di applicazione del server Mastodon Server VPS IONOS più adatto
fino a 100 persone VPS Linux M
Da 100 a 1.000 persone VPS Linux L
Da 1.000 a 10.000 persone VPS Linux XL
Da 10.000 persone VPS Linux XXL

Puoi anche far funzionare il tuo server Mastodon in parallelo con altri servizi. Nel caso di una base di utenti iniziale di dimensioni contenute, puoi valutare una di queste tariffe:

Scenario di applicazione del server Mastodon Server VPS IONOS più adatto
Funzionamento in parallelo di un sito web semplice VPS Linux M
Funzionamento in parallelo di un voice server VPS Linux M
Funzionamento parallelo di un negozio online VPS Linux L

Creare un server per Mastodon: tutorial in 9 passaggi

Primo passaggio: preparare il server

La maggior parte dei provider di hosting offre la possibilità di scegliere il sistema operativo durante la configurazione. Mastodon funziona al meglio su Ubuntu 20.04 e Debian 11. Ti consigliamo di servirti di uno di questi sistemi operativi. Una volta configurato il tuo VPS, connettiti al tuo server tramite SSH. Per farlo, utilizza un terminale (Linux/Mac) o un client SSH come PuTTY (Windows).

ssh root@your_server_ip
bash

Sostituisci il segnaposto your_server_ip con l’indirizzo IP del tuo VPS.

Per proteggere il tuo sistema, devi utilizzare le chiavi SSH e impostare le regole del firewall con iptables per lasciare aperte solo le porte HTTP(S) e SSH. Dovrai poi indirizzare il record A del tuo dominio o sottodominio all’indirizzo IP del VPS. Per l’IPv6, aggiungi un ulteriore record AAAA.

Aggiorna il gestore dei pacchetti e i pacchetti di sistema:

apt update && apt upgrade -y
bash

Secondo passaggio: installare i pacchetti necessari

Per funzionare correttamente, Mastodon richiede diversi pacchetti e dipendenze. Questi includono Node.js, Yarn, PostgreSQL, Redis e Nginx.

Per prima cosa è necessario installare i pacchetti base:

apt install -y curl wget gnupg apt-transport-https lsb-release ca-certificates
bash

Node.js

curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
bash

PostgreSQL

wget -O /usr/share/keyrings/postgresql.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc
echo "deb [signed-by=/usr/share/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/postgresql.list
bash

Pacchetti di sistema

apt update
bash
apt install -y imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core g++ libprotobuf-dev protobuf-compiler pkg-config gcc autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev nginx nodejs redis-server redis-tools postgresql postgresql-contrib certbot python3-certbot-nginx libidn11-dev libicu-dev libjemalloc-dev
bash

Yarn

corepack enable
yarn set version classic
bash

Ruby

Mastodon è scritto in Ruby e quindi richiede Ruby e Bundler. Comincia creando l’utente sotto il quale Mastodon deve essere eseguito:

adduser --disabled-login mastodon
bash

Dopodiché passa all’account utente da te creato:

su - mastodon
bash

Installa rbenv e rbenv-build:

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec bash
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
bash

Una volta completata l’operazione, installa la versione corretta di Ruby e del Bundler:

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.2.3
rbenv global 3.2.3
gem install bundler --no-document
bash

Usa exit per tornare all’utente root.

Terzo passaggio: configurare PostgreSQL

PostgreSQL è utilizzato dal server Mastodon per archiviare e gestire i dati. Hai già installato il server di database nel passaggio precedente. Passa all’utente Postgres per accedere alla shell di PostgreSQL:

sudo -u postgres psql
bash

Mastodon accede al server del database senza password. Pertanto, il nome utente del sistema Linux e il nome utente del database devono corrispondere. Esegui i seguenti comandi nella shell di PostgreSQL per creare il database:

CREATE USER mastodon CREATEDB;
\q
sql

Puoi migliorare le prestazioni del tuo database PostgreSQL adattandolo alle risorse di sistema disponibili. Uno strumento utile a questo scopo è il generatore di configurazione pgTune. Inserendo informazioni come il numero di core della CPU e la dimensione della RAM, riceverai una configurazione ottimizzata di PostgreSQL, specificabile in postgresql.conf.

Quarto passaggio: installare Mastodon

A questo punto, torna all’utente Mastodon:

su - mastodon
bash

Scarica l’ultima versione stabile di Mastodon:

git clone https://github.com/mastodon/mastodon.git live && cd live
git checkout $(git tag -l | grep '^v[0-9.]*$' | sort -V | tail -n 1)
bash

Installa le dipendenze di Ruby e JavaScript:

bundle config deployment 'true'
bundle config without 'development test'
bundle install -j$(getconf _NPROCESSORS_ONLN)
yarn install --pure-lockfile
bash

Esegui l’installazione guidata di Mastodon:

RAILS_ENV=production bundle exec rake mastodon:setup
bash

A questo punto ti verranno chieste varie impostazioni, che verranno salvate nel file .env.production.

  • Domain name: inserisci il nome del dominio del server VPS
  • Do you want to enable single user mode?: N
  • Are you using Docker to run Mastodon?: N
  • PostgreSQL host: default - Invio
  • PostgreSQL port: default - Invio
  • Name of PostgreSQL database: default - Invio
  • Name of PostgreSQL user: default - Invio
  • Password of PostgreSQL user: lascia vuoto - Invio
  • Redis host: default - Invio
  • Redis port: default - Invio
  • Redis password: default – Invio
  • Do you want to store uploaded files on the cloud?: N
  • Do you want to send e-mails from localhost?: N
  • SMTP server: specifica il server SMTP
  • SMTP port: inserisci la porta del server SMTP
  • SMTP username: nome utente per il login
  • SMTP authentication: plain
  • SMTP OpenSSL verify mode: none
  • E-mail address to send e-mails “from”: solitamente corrisponde al login del server SMTP
  • Send a test e-mail with this configuration right now?: Y
  • Send test e-mail to: inserisci un indirizzo e-mail qualsiasi come destinatario
  • Save configuration?: Y
  • Prepare the database now?: Y
  • Compile the assets now?: Y
  • Do you want to create an admin user straight away?: Y
  • Username: admin
  • E-Mail: il tuo indirizzo e-mail

Ora puoi tornare all’utente root:

exit
bash

Quinto passaggio: installare il certificato SSL

I server VPS di IONOS hanno già un certificato SSL incluso per impostazione predefinita. Tuttavia, se il tuo pacchetto non comprende un certificato, puoi semplicemente installarne uno in un secondo momento.

Puoi ottenere un certificato SSL gratuito da Let’s Encrypt, un’autorità di certificazione che offre certificati automatici facili da installare e rinnovare.

certbot certonly --nginx -d example.com
bash

Il certificato viene salvato nella cartella /etc/letsencrypt/live/example.com/ del tuo server Mastodon.

Sesto passaggio: configurare Nginx

Ora devi copiare il modello di configurazione per Nginx dalla directory Mastodon e incollarlo nella directory sites-available di Nginx:

cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon
bash

Crea un link simbolico dal file di configurazione in sites-enabled per abilitarlo e rimuovere la configurazione predefinita:

ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon
rm /etc/nginx/sites-enabled/default
bash

Apri il file di configurazione del tuo server Mastodon:

nano /etc/nginx/sites-available/mastodon
bash

Sostituisci example.com con il tuo nome di dominio.

Togli i commenti dalle righe ssl_certificate e ssl_certificate_key e sostituisci i percorsi con quelli del tuo certificato SSL. I percorsi rimangono invariati anche se utilizzi il certificato autofirmato predefinito:

ssl_certificate     /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
bash

Dopo aver personalizzato la configurazione, ricarica Nginx per applicare le modifiche effettuate:

systemctl reload nginx
bash

Settimo passaggio: configurare i servizi Systemd

Se attivi i servizi Systemd, l’applicazione web Mastodon e le funzioni di streaming in tempo reale vengono avviate automaticamente all’avvio del server. Questo garantisce che il tuo server Mastodon sia continuamente disponibile.

Copia i modelli di servizio Systemd da Mastodon nella directory corrispondente:

cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/
bash

Se durante l’operazione hai modificato i valori predefiniti, controlla che il nome utente e i percorsi nei modelli di servizio siano corretti:

$EDITOR /etc/systemd/system/mastodon-*.service
bash

Avvia e attiva i servizi Systemd:

systemctl daemon-reload
systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming
bash
  • systemctl daemon-reload: aggiorna la configurazione di Systemd per tenere conto dei nuovi modelli di servizio.
  • systemctl enable –now mastodon-web mastodon-sidekiq mastodon-streaming: questi servizi sono responsabili dell’applicazione web, dell’elaborazione in background e delle funzioni di streaming in tempo reale di Mastodon.

Ottavo passaggio: modificare il limite di caratteri

Gestendo il tuo server Mastodon personale, hai la libertà di configurare impostazioni normalmente non possibili sui server pubblici. Un esempio è la regolazione del limite di caratteri per i messaggi. Per impostazione predefinita, il limite è di 500 caratteri, ma è possibile aumentarlo o diminuirlo.

Per prima cosa, è necessario passare all’utente Mastodon nella console. Dopodiché, devi modificare due file specifici.

Inserisci il valore desiderato per il limite di caratteri nei seguenti file:

  • compose_form.js nella directory ~/live/app/javascript/mastodon/features/compose/components/
  • status_length_validator.rb in ~/live/app/validators/

All’interno del file instance_serializer.rb nella directory ~/live/app/serializers/rest/ trova la riga contenente :languages, :registrations, e integrala aggiungendo :max_toot_chars, alla fine della stessa.

Inoltre, aggiungi il seguente codice sotto la riga che inizia con private, inserendo il valore desiderato:

def max_toot_chars
    1000
end
ruby

Dopo aver apportato queste modifiche è necessario riavviare i servizi di Mastodon. Per farlo, devi usare il comando come utente root:

service mastodon-* restart
bash

Ora è possibile scrivere messaggi con un limite di 1.000 caratteri.

Nono passaggio: aggiungere la funzione di moderazione

La funzione di moderazione, presente alla voce “Impostazioni > Moderazione” sul tuo server Mastodon, ti permette, in qualità di amministratore, di monitorare e controllare i contenuti e l’attività dell’utente sulla tua istanza, al fine di rispettare le linee guida della community e rimuovere i contenuti indesiderati.

Hai la possibilità di bloccare, sbloccare ed eliminare singoli account, domini, indirizzi IP e server di posta elettronica. Puoi anche moderare i contenuti pubblicati da utenti rimuovendo o modificando i post inappropriati o offensivi.

Novità: offerta VPS
Il tuo server virtuale a prezzi imbattibili

Prova il nostro VPS. I primi 30 giorni sono in omaggio e se allo scadere del periodo di prova non sarai convinto, ti rimborseremo tutte le spese sostenute.

Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top