minifedi/README.md

71 lines
3.3 KiB
Markdown
Raw Normal View History

2023-07-13 02:12:36 +00:00
# Minifedi
Minifedi is a tool to quickly spin up a bunch of ActivityPub servers for local testing.
2023-07-14 04:21:21 +00:00
Minifedi is entirely self-contained and needs no changes to your system configuration besides installing Nix; you can install it with a git clone, delete it with `rm -rf`, and your system will be exactly the way it was before.
2023-07-13 02:33:04 +00:00
2023-07-14 04:21:21 +00:00
## System Requirements
- macOS or Linux (any distribution). Tested on x86_64, aarch64 should work. Other architectues probably won't due to poor Nix support, unfortunately.
- Windows isn't natively supported, but might work under WSL.
- A recent version of [Nix](https://nixos.org).
- This doesn't mean you need to be on NixOS; Nix can be installed on more or less any distribution, and is happy to do its own thing without interfering with your system.
- ~4GB free on disk.
- ~4GB free in /tmp.
- On many Linux distributions, this means you'll need ~8GB of RAM.
- You might be able to get away with less if you disable GoToSocial.
- Ports 80 and 443 free.
- This is required because some (all) fedi software is only willing to federate with servers on the standard ports.
- macOS lets any user listen on these ports. On Linux, Minifedi will use sudo to gain the capability required to listen on these ports, then immediately switch back to your user and relinquish all other capabilties.
## Warnings
Minifedi is very new software. I'm fairly sure it won't break your system (it's designed very specifically to not do anything that possibly could) but it might not work either.
Minifedi is designed for testing only. The assumption is you'll happily throw out everything stored in it when you're done. Don't store anything you care about in an instance run by Minifedi.
2023-07-13 02:33:04 +00:00
## Getting Started
2023-07-14 04:21:21 +00:00
Minifedi's goal is to "just work" on every machine. If the instructions below fail for you, please file an issue; I'll fix it if at all possible.
2023-07-13 02:33:04 +00:00
2023-07-14 04:21:21 +00:00
1. Install [Nix](https://nixos.org), if you haven't.
- If you install Nix through your OS package manager, you may need to add yourself to the `nix-users` group and/or ensure the `nix-daemon` service is enabled.
2. ```
git clone https://github.com/Gaelan/minifedi.git
cd minifedi
```
3. If you'd like, edit `config.nix` to customize which instances you get. By default, you get one each of Mastodon, Glitch, Akkoma, and GoToSocial, but you're welcome to disable some or run multiple copies of the same type.
4. `./minifedi start`
5. Wait for stuff to build then start up; this should take 20-30 minutes.
6. Your instances should be running and accessible at INSTANCENAME.lvh.me (e.g. https://mastodon.lvh.me).
Each instance is created by default with five users:
- username `a`, email `a@example.com`, password `MiniFediA1!`, admin
- username `b`, email `b@example.com`, password `MiniFediB1!`
- username `c`, email `c@example.com`, password `MiniFediC1!`
- username `d`, email `d@example.com`, password `MiniFediD1!`
- username `e`, email `e@example.com`, password `MiniFediE1!`
Enjoy your testing!
2023-07-13 02:33:04 +00:00
## Supported Software
2023-07-14 04:21:21 +00:00
Minifedi currently supports the following:
2023-07-13 02:33:04 +00:00
2023-07-14 04:21:21 +00:00
- Mastodon
2023-07-13 02:33:04 +00:00
- Akkoma
- GoToSocial
2023-07-14 04:21:21 +00:00
Forks of the above should work fine as well, as long as they haven't changed anything about the build, installation, or configuration process.
## How do I…
### Reset Minifedi, restoring every instance to its default state?
```sh
rm -r data/
```
### Use a different version (including a fork) of