Installazione software · 12 min read · Oct 13, 2025

Come installare la rete sociale Mastodon su Debian 11

Mastodon è una rete sociale gratuita, decentralizzata e open-source simile a Twitter. In Mastodon, gli utenti possono seguire altri utenti e pubblicare messaggi, immagini e video. Ma a differenza di Twitter, non esiste un archivio centrale o un’autorità per i contenuti.

Con l’architettura decentralizzata, Mastodon opera su migliaia di server diversi, ognuno gestito da vari membri della comunità. Puoi creare il tuo server Mastodon sotto il tuo dominio. Puoi anche seguire altri utenti con domini diversi su altri server.

In questo tutorial, installerai Mastodon, una piattaforma di microblogging decentralizzata su un server Debian 11. Con questa guida, configurerai Mastodon con PostgreSQL come server di database e Nginx come reverse proxy. Inoltre, proteggerai l’installazione di Mastodon tramite certificati SSL gratuiti di Letsencrypt.

Prerequisiti

Questa guida presuppone che tu abbia i seguenti requisiti:

  • Un server Debian 11 - questo esempio utilizza l’ultima versione del server Debian 11 con hostname ‘mastodon-server‘ e l’indirizzo IP ‘192.168.5.40‘.
  • Un utente non root con privilegi di amministratore sudo/root.
  • Un nome di dominio puntato e risolto al tuo server Debian pubblico - questo esempio utilizza il sottodominio ‘mastodon.howtoforge.local‘.

Quando hai soddisfatto questi prerequisiti, sei pronto per procedere con l’installazione di Mastodon.

Configurazione dei repository e installazione delle dipendenze

Mastodon è un software gratuito e open-source per eseguire servizi di social networking auto-ospitati simili al servizio Twitter. È principalmente scritto in Ruby, specialmente con il framework web Ruby on Rails e JavaScript con Reac.js e Redux framework.

In questo primo passaggio, configurerai repository aggiuntivi sul tuo sistema e installerai le dipendenze dei pacchetti per l’installazione di Mastodon. Questo include pacchetti come build-essentials per compilare Ruby, PostgreSQL per il server di database, Nginx come server web e reverse proxy, strumento certbot per acquisire certificati SSL tramite Letsencrypt, e il server Redis che sarà utilizzato per la gestione di chiavi-valori e sessioni per Mastodon.

Prima di iniziare, esegui il comando apt qui sotto per installare alcune dipendenze di base che saranno utilizzate per gestire repository e pacchetti.

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

Quando richiesto, inserisci y per confermare e premi INVIO per procedere.

install basic packages

Successivamente, esegui il comando qui sotto per aggiungere il repository Node.js Nodesource. Il pacchetto Node.js qui sarà utilizzato per compilare le risorse statiche di Mastodon. E al momento della scrittura, l’ultima versione di Mastodon richiede almeno Node.js v16.

curl -sL https://deb.nodesource.com/setup_16.x | bash -

Riceverai quindi un output simile al seguente.

add nodejs repo

Dopo aver aggiunto il repository Node.js, configurerai quindi il repository per il gestore di pacchetti Yarn. Questo repository fornisce il pacchetto Yarn che sarà utilizzato per installare le dipendenze JavaScript.

Esegui il comando qui sotto per aggiungere la chiave GPG e il repository del gestore di pacchetti Yarn.

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null  
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

Il terzo repository che aggiungerai è il repository PostgreSQL. Esegui il comando qui sotto per aggiungere il repository PostgreSQL al tuo server Debian.

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

add yarn postgresql repo

Con i repository Node.js, Yarn e PostgreSQL aggiunti, esegui il comando apt qui sotto per aggiornare l’indice dei pacchetti.

sudo apt update

Riceverai un output simile a questo.

update and refresh repo

Infine, esegui il comando apt qui sotto per installare le dipendenze dei pacchetti che saranno utilizzate per installare Mastodon.

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

Inserisci y quando richiesto per la conferma e premi INVIO per procedere.

install dependencies

Con questo, hai installato le dipendenze di base per Mastodon e aggiunto alcuni repository di terze parti al tuo sistema Debian.

Nei passaggi successivi, installerai Ruby tramite rbenv - Il gestore di versioni Ruby.

Installazione di rbenv e Ruby

rbenv è uno strumento di gestione delle versioni per il linguaggio di programmazione Ruby su sistemi simili a Unix. È utile per passare tra più versioni di Ruby sulla stessa macchina e per garantire che ogni progetto su cui stai lavorando venga eseguito sempre sulla versione corretta di Ruby.

Per iniziare, esegui il comando qui sotto per creare un nuovo utente ‘mastodon‘ sul tuo sistema. Questo nuovo utente sarà utilizzato per eseguire i servizi relativi a Mastodon, e il codice sorgente di Mastodon sarà memorizzato nella home directory di questo utente.

sudo adduser --disabled-login mastodon

Durante il processo, ti verrà chiesto di configurare i dettagli dell’utente. Inserisci le informazioni del tuo utente e inserisci y per confermare e premi INVIO.

add new user

Dopo che l’utente ‘mastodon‘ è stato creato, esegui il comando qui sotto per accedere.

su - mastodon

Successivamente, scarica il codice sorgente di rbenv tramite il comando git qui sotto.

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

Quindi esegui il comando qui sotto per installare rbenv sul tuo sistema.

cd ~/.rbenv && src/configure && make -C src

Riceverai un output simile a questo dopo che rbenv è stato installato.

download and install rbenv

Successivamente, esegui il comando qui sotto per aggiungere la directory ‘bin’ di rbenv al PATH di sistema e caricare rbenv ogni volta che l’utente accede a una nuova sessione.

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc  
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

Ora ricarica la tua shell corrente ricaricando il file di configurazione bashrc. Quindi inserisci il comando ‘rbenv’ nella tua shell e premi TAB.

source ~/.bashrc  
rbenv TAB

Nello screenshot seguente, rbenv è installato e ora puoi eseguire il comando rbenv per installare Ruby.

Prima di installare Ruby, devi installare il plugin rbenv chiamato ‘ruby-build’. Questo plugin fornisce strumenti da riga di comando che semplificano l’installazione di Ruby da sorgente, specialmente per sistemi operativi simili a UNIX.

Scarica il plugin ‘ruby-build’ tramite il comando git.

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

download ruby_plugin

Dopo che il plugin ‘ruby-build’ è stato aggiunto, esegui il comando qui sotto per installare Ruby v3.0.4, che è richiesto per l’attuale versione di Mastodon.

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.4

Dopo che l’installazione è terminata, riceverai un output simile a questo.

install ruby

Ora esegui il comando qui sotto per impostare la versione predefinita di Ruby su 3.0.4. Quindi verifica utilizzando il comando ruby come segue. Vedrai che Ruby v3.0.4 è installato sul tuo sistema Debian.

rbenv global 3.0.4  
ruby --version

verify ruby

Infine, devi installare un bundler come gestione dei pacchetti Ruby. Esegui il comando gem qui sotto per installare ‘bundler’.

gem install bundler --no-document

A questo punto, hai completato l’installazione delle dipendenze del pacchetto di Mastodon sul tuo sistema. Hai installato Ruby 3.0.4 tramite il gestore di versioni Ruby rbenv e installato bundler, lo strumento di gestione dei pacchetti Ruby.

Nei passaggi successivi, configurerai l’utente PostgreSQL che sarà utilizzato per l’installazione di Mastodon.

Configurazione del server di database PostgreSQL

In questo passaggio, verificherai il servizio PostgreSQL per assicurarti che il servizio sia abilitato e in esecuzione. Quindi, creerai un nuovo utente/ruolo PostgreSQL ‘mastodon’ tramite la shell di PostgreSQL.

Assicurati di eseguire questi comandi con l’utente/root privilegi.

Prima di iniziare, esegui il comando systemctl qui sotto per assicurarti che il servizio PostgreSQL sia in esecuzione e abilitato.

sudo systemctl is-enabled postgresql  
sudo systemctl status postgresql

Dovresti ricevere un output simile a questo.

verify postgresql

Con PostgreSQL in esecuzione, esegui il comando qui sotto per accedere alla shell di PostgreSQL.

cd /etc/postgresql  
sudo -u postgres psql

Dopo aver effettuato l’accesso alla shell di PostgreSQL, esegui la query PostgreSQL qui sotto per creare un nuovo ruolo/utente ‘mastodon‘. Inoltre, assicurati di cambiare la password predefinita con una nuova password forte.

CREATE USER mastodon CREATEDB;  
ALTER USER mastodon PASSWORD 'p4ssw0rd';

Successivamente, esegui la query qui sotto per assicurarti che il nuovo utente/ruolo PostgreSQL sia stato creato. Quindi inserisci ‘\q‘ per uscire dalla shell di PostgreSQL.

\du  
\q

L’output qui sotto ti mostra che il nuovo utente/ruolo PostgreSQL ‘mastodon’ è stato creato.

setup postgresql role/user

Con l’utente/ruolo PostgreSQL creato, sei pronto per installare Mastodon sul tuo sistema Debian.

Installazione di Mastodon

Installerai e configurerai Mastodon sul tuo server Debian in questo passaggio. Installerai anche le dipendenze Ruby e JavaScript per Mastodon. E infine, inizierai a configurare Mastodon per il tuo deployment, questo include la configurazione del dominio, la configurazione del database e di redis, la configurazione SMTP e anche la configurazione dell’utente amministratore di Mastodon.

Prima di iniziare, accedi all’utente ‘mastodon’ tramite il comando qui sotto.

su - mastodon

Ora scarica il codice sorgente di Mastodon tramite il comando git e cambia il branch all’ultima versione stabile di Mastodon. Al momento della scrittura, la versione stabile di Mastodon è v4.0.2.

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

download mastodon

Successivamente, esegui il comando qui sotto per configurare il deployment di Mastodon e installare le dipendenze Ruby.

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

L’installazione delle dipendenze Ruby di Mastodon richiederà tempo. Di seguito è riportato un output simile che riceverai nel tuo terminale.

setup deployment and install dependencies

Dopo aver installato le dipendenze Ruby di Mastodon, esegui il comando yarn qui sotto per installare le dipendenze JavaScript per Mastodon.

yarn install --pure-lockfile

Riceverai quindi un output simile a questo.

install javascript dependneices

Con le dipendenze Ruby e JavaScript installate, configurerai quindi la tua installazione di Mastodon.

Esegui il comando qui sotto per configurare Mastodon per l’ambiente di produzione.

RAILS_ENV=production bundle exec rake mastodon:setup

Ti verrà chiesto di alcune configurazioni di Mastodon.

  • Il nome di dominio di Mastodon? Questo esempio utilizza il dominio ‘mastodon.howtoforge.local’.
  • Abilitare la modalità utente singolo? Inserisci y.
  • Utilizzare Docker per eseguire Mastodon? Inserisci n per no.
  • Inserisci l’utente e la password di PostgreSQL e assicurati di ricevere il messaggio ‘La configurazione del database funziona!’.
  • Configurazione di Redis? lascialo come predefinito premendo INVIO.
  • Abilitare il caricamento di file nel cloud? Inserisci n per no.
  • Consentire l’invio di email da localhost? Inserisci y per sì per confermare o n per no. Questo dipende dal tuo ambiente, puoi anche utilizzare un server SMTP di terze parti.
  • Salvare la configurazione? Inserisci y per sì.
  • Per la creazione del database. Inserisci y per creare il database di Mastodon.
  • Inserisci y per compilare risorse e file statici per Mastodon.
  • Configurare l’utente amministratore? Inserisci il nuovo utente amministratore e l’email per la tua installazione di Mastodon. E riceverai quindi la password generata automaticamente sullo schermo.

Configurazione di Mastodon per nome di dominio, PostgreSQL, server Redis e server di posta SMTP.

configure mastodon

Mastodon genera risorse e file statici.

generate assets

L’utente amministratore di Mastodon è stato creato e la password è stata generata anche sul terminale.

A questo punto, hai completato l’installazione e la configurazione di Mastodon su Debian 11. Nei passaggi successivi, configurerai Mastodon come servizio systemd.

Esecuzione di Mastodon come servizio Systemd

Per impostazione predefinita, Mastodon fornisce un campione di file di servizio systemd che sono disponibili nella directory ‘/home/mastodon/live/dist/‘.

Esegui il comando qui sotto per copiare i file di servizio di Mastodon nella directory ‘/etc/systemd/system‘.

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

Ora ricarica il gestore systemd per applicare le modifiche su systemd.

sudo systemctl daemon-reload

Dopo di che, avvia e abilita i servizi di Mastodon tramite il comando systemctl qui sotto.

sudo systemctl start mastodon-web mastodon-sidekiq mastodon-streaming  
sudo systemctl enable mastodon-web mastodon-sidekiq mastodon-streaming

setup mastodon systemd

I servizi di Mastodon dovrebbero ora essere attivi e in esecuzione e anche abilitati. Verifica utilizzando il comando systemctl qui sotto.

sudo systemctl status mastodon-web mastodon-sidekiq mastodon-streaming

Riceverai un output simile ai seguenti screenshot.

Il servizio mastodon-web è in esecuzione e abilitato.

mastodon-web service

Il mastodon-sidekiq è anche in esecuzione e abilitato.

mastodon sidekiq service

Il servizio mastodon-streaming è anche in esecuzione e abilitato.

mastodon streaming sertvice

Con tutti i servizi di Mastodon in esecuzione e abilitati, configurerai quindi Nginx come reverse proxy per Mastodon e genererai SSL Letsencrypt.

Configurazione di Nginx come reverse proxy

In questo passaggio, configurerai il server web Nginx come reverse proxy per Mastodon. Genererai anche SSL Letsencrypt tramite il comando certbot e proteggerai Mastodon tramite una connessione sicura HTTPS.

Copia la configurazione predefinita del blocco server Nginx di Mastodon in ‘/etc/nginx/sites-available/mastodon’. Quindi attiva la nuova configurazione del blocco server ‘/etc/nginx/sites-available/mastodon‘.

sudo cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon  
sudo ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon

Successivamente, apri il file di configurazione del blocco server di Mastodon ‘/etc/nginx/sites-available/mastodon’ utilizzando il comando dell’editor nano qui sotto.

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

Cambia il nome di dominio predefinito con il tuo dominio Mastodon. In questo esempio, il dominio per Mastodon è ‘mastodon.howtoforge.local‘.

cambia dominio

Salva il file ed esci dall’editor quando hai finito.

Successivamente, esegui il comando qui sotto per generare certificati SSL da Letsencrypt. Assicurati di cambiare il nome di dominio con il tuo dominio.

sudo certbot --nginx -d mastodon.howtoforge.local

Dopo che i certificati SSL sono stati generati, esegui il comando qui sotto per verificare la configurazione di Nginx. Se ricevi un messaggio di output come ‘test riuscito - sintassi ok‘, significa che hai la configurazione corretta. Quindi, riavvia il servizio Nginx per applicare le nuove modifiche.

sudo nginx -t  
sudo systemctl restart nginx

verify nginx configuration

Infine, esegui il comando systemctl qui sotto per verificare il servizio Nginx e assicurarti che il servizio sia in esecuzione e abilitato.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

Riceverai un output simile a questo - Il servizio Nginx è attualmente in esecuzione e abilitato. Il servizio Nginx verrà eseguito automaticamente all’avvio.

verify nginx

Con tutta la configurazione completata, il tuo Mastodon è ora accessibile tramite il browser web.

Accesso all’installazione di Mastodon

Apri il tuo browser web e visita il nome di dominio della tua installazione di Mastodon (ad es: https://mastodon.howtoforge.local/). Ora vedrai la homepage predefinita di Mastodon.

mastodon homepage

Clicca sul pulsante ‘Accedi‘ per verificare il tuo utente.

Ora inserisci il tuo utente amministratore e la password generata per Mastodon. Quindi clicca su Accedi.

mastodon login page

Vedrai quindi la homepage dell’utente di Mastodon.

mastodon user dashboard

Successivamente, clicca sul menu Preferenze per accedere alla pagina delle preferenze utente. Quindi, clicca sul menu Amministrazione sul lato sinistro. E dovresti ottenere la pagina di amministrazione di Mastodon qui sotto.

Puoi vedere i dettagli dello stack software che stai attualmente utilizzando sulla tua installazione di Mastodon.

mastodon administration

Conclusione

Congratulazioni! Hai ora completato l’installazione della piattaforma di microblogging Mastodon su un server Debian 11. Hai installato Mastodon con PostgreSQL come server di database e Nginx come reverse proxy. Hai anche protetto il deployment di Mastodon tramite connessioni HTTPS sicure.

Dopo tutta l’installazione, ora puoi configurare la regola di Mastodon per il supporto della federazione. Puoi anche aggiungere un ulteriore livello di sicurezza alla tua installazione di Mastodon.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.