Ariadne's (Kaniini's) no-nonsense activitypub implementation. Bound to really kick some serious ass too. Was originally located at but is now defunct.
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.
Ariadne Conill 1270a7c115 activity streams: fix complexity protection 1 month ago
doc FAQ: be a little more diplomatic :) 3 months ago
jejune activity streams: fix complexity protection 1 month ago
jejune_tests formatter: implement tests for format_mentions 2 months ago
static update jejune-client 2 months ago
store/upload implement avatar uploading 3 months ago
.gitignore add store directory to gitignore 3 months ago Jejune milestone 2 (version 0.0.2). 2 months ago add code of conduct 3 months ago add ISC license 2 months ago README: add real install directions 2 months ago
config.yaml.example posse: twitter: add user mapping 2 months ago
requirements.txt requirements: pin cryptography version to <3.4 2 months ago



Jejune is a work in progress personal ActivityPub server designed to use constructions which provide functional security and resilience. Unlike most other implementations, Jejune does not use SQL databases, but instead uses a filesystem inspired by Linked Data concepts and RDF, which can be replicated in real-time using IPFS.

It provides a public website that can be themed by the end user, powered by Jinja templates and CSS variables.

Screenshot (public frontend, default theme)

For posting on the go, it has some level of API compatibility with Mastodon and Pleroma applications, but normally, it is driven by the ActivityPub client protocol and jejune-client.

Screenshot of jejune-client


This is alpha-quality software and does not yet support many features necessary for running a secure instance, it also lacks moderation tools. You should not run this software in production yet.


These instructions assume the user is using Alpine Linux. If you are using a different OS, you will need to translate the directions accordingly.

Before you proceed, you will need to install some dependencies:

# apk add build-base python3-dev openssl-dev

You will also want to create a user. Do not run Jejune as root!

# adduser jejune
# su - jejune
$ git clone
$ cd jejune

We recommend the use of a Python virtualenv. First, create a virtualenv using the virtualenv module and enter it:

$ python3 -m virtualenv prod
$ source ./prod/bin/activate

Next, install the dependencies:

(prod) $ pip3 install -r requirements.txt

You will need to configure your instance. Copy config.yaml.example and edit it:

(prod) $ cp config.yaml.example config.yaml
(prod) $ nano config.yaml

Finally, you will need to create your admin user:

(prod) $ JEJUNE_CONFIG=config.yaml python3 -m jejune.tasks.create_user

You can now launch the Jejune server, which will listen on localhost:8080. You should configure nginx or caddy or whatever server you use to proxy requests to localhost:8080.

(prod) $ JEJUNE_CONFIG=config.yaml python3 -m jejune
Starting webserver on

At this point, you can go to /.well-known/jejune on your instance to access jejune-client. Happy blogging!