Modern ActivityPub compliant server, designed for simplicity and accessibility. Includes calendar, news and sharing economy features to empower your federated community. We are using it for a hyper local indymedia codebase.
 
 
 
 
Go to file
Bob Mottram 18c9f0faf2 Link to goals 2019-08-29 11:16:33 +00:00
emoji We don't really need national flags, or nationalism 2019-08-26 09:13:36 +01:00
img Change colors 2019-08-28 15:19:41 +01:00
LICENSE Initial 2019-06-28 19:55:29 +01:00
Makefile Run test in its own subdirectory 2019-08-09 10:46:33 +01:00
README.md Link to goals 2019-08-29 11:16:33 +00:00
README_commandline.md Commandline readme 2019-08-29 11:09:16 +00:00
README_goals.md Link to goals 2019-08-29 11:16:33 +00:00
acceptreject.py @context headers 2019-08-18 12:07:06 +01:00
announce.py Preferred name becomes display name - less ambiguous 2019-08-22 19:36:07 +01:00
auth.py Reduce some line lengths 2019-07-06 18:00:22 +01:00
availability.py Preferred name becomes display name - less ambiguous 2019-08-22 19:36:07 +01:00
blocking.py Preferred name becomes display name - less ambiguous 2019-08-22 19:36:07 +01:00
blurhash.py Functions for image attachments 2019-07-12 20:08:46 +01:00
cache.py Check for presence of cache directory 2019-08-20 22:26:24 +01:00
capabilities.py Check for no actor 2019-08-18 21:43:10 +01:00
code-of-conduct.md Add CoC 2019-07-04 22:52:39 +01:00
config.py Configuration file functions 2019-07-05 10:20:54 +01:00
content.py s 2019-08-21 13:29:30 +01:00
daemon.py Max number of skills results 2019-08-28 11:11:06 +01:00
default_about.txt About screen 2019-08-26 17:02:47 +01:00
default_tos.txt Not all emojis 2019-08-19 14:56:47 +01:00
delete.py Preferred name becomes display name - less ambiguous 2019-08-22 19:36:07 +01:00
epicyon-follow.css Follow style 2019-08-28 16:45:37 +01:00
epicyon-login.css Login screen style for mobile 2019-08-27 15:34:27 +01:00
epicyon-profile.css Different page icon size for mobile 2019-08-28 13:11:50 +01:00
epicyon-suspended.css Submit button spacing 2019-08-13 11:04:18 +01:00
epicyon.py Optionally limit skills searches to the instance 2019-08-28 10:59:19 +01:00
filters.py Use not 2019-07-14 22:00:33 +01:00
follow.py Check if already a follower 2019-08-26 23:38:09 +01:00
httpsig.py Tidying 2019-08-23 12:39:16 +01:00
inbox.py Application activity 2019-08-23 21:09:00 +01:00
like.py Preferred name becomes display name - less ambiguous 2019-08-22 19:36:07 +01:00
manualapprove.py Ensure that followers are updated when accepting follow request 2019-08-26 23:22:01 +01:00
media.py Ensure port numbers are attached when needed 2019-08-16 21:35:11 +01:00
ocaps.md Separate ocaps document 2019-07-19 10:06:55 +01:00
person.py Instance actor url 2019-08-26 16:20:14 +01:00
posts.py with 2019-08-26 18:44:21 +01:00
roles.py Preferred name becomes display name - less ambiguous 2019-08-22 19:36:07 +01:00
session.py Set user agent for commands 2019-08-26 15:08:41 +01:00
shares.py Shared inbox actor on @domain@domain 2019-08-23 14:47:29 +01:00
skills.py Preferred name becomes display name - less ambiguous 2019-08-22 19:36:07 +01:00
tests.py Optionally limit skills searches to the instance 2019-08-28 10:59:19 +01:00
threads.py Move tests to their own file 2019-06-30 21:14:03 +01:00
utils.py Timeline for DMs 2019-08-25 17:09:56 +01:00
webfinger.py Instance actor url 2019-08-26 16:20:14 +01:00
webinterface.py Embedded videos appear inside of cw 2019-08-29 09:49:22 +01:00

README.md

A minimal ActivityPub server.

Commandline interface.

W3C Specification

Includes emojis designed by OpenMoji the open-source emoji and icon project. License: CC BY-SA 4.0

Project Goals

Install

On Arch/Parabola:

sudo pacman -S tor python-pip python-pysocks python-pycryptodome python-beautifulsoup4 imagemagick python-pillow python-numpy python-dateutil
sudo pip install commentjson

Or on Debian:

sudo apt-get -y install tor python3-pip python3-socks imagemagick python3-numpy python3-setuptools python3-crypto python3-dateutil python3-pil.imagetk
sudo pip3 install commentjson beautifulsoup4 pycryptodome

Running Unit Tests

To run the unit tests:

python3 epicyon.py --tests

To run the network tests. These simulate instances exchanging messages.

python3 epicyon.py --testsnetwork

Running the Server

To run with defaults:

python3 epicyon.py

In a browser of choice (but not Tor browser) you can then navigate to:

http://localhost:8085/users/admin

If it's working then you should see the json actor for the default admin account.

For a more realistic installation you can run on a defined domain and port:

python3 epicyon.py --domain [name] --port 8000 --https

You will need to proxy port 8000 through your web server and set up CA certificates as needed.

By default data will be stored in the directory in which you run the server, but you can also specify a directory:

python3 epicyon.py --domain [name] --port 8000 --https --path [data directory]

Culling follower numbers

In this system the number of followers which an account has will only be visible to the account holder. Other viewers will see a made up number. Which accounts are followed or followed by a person will also only have limited visibility.

The intention is to prevent the construction of detailed social graphs by adversaries, and to frustrate attempts to build celebrity status based on number of followers, which on sites like Twitter creates a dubious economy of fake accounts and the trading thereof.

If you are the account holder though you will be able to see exactly who you're following or being followed by.

Object Capabilities Security

A description of the proposed object capabilities model is here.

Customizations

You can customize the terms of service by editing accounts/tos.txt. If it doesn't already exist then you can use default_tos.txt as a template.

On the login screen you can provide a custom welcome message by creating the file accounts/login.txt. This could be used to show a motd or scheduled maintenance information.

You can customize the image on the login screen by saving your instance logo to accounts/login.png. A background image can also be set for the login screen by adding accounts/login-background.png

A custom background image can be supplied for the search screen by adding accounts/search-background.png

When a moderator report is created the message at the top of the screen can be customized to provide any additional information, advice or alerts. Edit accounts/report.txt and add your text.

Extra emoji can be added to the emoji directory and you should then update the emoji/emoji.json file, which maps the name to the filename (without the .png extension).