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 5 months ago
static/icons first push to the git 2 years ago
templates first push to the git 2 years ago
.gitignore returning to this prototype, trying to run it again 5 months ago
README.md returning to this prototype, trying to run it again 5 months ago
requirements.txt returning to this prototype, trying to run it again 5 months ago
run.py debug 5 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