containers.funfedi.dev
The following docker contains are intended to be used through the fediverse pasture. Together these two projects provide locally runnable versions of some popular Fediverse applications.
The focus here is not on being able to run them with a single command. This means that
- A default user will be created
- Often an api key is generated by default
The default usernames are documented on the pasture.
The List
This lists the containers currently build. download (csv).
Application | latest version | other versions |
---|---|---|
akkoma | v3.15.2 | v3.15.1, v3.14.1, v3.13.3, v3.13.2, v3.12.1, v3.11.0, v3.10.4 |
bovine | 0.5.10 | |
cattle_grid | 0.2.0a12 | |
friendica | 2024.12 | |
gancio | 1.27.0 | 1.26.1, 1.25.1, 1.24.3, 1.23.1 |
gotosocial | 0.19.1 | 0.18.3, 0.18.2, 0.18.1, 0.18.0, 0.17.4, 0.17.3, 0.17.1, 0.14.0, 0.13.3 |
hollo | 0.6.10 | 0.6.8, 0.6.7, 0.6.6, 0.6.5, 0.6.4, 0.6.3, 0.6.2, 0.6.1, 0.5.6, 0.5.5, 0.5.4, 0.4.4, 0.4.3, 0.4.2, 0.3.4, 0.3.3, 0.3.2, 0.3.0, 0.2.3, 0.2.2, 0.2.0, 0.1.6, 0.1.3 |
mastodon | v4.4.3 | v4.4.2, v4.4.1, v4.3.9, v4.3.8, v4.3.7, v4.3.6, v4.3.5, v4.3.4, v4.3.3, v4.3.2, v4.3.1, v4.3.0, v4.2.13, v4.2.12, v4.2.11, v4.2.10, v4.2.8, v4.2.7, v4.2.4, v4.1.16, v4.1.15, v4.1.13 |
mbin | v1.7.4 | v1.7.2 |
misskey | 2025.7.0 | 2025.6.3, 2025.6.2, 2025.6.1, 2025.6.0, 2025.5.0, 2025.4.0, 2025.3.1, 2025.2.1, 2025.2.0, 2025.1.0, 2024.11.0, 2024.10.1, 2024.10.0, 2024.9.0, 2024.8.0, 2024.7.0, 2024.3.1, 2024.2.0 |
mitra | v4.9.0 | v4.8.0, v4.7.0, v4.6.0, v4.5.1, v4.5.0, v4.3.1, v3.22.0, v3.21.0, v3.20.1, v3.20.0, v3.19.0, v3.18.0, v3.17.0, v3.16.0, v3.14.0, v3.13.0, v3.12.0, v3.11.0, v3.10.0, v3.9.0, v3.8.0, v3.7.1, v3.6.0, v3.5.0, v3.4.0, v3.3.0, v3.2.0, v3.1.0, v3.0.0, v2.15.1, v2.14.0, v2.12.0, v2.11.0, v2.10.0, v2.9.0 |
mobilizon | 5.1.1 | |
pasture | 0.2.14 | 0.2.13, 0.2.12, 0.2.11, 0.2.10, 0.2.9, 0.2.8, 0.2.7, 0.2.6, 0.2.5 |
pleroma | v2.9.1 | v2.9.0, v2.7.1, v2.7.0, v2.6.2 |
sharkey | 2025.4.4 | 2025.2.2, 2024.11.2, 2024.11.1, 2024.9.4, 2024.9.3, 2024.9.2, 2024.9.1, 2024.8.2, 2024.8.1, 2024.5.1, 2024.3.2, 2024.3.1, 2023.12.0 |
snac2 | 2.82 | 2.81, 2.80, 2.79, 2.78, 2.77, 2.74, 2.73, 2.72, 2.71, 2.70, 2.69, 2.68, 2.67, 2.66, 2.65, 2.64, 2.63, 2.62, 2.61, 2.60, 2.59, 2.58 |
Building containers
The container versions are recorded in the containers.csv
file in the repository.
It can be downloaded above. The script run_update.sh
checks the available versions
and builds new containers, when new versions are available. The available containers
are retrieved through
config_docker = [
("bleakfuture0", "mitra"),
("tootsuite", "mastodon"),
("superseriousbusiness", "gotosocial"),
# See https://codeberg.org/funfedidev/containers/issues/134
# ("misskey", "misskey"),
("cisti", "gancio"),
]
config_rss = [
("akkoma", "https://akkoma.dev/AkkomaGang/akkoma/tags.rss"),
(
"sharkey",
"https://activitypub.software/TransFem-org/Sharkey/-/tags?format=atom",
),
("pleroma", "https://git.pleroma.social/pleroma/pleroma/-/releases.atom"),
("snac2", "https://codeberg.org/grunfink/snac2/tags.rss"),
("hollo", "https://github.com/fedify-dev/hollo/tags.atom"),
]
After adding new versions and updating containers.csv
in the repository,
an announcement should be send out by acct:funfedi@bovine.social
.
Adding an application
These containers are used in automation to build data.funfedi.dev and then the information in the support tables. For this to work, one needs at least one actor create in the Fediverse applications. So for each application, one can say that after running
docker compose -f fediverse_pasture/application.yml up --wait
an actor with actor uri acct:user@application
is created.
The current expectation is that the container runs in the
fediverse-pasture
network.
Verifying the actor is created
One can verify the existence of acct:user@application
via
docker run --network fediverse-pasture\
-v ./tools:/opt --workdir /opt\
helgekr/bovine python -mwebfinger acct:user@application
By inspecting verify.sh
being called by run_update.sh
, one can see that this behavior is used to check that containers are build correctly.
Verifying a message can be send
Following the instructions here, one can send a message to your instance by first starting a one-actor container via
docker run --rm --name pasture\
--hostname pasture-one-actor --network fediverse-pasture\
helgekr/pasture one_actor
and then sending a message via
docker exec pasture ./send acct:user@domain
In order to build the support tables one now only needs the ability to retrieve this message via an API.
The --wait flag
The startup of containers takes time. So in order to ensure that everything is up and running, docker compose healthchecks are used. For example, one would use
healthcheck:
test: curl --fail localhost || exit 1
interval: 10s
timeout: 10s
retries: 10
to check that a HTTP server has started correctly. Furthermore, for dependencies, one can wait for them to be ready via
depends_on:
database: { condition: service_healthy }