Beiträge in Mastodon können in der aktuellen Standardeinstellung maximal 500 Zeichen lang sein. Es gibt in den Settings keine Möglichkeit, diese Limitierung aufzuheben. Andere Dienste sind da flexibler. Doch auch Mastodon ist unter der Haube in der Lage, wesentliche längere Beiträge zu verfassen. Ob es eine technische Obergrenze gibt, weiß ich nicht, aber zumindest meine persönliche Vorgabe von 12345 Zeichen funktioniert.

Da ich eine eigene Instanz betreibe und die notwendigen Änderungen nach jedem Upgrade aufs Neue angehen muss, habe ich hier eine Übersicht für mich und alle interessierten Menschen da draußen zusammengestellt. Alle Angaben beziehen sich auf folgende Konstellation und die Gegebenheiten auf meiner Instanz:

  • Yunohost 11.2.10 (stable)
  • Mastodon 4.2.7-ynh1

Als Grundlage verwende ich die Anleitung von Drakfrid.

Hier nun die notwendigen Schritte. Ich werde diese aktualisieren, sollte ich bei einem neuen Upgrade auf Änderungen stoßen.


Nach dem Upgrade der Mastodoninstanz per SSH auf dem Server anmelden, per su zu Root und anschließend zum User Mastodon wechseln.

/home/admin$ su
su mastodon -s /bin/bash

In das Mastodonverzeichnis wechseln.

cd /var/www/mastodon
nano live/app/javascript/mastodon/features/compose/components/compose_form.jsx

In dieser Datei steht an zwei Stellen eine 500, diese wird auf die gewünschte Zeichenzahl geändert.

nano live/app/validators/status_length_validator.rb

Hier gibt es nur eine 500, hier wird wieder die geänderte Zeichenanzahl eingetragen.

nano live/app/serializers/rest/instance_serializer.rb

Relativ weit am Anfang steht eine Sektion include RoutingHelper.

  include RoutingHelper

  attributes :domain, :title, :version, :source_url, :description,
             :usage, :thumbnail, :languages, :configuration,
             :registrations

Diese muss um :max_toot_chars erweitert werden.

  include RoutingHelper

  attributes :domain, :title, :version, :source_url, :description,
             :usage, :thumbnail, :languages, :configuration,
             :registrations, :max_toot_chars

Am Ende der Datei gibt es eine private Zeile.

  private

  def registrations_enabled?
    Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode
  end

Vor dieser Zeile müssen die vorher eingefügten max_toot_chars definiert werden.

  def max_toot_chars
    12345
  end

  private

Nun in das live Verzeichnis wechseln und Mastodon kompilieren.

cd live
RAILS_ENV=production PATH=/opt/rbenv/versions/mastodon/bin:/opt/node_n/n/versions/node/16/bin:/opt/node_n/bin:/opt/rbenv/shims:/opt/rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so bin/bundle exec rails assets:precompile

Danach zurück auf Root wechseln und die Instanz neu starten.

exit
systemctl restart mastodon-sidekiq
systemctl reload mastodon-web
systemctl restart mastodon-streaming

Fertig. :-)