Join the chat at

pylodon image courtesy of @banjofox


Create a virtualenv (e.g. virtualenv -p python3 venv), activate it (e.g. . venv/bin/activate), and then pip install -r requirements.txt. (Make sure it's a Python3 environment; some of our dependencies require it.)

Create an account with MongoDB's cloud service; it's free for a very small cluster. Set up an admin user with a separate password, create an IP whitelist and connect to the database cluster to make sure it's working. I use a blanket whitelist, and Atlas complains at me every time. (Install mongodb to your machine, with Homebrew, for example.)



Update wherever the information looks inadequate (e.g. anything that says should have your own domain).

Create a .env file (or otherwise configure environment variables), based off of the included .env.example. This is conveniently loaded in by python-dotenv.

For local development, you probably want to leave SSLify disabled (STRICT_HTTPS in, to access the server over HTTP rather than HTTPS. The STRICT_HEADERS config variable is also disabled by default, so that you don't have to worry about content headers to debug the API server.

Run it!

$ . venv/bin/activate
$ gunicorn run:app


Flask-based ActivityPub server

Pylodon Info

⭐ Stars 78
🔗 Source Code
🕒 Last Update 4 months ago
🕒 Created 5 years ago
🐞 Open Issues 8
➗ Star-Issue Ratio 10
😎 Author rowanlupton