Skip to content

Mastodon 4.2.x

The Mastodon containers are based on the images from the docker hub tootsuite. For general information on how to run mastodon, please consult the Mastodon documentation. One should note that Mastodon is patched here to work with HTTP and provide a simple password.

Access Data

Property Value
Container name mastodon42web
Username hippo
Email hippo@mastodon.localhost
Password password
Access Token token

Setup

You can install the Fediverse pasture via

git clone https://codeberg.org/helge/funfedidev.git
cd funfedidev/fediverse-pasture

Then create the initial database and user via

docker compose --file mastodon42.yml --profile init up mastodon42init

Then by running

docker compose --file mastodon42.yml --profile nginx up

and adding

/etc/hosts
127.0.0.1         mastodon42web

to your /etc/hosts file, you will be able to open mastodon under http://mastodon42web/.

Warning

First opening the Web UI currently takes a bit of time due to the need for webpack to compile something. This will hopefully be fixed in a future version.

Authorized Fetch

The setting of AUTHORIZED_FETCH changes the federation behavior of Mastodon. Basically, with AUTHORIZED_FETCH=true more requests are required to have a valid HTTP Signature and one can thus check that the requester is allowed to access said resource (or disallowed by being on a blocklist).

The setting of AUTHORIZED_FETCH can be changed by editing the file dockerfiles/mastodon42/mastodon.sh.

Note

A better solution should be found. It would be best if this didn’t require a new docker compose YAML file. There is an experimental mastodon42web_af in the compose file. Unfortunately, I haven’t spend the time yet to check everything works as expected.

Becoming the owner

In order to make hippo the owner of the instance run

docker compose --file mastodon42.yml --profile nginx run mastodon42web\
     tootctl accounts modify hippo --role Owner

Patches

Mastodon has to be patched to be used in the Fediverse Pasture, one does

  • Adjust the logic of account creation so a default password is used instead of a randomly generated one.
  • Adjust the Webfinger lookup, so that http is used instead of https.