Ga naar hoofdinhoud

Mastodon op een Linux Server Installeren - Start Je Eigen Social Network

De ideale producten voor deze handleiding

Begin meteen — bestel het passende product en volg deze handleiding stap voor stap.

Introductie

Mastodon is gratis en open-source software om zelf-gehoste social networking diensten te draaien.

Het heeft microblogging features vergelijkbaar met X (voorheen Twitter), aangeboden door een groot aantal onafhankelijk draaiende nodes, ook wel instances genoemd,
elk met hun eigen gedragscode, servicevoorwaarden, privacybeleid, privacy-instellingen en moderatiebeleid.

info

Deze gids richt zich op installatie op een Debian-gebaseerde distro. Voorbeelden zijn Debian en Ubuntu. De gids verschilt afhankelijk van welk OS je gebruikt.

Systeemvereisten

Wil je een Mastodon instance op je server opzetten, dan moet je aan een paar voorwaarden voldoen:

  • Domein
  • Linux server
  • Mailserver

Je Systeem Voorbereiden

Het is aan te raden om vooraf wachtwoord-login via SSH uit te schakelen, want dit is een beveiligingsrisico op servers die vanaf internet bereikbaar zijn.
Dit doe je in het webinterface van je server onder Informatie -> Toegang & Beveiliging -> Wachtwoord-login uitschakelen

Daarna update je je pakketten met het volgende commando:

apt update && apt upgrade -y

Vervolgens installeer je de dependencies van Mastodon:

# Systeem repositories
apt install -y curl wget gnupg apt-transport-https lsb-release ca-certificates
# Node.JS
curl -sL https://deb.nodesource.com/setup_16.x | 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

Als de dependencies geïnstalleerd zijn, installeren we de benodigde systeem pakketten met deze twee commando’s:

apt update
apt install -y \
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 redis-server redis-tools postgresql postgresql-contrib \
certbot python3-certbot-nginx libidn11-dev libicu-dev libjemalloc-dev

Laat de installatie even lopen, dat kan wat tijd kosten. Daarna configureren we yarn, de package manager voor Node.JS:

corepack enable
yarn set version stable

Ruby Installeren

We maken een aparte gebruiker aan, dat maakt het beheren van Ruby-versies veel makkelijker. Maak eerst een gebruiker aan met de naam mastodon, zonder login. Daarna switch je naar die gebruiker:

# Velden leeg laten is prima
adduser --disabled-login mastodon
su - mastodon

Nu installeren we de Ruby manager rbenv, die het beheren van Ruby-versies een stuk eenvoudiger maakt:

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv && src/configure && make -C src
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

Als dat klaar is, installeer je Ruby en bundler met:

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

Dit kan even duren, dus pak een kop koffie of thee. Daarna kun je terug naar de root gebruiker met exit.

PostgreSQL Configureren

Mastodon gebruikt PostgreSQL als database. Configureer het zo:

sudo -u postgres psql

In de PostgreSQL prompt voer je in:

CREATE USER mastodon CREATEDB;
\q

Mastodon Installeren

Switch weer naar de mastodon gebruiker:

su - mastodon

Download de nieuwste Mastodon versie met git:

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

Installeer daarna de laatste Ruby en Javascript dependencies:

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

Maak je Mastodon configuratiebestand aan met:

RAILS_ENV=production bundle exec rake mastodon:setup
info

Als je database setup faalt, log dan in op postgres met sudo -u postgres psql en volg deze handleiding:

https://gist.github.com/amolkhanorkar/8706915

Ga daarna weer terug naar root met exit.

Webserver Configureren

Nu het lastige deel: je webserver instellen. Maak eerst een A-Record en/of AAAA-Record aan in je DNS die direct naar je server verwijst. Je kunt ook het root-record naar je server laten wijzen.

Kopieer en activeer daarna de Mastodon webserver configuratie met:

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

Open /etc/nginx/sites-available/mastodon met een editor zoals vim of nano en vervang example.com door jouw domein.
Vervolgens vraag je een SSL-certificaat aan met:

certbot --nginx -d <jouw domein>

Vul je domein in. Je krijgt een paar vragen over credentials. Aan het einde wordt gevraagd of je http automatisch naar https wilt laten doorverwijzen, wij raden aan dit aan te zetten.

Mastodon Service Aanmaken

Tot slot maken we een systemd service aan voor Mastodon. Kopieer de standaard service configuratie naar de juiste map:

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

Activeer en start de services met:

systemctl daemon-reload
systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming

Na een reboot is je setup klaar. Veel plezier met je eigen Mastodon instance!