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/