Un server Mastodon personale ti permette di avere il pieno controllo sui tuoi dati e sulla mo­de­ra­zio­ne della tua community. In questo modo godrai di un’espe­rien­za d’uso per­so­na­liz­za­ta, che tutela la tua privacy e non ti mostra pub­bli­ci­tà fa­sti­dio­se.

Server per Mastodon: i requisiti

Se ancora non sai con certezza quali di­men­sio­ni dovrebbe avere il tuo server, ti con­si­glia­mo di co­min­cia­re con una con­fi­gu­ra­zio­ne server ridotta, che puoi espandere in qualsiasi momento in base alle crescenti esigenze tue e della tua community. Per con­fi­gu­ra­re 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) rap­pre­sen­ta la soluzione più fles­si­bi­le e facile da gestire. Questo server dovrebbe uti­liz­za­re Ubuntu 20.04 o Debian 11 come sistema operativo e ga­ran­tir­ti l’accesso root per ef­fet­tua­re le con­fi­gu­ra­zio­ni ne­ces­sa­rie.
  • Dominio o sot­to­do­mi­nio: per iden­ti­fi­ca­re il tuo server Mastodon hai bisogno di un tuo dominio o sot­to­do­mi­nio. In questo modo l’utente potrà trovare la tua istanza e con­net­ter­si a essa.
Controllo Dominio
  • Costante di­spo­ni­bi­li­tà online: per con­sen­ti­re ad altri utenti di uti­liz­za­re la tua istanza Mastodon in qualsiasi momento, il tuo server deve essere sempre online.
  • Provider di posta elet­tro­ni­ca: Mastodon invia le notifiche e i link di conferma via e-mail, quindi è ne­ces­sa­rio un provider di posta elet­tro­ni­ca che supporti queste funzioni. Hai la pos­si­bi­li­tà di in­stal­la­re 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): è con­si­glia­bi­le uti­liz­za­re un provider di ar­chi­via­zio­ne di oggetti com­pa­ti­bi­le con il servizio di ar­chi­via­zio­ne Amazon S3, dal momento che Mastodon memorizza immagini, video e altri file mul­ti­me­dia­li sul server. Con uno spazio di ar­chi­via­zio­ne ag­giun­ti­vo, l’istanza di Mastodon funziona senza intoppi e offre risorse suf­fi­cien­ti per i dati dell’utente.
IONOS Cloud Object Storage
Ar­chi­via­zio­ne sicura e a prezzi van­tag­gio­si

Archivia i tuoi dati in tutta sicurezza sui nostri server, e pro­teg­gi­li dagli accessi non au­to­riz­za­ti.

Il tuo server deve inoltre sod­di­sfa­re i seguenti requisiti tecnici minimi:

  • Pro­ces­so­re (CPU): min. 2 core
  • RAM : min. 2 GB
  • Spazio su disco rigido: min. 30 GB

Mastodon utilizza un database (Post­gre­SQL) per me­mo­riz­za­re i dati dell’utente e altre in­for­ma­zio­ni. In presenza di un’ampia base di utenti, il numero di accessi al database può essere elevato. As­si­cu­ra­ti che il tuo database sia suf­fi­cien­te­men­te ot­ti­miz­za­to e che siano di­spo­ni­bi­li risorse adeguate (CPU e RAM) per gestire questi accessi in modo ef­fi­cien­te.

Ospitare un server per Mastodon con un VPS di IONOS

Vuoi iniziare a uti­liz­za­re la tua istanza di Mastodon ma non sai quale piano VPS è adatto alle tue esigenze? IONOS ti offre pacchetti VPS ad alte pre­sta­zio­ni con risorse dedicate e traffico il­li­mi­ta­to a prezzi con­ve­nien­ti.

Se non hai esigenze par­ti­co­la­ri 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 di­spo­si­zio­ne 80 GB di spazio di ar­chi­via­zio­ne e una con­nes­sio­ne veloce a banda larga fino a 1 Gbit/s. Se in futuro dovessi avere bisogno di più risorse, non dovrai fare altro che se­le­zio­na­re il pacchetto di servizi di di­men­sio­ni 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, è im­por­tan­te tenere in con­si­de­ra­zio­ne il numero po­ten­zia­le di utenti della tua istanza Mastodon. A seconda del traffico previsto, ti con­si­glia­mo le seguenti tariffe IONOS:

Scenario di ap­pli­ca­zio­ne 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 fun­zio­na­re il tuo server Mastodon in parallelo con altri servizi. Nel caso di una base di utenti iniziale di di­men­sio­ni contenute, puoi valutare una di queste tariffe:

Scenario di ap­pli­ca­zio­ne del server Mastodon Server VPS IONOS più adatto
Fun­zio­na­men­to in parallelo di un sito web semplice VPS Linux M
Fun­zio­na­men­to in parallelo di un voice server VPS Linux M
Fun­zio­na­men­to 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 pos­si­bi­li­tà di scegliere il sistema operativo durante la con­fi­gu­ra­zio­ne. Mastodon funziona al meglio su Ubuntu 20.04 e Debian 11. Ti con­si­glia­mo di servirti di uno di questi sistemi operativi. Una volta con­fi­gu­ra­to il tuo VPS, con­net­ti­ti 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

So­sti­tui­sci il se­gna­po­sto your_server_ip con l’indirizzo IP del tuo VPS.

Per pro­teg­ge­re il tuo sistema, devi uti­liz­za­re le chiavi SSH e impostare le regole del firewall con iptables per lasciare aperte solo le porte HTTP(S) e SSH. Dovrai poi in­di­riz­za­re il record A del tuo dominio o sot­to­do­mi­nio 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: in­stal­la­re i pacchetti necessari

Per fun­zio­na­re cor­ret­ta­men­te, Mastodon richiede diversi pacchetti e di­pen­den­ze. Questi includono Node.js, Yarn, Post­gre­SQL, Redis e Nginx.

Per prima cosa è ne­ces­sa­rio in­stal­la­re 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

Post­gre­SQL

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 com­ple­ta­ta l’ope­ra­zio­ne, 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: con­fi­gu­ra­re Post­gre­SQL

Post­gre­SQL è uti­liz­za­to dal server Mastodon per ar­chi­via­re e gestire i dati. Hai già in­stal­la­to il server di database nel passaggio pre­ce­den­te. Passa all’utente Postgres per accedere alla shell di Post­gre­SQL:

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 cor­ri­spon­de­re. Esegui i seguenti comandi nella shell di Post­gre­SQL per creare il database:

CREATE USER mastodon CREATEDB;
\q
sql

Puoi mi­glio­ra­re le pre­sta­zio­ni del tuo database Post­gre­SQL adat­tan­do­lo alle risorse di sistema di­spo­ni­bi­li. Uno strumento utile a questo scopo è il ge­ne­ra­to­re di con­fi­gu­ra­zio­ne pgTune. Inserendo in­for­ma­zio­ni come il numero di core della CPU e la di­men­sio­ne della RAM, riceverai una con­fi­gu­ra­zio­ne ot­ti­miz­za­ta di Post­gre­SQL, spe­ci­fi­ca­bi­le in postgresql.conf.

Quarto passaggio: in­stal­la­re 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 di­pen­den­ze di Ruby e Ja­va­Script:

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

Esegui l’in­stal­la­zio­ne guidata di Mastodon:

RAILS_ENV=production bundle exec rake mastodon:setup
bash

A questo punto ti verranno chieste varie im­po­sta­zio­ni, 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
  • Post­gre­SQL host: default - Invio
  • Post­gre­SQL port: default - Invio
  • Name of Post­gre­SQL database: default - Invio
  • Name of Post­gre­SQL user: default - Invio
  • Password of Post­gre­SQL 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 au­then­ti­ca­tion: plain
  • SMTP OpenSSL verify mode: none
  • E-mail address to send e-mails “from”: so­li­ta­men­te cor­ri­spon­de al login del server SMTP
  • Send a test e-mail with this con­fi­gu­ra­tion right now?: Y
  • Send test e-mail to: inserisci un indirizzo e-mail qualsiasi come de­sti­na­ta­rio
  • Save con­fi­gu­ra­tion?: 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: in­stal­la­re il cer­ti­fi­ca­to SSL

I server VPS di IONOS hanno già un cer­ti­fi­ca­to SSL incluso per im­po­sta­zio­ne pre­de­fi­ni­ta. Tuttavia, se il tuo pacchetto non comprende un cer­ti­fi­ca­to, puoi sem­pli­ce­men­te in­stal­lar­ne uno in un secondo momento.

Puoi ottenere un cer­ti­fi­ca­to SSL gratuito da Let’s Encrypt, un’autorità di cer­ti­fi­ca­zio­ne che offre cer­ti­fi­ca­ti au­to­ma­ti­ci facili da in­stal­la­re e rinnovare.

certbot certonly --nginx -d example.com
bash

Il cer­ti­fi­ca­to viene salvato nella cartella /etc/letsencrypt/live/example.com/ del tuo server Mastodon.

Sesto passaggio: con­fi­gu­ra­re Nginx

Ora devi copiare il modello di con­fi­gu­ra­zio­ne per Nginx dalla directory Mastodon e in­col­lar­lo 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 con­fi­gu­ra­zio­ne in sites-enabled per abi­li­tar­lo e rimuovere la con­fi­gu­ra­zio­ne pre­de­fi­ni­ta:

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

Apri il file di con­fi­gu­ra­zio­ne del tuo server Mastodon:

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

So­sti­tui­sci example.com con il tuo nome di dominio.

Togli i commenti dalle righe ssl_certificate e ssl_certificate_key e so­sti­tui­sci i percorsi con quelli del tuo cer­ti­fi­ca­to SSL. I percorsi rimangono invariati anche se utilizzi il cer­ti­fi­ca­to au­to­fir­ma­to pre­de­fi­ni­to:

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

Dopo aver per­so­na­liz­za­to la con­fi­gu­ra­zio­ne, ricarica Nginx per applicare le modifiche ef­fet­tua­te:

systemctl reload nginx
bash

Settimo passaggio: con­fi­gu­ra­re i servizi Systemd

Se attivi i servizi Systemd, l’ap­pli­ca­zio­ne web Mastodon e le funzioni di streaming in tempo reale vengono avviate au­to­ma­ti­ca­men­te all’avvio del server. Questo ga­ran­ti­sce che il tuo server Mastodon sia con­ti­nua­men­te di­spo­ni­bi­le.

Copia i modelli di servizio Systemd da Mastodon nella directory cor­ri­spon­den­te:

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

Se durante l’ope­ra­zio­ne hai mo­di­fi­ca­to i valori pre­de­fi­ni­ti, 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 con­fi­gu­ra­zio­ne di Systemd per tenere conto dei nuovi modelli di servizio.
  • systemctl enable –now mastodon-web mastodon-sidekiq mastodon-streaming: questi servizi sono re­spon­sa­bi­li dell’ap­pli­ca­zio­ne web, dell’ela­bo­ra­zio­ne in back­ground e delle funzioni di streaming in tempo reale di Mastodon.

Ottavo passaggio: mo­di­fi­ca­re il limite di caratteri

Gestendo il tuo server Mastodon personale, hai la libertà di con­fi­gu­ra­re im­po­sta­zio­ni nor­mal­men­te non possibili sui server pubblici. Un esempio è la re­go­la­zio­ne del limite di caratteri per i messaggi. Per im­po­sta­zio­ne pre­de­fi­ni­ta, il limite è di 500 caratteri, ma è possibile au­men­tar­lo o di­mi­nuir­lo.

Per prima cosa, è ne­ces­sa­rio passare all’utente Mastodon nella console. Dopodiché, devi mo­di­fi­ca­re due file specifici.

Inserisci il valore de­si­de­ra­to 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 con­te­nen­te :languages, :registrations, e integrala ag­giun­gen­do :max_toot_chars, alla fine della stessa.

Inoltre, aggiungi il seguente codice sotto la riga che inizia con private, inserendo il valore de­si­de­ra­to:

def max_toot_chars
    1000
end
ruby

Dopo aver apportato queste modifiche è ne­ces­sa­rio 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: ag­giun­ge­re la funzione di mo­de­ra­zio­ne

La funzione di mo­de­ra­zio­ne, presente alla voce “Im­po­sta­zio­ni > Mo­de­ra­zio­ne” sul tuo server Mastodon, ti permette, in qualità di am­mi­ni­stra­to­re, di mo­ni­to­ra­re e con­trol­la­re i contenuti e l’attività dell’utente sulla tua istanza, al fine di ri­spet­ta­re le linee guida della community e rimuovere i contenuti in­de­si­de­ra­ti.

Hai la pos­si­bi­li­tà di bloccare, sbloccare ed eliminare singoli account, domini, indirizzi IP e server di posta elet­tro­ni­ca. Puoi anche moderare i contenuti pub­bli­ca­ti da utenti ri­muo­ven­do o mo­di­fi­can­do i post inap­pro­pria­ti o offensivi.

Novità: offerta VPS
Il tuo server virtuale a prezzi im­bat­ti­bi­li

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

Vai al menu prin­ci­pa­le