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.

51 lines
1.7 KiB

# 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`