an ActivityPub testing area in Flask
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
manetta 72fa9c8c21 debug 11 months ago
static/icons first push to the git 3 years ago
templates first push to the git 3 years ago
.gitignore returning to this prototype, trying to run it again 11 months ago
README.md returning to this prototype, trying to run it again 11 months ago
requirements.txt returning to this prototype, trying to run it again 11 months ago
run.py debug 11 months ago

README.md

AP test in Flask

A basic ActivityPub server written in Flask, that listens to follow requests, based on this tutorial: https://blog.joinmastodon.org/2018/06/how-to-implement-a-basic-activitypub-server/

This is a testing area :), to see if it is possible to use Python and Flask to write a small server that speaks ActivityPub.

This repository was sparked from a curiosity in federation and light-weight (static) website making.

Operating on the level of the ActivityPub protocol will hopefully give some insights in the way that networks on the Fediverse federate with each other.

  • What are the minimal requirements to run an Activity Pub server?
  • How could a static site federate its content with the Fediverse?
  • How are ActivityPub feeds similar and different from RSS feeds?
  • How can such server be used? What kind of publishing tools can be imagined?
  • What ActivityPub "objects" (is that the right term?) can we try out and use, next to the commonly used "Note" object?

Install this prototype

When you run this prototype on a server, you could connect to the Fediverse.

Prepare your server

For this you need to following:

  • a subdomain for the server, for example: ap.example.com
  • a SSL certificate for this domain, for which you could use: certbot from https://letsencrypt.org/
  • a reverse proxy configuration, relaying the subdomain to the Flask application running on port 5010 (by default)

Once this is set up, you can install this prototype.

Install the prototype

Make a virtual environment:

$ python3 -m venv FOLDERNAME

Activate the environment:

$ source FOLDERNAME/bin/activate

Install the dependencies:

$ pip install -r requirements.txt

Run the Flask application:

$ python3 run.py