Skip to main content

f2ap

f2ap (Feed to ActivityPub) is a web application that uses the RSS/Atom feed of your website to expose it on the Fediverse through ActivityPub.

How to use it

Prerequisite

The only prerequisite to use f2ap is that your website provides an RSS or Atom feed. If you don't have one yet, you might want to make it first, as it is a Web standard that allows your visitors to stay in touch with your content with any compatible application. Plus, it is very easy to implement.

Installation

With PyPI

Required: Python 3.9+

Install the f2ap package:

pip install f2ap

The application will be runnable with the f2ap command. You will need to use a runner like systemd to start it as a service.

Docker

Required: Docker

Grab the image from Docker Hub:

docker pull deuchnord/f2ap

You can get a specific version with the following syntax: deuchnord/f2ap:<tag>, where tag is one of the following (i, j and k being numbers):

  • latest: the last version (default)
  • i: the last version of the i major version
  • i.j: the last version of the i.j minor version
  • i.j.k: the version i.j.k
  • unstable: the last commit in the Git history. It is heavily discouraged to use it in production, as it can have bugs, crash, put fire in your house or, worse, kill your kitten.
Docker-Compose

If you want to use f2ap through Docker-Compose, check the docker-compose.dist.yml for an example of configuration.

Configuration

To make f2ap work, you will need to write a configuration file that will define its behavior. It is a boring simple TOML file. You can find a self-documented file in config.dist.toml. If you run f2ap with Docker, make sure to name it config.toml and to place it in the /data folder.

Configuring the server

To provide a better integration to your website, you are encouraged to add some configuration lines to your server. This will ensure the social applications will correctly discover your website's ActivityPub API.

Nginx

Edit your configuration file and add the following lines to your server section. Don't forget to adapt:

  • the IP address on the proxy_pass lines to match f2ap's configuration;
  • the <username> part in the last location to match the username of your actor.
server {
    ## ...
    
    # Propagate the domain name to f2ap
    proxy_set_header Host $host;
    
    # The webfinger allows the social applications to find out that your website serves an ActivityPub API.
    location /.well-known/webfinger {
        proxy_pass http://127.0.0.1:8000;
    }
    
    location / {
        # Match any request asking for an ActivityPub content
        if ( $http_accept ~ .*application/activity\+json.* ) {
            proxy_pass http://127.0.0.1:8000;
        }

        # Match any request sending an ActivityPub content
        if ( $http_content_type = "application/activity+json" ) {
            proxy_pass http://127.0.0.1:8000;
        }
    }
    
    # Exposes the avatar and the header of the profile
    # Change the <username> here with the username of the actor you expose (for instance: blog)
    location ~ /actors/<username>/(avatar|header) {
        proxy_pass http://127.0.0.1:8000;
    }
    
    ## ... 
}

Limitations

Because f2ap uses your RSS/Atom feed to connect your website to ActivityPub, the time before a new entry pops on the Fediverse will depend on the refresh frequency. You might want to choose a frequency that matches your update regularity.

If this behavior is a problem, f2ap is probably not the right solution for you, and you might need to integrate ActivityPub to your application on your own.

Metadata

Release files for f2ap 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for f2ap 0.1.0
File Size Uploaded
f2ap-0.1.0.tar.gz 27.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for f2ap 0.1.0
File Interpreter ABI Platform
f2ap-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 57.8 kB

Release files / f2ap-0.1.0.tar.gz

Download URL f2ap-0.1.0.tar.gz
Size 27.9 kB
Tags Source
SHA-256 checksum
How to use checksums
733ca10f5554c498ff52f28656f8a681adbdf61ad7c65c65706ef225f3925a06
BLAKE2b-256 checksum
How to use checksums
1feb5939b7fdc0a2776e3918885d219607ac1a15028614b319dd527b87788069
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.1 CPython/3.11.1 Linux/5.15.0-1024-azure

Release files / f2ap-0.1.0-py3-none-any.whl

Download URL f2ap-0.1.0-py3-none-any.whl
Size 29.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4be920fbba96837f26eba7e6315cd042a8abfdb01de1143243cf35fd1519b647
BLAKE2b-256 checksum
How to use checksums
599aa5800f2c911ce7b5033717d8d482d97e8833000c3c30a40f4e3afb524ed2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.1 CPython/3.11.1 Linux/5.15.0-1024-azure

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page