The process behind the docker containers is currently being reworked. Please see Quick Start for the current version.
The Fediverse Pasture is meant as a docker environment to make testing Fediverse applications easier. The Fediverse pasture uses docker compose to manage the setup and running of various services.
There are two main components:
- The actual pasture defined in
pasture.ymlthat contains tooling that enables the testing and debugging of Fediverse applications.
- Compose files and configurations for other Fediverse applications,
mastodon41.ymldefines a configuration for Mastodon 4.1.x.
If an application is missing, feel free to contribute it.
The basic installation is done by cloning the git repository and then by first running an init step, and then starting the service. For example for the main pasture, one would first run
Then one can start the pasture via
The steps for the individual applications is similar with replacing pasture by the application name. For most of the Fediverse applications an additional step of initialization is necessary. for the pasture, it would have the form
Connecting your application
When you are building an application, you will want to connect it to the Fediverse Pasture in order to test it. This can be achieved by providing a deployment of your application using docker, and then modifying your docker compose file to add
This will enable you to make requests to and from your application to the Fediverse pasture.
Alternatively, you can connect a docker container via the command line via
Used file structure
The structure of the fediverse pasture folder is as follows
├── ... further docker compose files
│ ├── pasture
│ │ ├── Dockerfile
│ │ ├── ... Further files
│ └── ... Further applications
│ ├── pasture
│ │ └── ... data used by docker containers
│ └── ... further data directories
├── ... application data for usage with pasture_runner
This means that
dockerfiles contains information on how to build
the containers in each docker compose file. Building containers is necessary
as applications need to be patched to be usable through HTTP.
volumes contains the run time data for the containers. For example
the database containers store their data there. So deleting
is a way to reset the corresponding application. Furthermore, it might
be necessary to clear the browser data for the corresponding domain,
work contains the scripts to build the Support Tables.