Neuigkeiten | Termine | Blog

Wissenswertes

Eigenen Mastodon Server installieren

Warum Mastodon?

Warum ein eigener Mastodon Server dir viele Vorteile bringt und wie du deinen eigene Instanz installierst, stellen wir dir hier näher vor. 

Mastodon ist Teil des sogenannten “Fediverse”. Die Idee dahinter ist, ein Benutzerkonto auf einer beliebigen Plattform im Fediverse anzulegen und sich darüber mit Nutzern auf allen anderen Plattformen austauschen zu können – ohne dort ein weiteres Konto anlegen zu müssen. Ermöglicht wird dies, da die einzelnen Plattformen mittels bestimmter Kommunikationsprotokolle miteinander verbunden sind, so dass die föderierte Identität und Inhalte jeweils auf andere verbundene Plattformen und Instanzen verteilt werden.

Vorteile gegenüber z.B. Twitter oder Facebook

Die oben beschriebene Praxis steht im Gegensatz zu geschlossenen sozialen Netzwerken wie Twitter oder Facebook, bei denen Benutzer ein eigenes Benutzerkonto in jedem der Netzwerke benötigen, wenn sie mit anderen Nutzern des jeweiligen Netzwerks interagieren möchten. Außerdem ist der Content ausschließlich User generiert und folgt keinem Algorithmus, der uns vorschlägt was wir vermeintlich sehen wollen. Mit dem eigenen Mastodon Server kommt zusätzlich der Faktor der Unabhängigkeit hinzu, was ein großer Vorteil ist. 

 

Wie du deine eigenen Mastodon Instanz installierst und konfigurierst, zeigen wir dir nachfolgend.

Voraussetzungen für deinen Mastodon Server:

  • Ubuntu 22.04 oder Debian 12 mit root Zugang
  • Domain, unter der der Server erreichbar sein soll (example.com)
  • Email Server (kann auch lokal laufen)
 

Einrichtung deines Mastodon Servers:

Repositories und Abhängigkeiten (ausführen als root user)

System repositories

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

Installation Node.js

				
					mkdir -p /etc/apt/keyrings

curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg

NODE_MAJOR=20

echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list

apt update

apt install nodejs -y
				
			

PostgreSQL installieren

				
					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
				
			

System Packages installieren

				
					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
				
			

Yarn

				
					corepack enable
  yarn set version classic
				
			

Installation Ruby

rbenv muss für einen einzelnen Linux-Benutzer installiert werden, deshalb legen wir erstmal den User an, unter dem Mastodon laufen soll.

				
					useradd -m mastodon
  su - mastodon
				
			
				
					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

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.2.2

rbenv global 3.2.2

gem install bundler --no-document

exit
				
			

PostgreSQL Benutzer anlegen

				
					sudo -o postgres psql -c "CREATE USER mastodon CREATEDB"
				
			

Mastodon installieren

				
					su - mastodon
				
			
				
					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)

bundle config deployment 'true'

bundle config without 'development test'

bundle install -j$(getconf _NPROCESSORS_ONLN)

yarn install --pure-lockfile
				
			

Mastodon Config File generieren

				
					RAILS_ENV=production bundle exec rake mastodon:setup; exit
				
			

Nginx einrichten

Mastodon bringt gleich eine passende Nginx Konfiguration mit, die wie folgt aktiviert wird:

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

ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon
				
			

Die Nginx Config unter: “/etc/nginx/sites-available/mastodon” sollte jetzt noch angepasst werden, um den Webserver auch von außen erreichbar zu machen und eventuell vorhandene SSL Zertifikate einzubinden.

				
					vim /etc/nginx/sites-available/mastodon
				
			
				
					nginx -t &&  nginx -s reload
				
			

Systemd

Zum Schluss können die von Mastodon bereitgestellten Systemd Units kopiert und angepasst werden.

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

noch einmal kontrollieren, ob alles richtig konfiguriert ist

				
					vim /etc/systemd/system/mastodon-*.service
				
			

und die Services enablen und starten

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

Viel Spaß mit der neuen Mastodon Instanz!

Möchtest du dich nicht selbst um Installation, Konfiguration und den Betrieb kümmern, können wir dir Mastodon als vollständig gemanagten Service bei uns oder auch in deiner Infrastruktur anbieten.

Mastodon erreichst du unter: https://mastodon.social/