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.
- 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.
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
bashSostituisci 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
bashSecondo 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
bashNode.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
bashPostgreSQL
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
bashPacchetti di sistema
apt update
bashapt 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
bashYarn
corepack enable
yarn set version classic
bashRuby
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
bashDopodiché passa all’account utente da te creato:
su - mastodon
bashInstalla 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
bashUna 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
bashUsa 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
bashMastodon 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
sqlPuoi 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
bashScarica 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)
bashInstalla 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
bashEsegui l’installazione guidata di Mastodon:
RAILS_ENV=production bundle exec rake mastodon:setup
bashA 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
bashQuinto 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
bashIl 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
bashCrea 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
bashApri il file di configurazione del tuo server Mastodon:
nano /etc/nginx/sites-available/mastodon
bashSostituisci 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;
bashDopo aver personalizzato la configurazione, ricarica Nginx per applicare le modifiche effettuate:
systemctl reload nginx
bashSettimo 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/
bashSe 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
bashAvvia 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
rubyDopo aver apportato queste modifiche è necessario riavviare i servizi di Mastodon. Per farlo, devi usare il comando come utente root:
service mastodon-* restart
bashOra è 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.
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.