Skip to content

Latest commit

 

History

History
99 lines (66 loc) · 2.67 KB

README.md

File metadata and controls

99 lines (66 loc) · 2.67 KB

Fediverse Playground

Run multiple Fediverse Software locally, for development

Note that this is not necessarily a production ready system, it's very likely some things are unsafely configured

A common problem when developing federated software is the need to test for compatibility with other such software. This leads developers to test their software against semi-random publicly available instances of their or other software. This is not ideal since then developers may not have access to logs, or to make changes, which slows down development. This project aims to solve that by allowing you to run as many copies of each software locally.

Supported software

  • GNU social v3
  • GNU social v2 (WIP)

Feel free to contribute your software! More will be added, such as GoToSocial, Lemmy or Mastodon

Setup ('installation')

This project uses Python for the configuration, and docker and/or docker-compose to run the containers.

This project can set up it's own dependencies in a Python Virtual Environment. To do this, run

./configure

Which will afterwards launch the configuration menu. You can safely use this everytime

Alternatively, if you want to set it up on your own, follow the next section

Manual setup

It's recommended you create a Virtual Environment with:

python -m venv venv

and then you can run

source venv/bin/activate

If you prefer to use another method, the following dependencies are required:

- whiptail

which can be installed with

pip install whiptail-dialog

Then, run

python menu.py

And follow the prompts. You can add and edit the instances you selected, which get saved such that if you exit, you can rerun configure at any point, to further modify your configuration, as well as dump the updated docker-compose.yml file.

After configuring the instances you want, you need to select the 'Clone Software' option.

Simply add as many instances of each software as you desire and then run

docker-compose up -d

or

docker compose up -d

in newer versions of docker

The instances you configured should all be accessible in your browser under the domains you specified (you may need to edit your /etc/hosts if you didn't use .localhost domains)

Contributing

Define your software in software/ and it should automatically show up in the interface and be configured correctly. Currently, this tool supports only nginx, postgres and redis for shared services. Feel free to add your dependencies to software/services.py if it makes sense for them to be shared among multiple instances and with other software.