# AP test in Flask
A basic ActivityPub server written in Flask, that listens to follow requests, based on this tutorial:
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
* 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`