Bob Mottram f213517de6 | ||
---|---|---|
emoji | ||
img | ||
LICENSE | ||
Makefile | ||
README.md | ||
README_commandline.md | ||
README_customizations.md | ||
README_goals.md | ||
acceptreject.py | ||
announce.py | ||
auth.py | ||
availability.py | ||
blocking.py | ||
blurhash.py | ||
cache.py | ||
capabilities.py | ||
code-of-conduct.md | ||
config.py | ||
content.py | ||
daemon.py | ||
default_about.txt | ||
default_tos.txt | ||
delete.py | ||
epicyon-follow.css | ||
epicyon-login.css | ||
epicyon-profile.css | ||
epicyon-suspended.css | ||
epicyon.py | ||
filters.py | ||
follow.py | ||
httpsig.py | ||
inbox.py | ||
like.py | ||
manualapprove.py | ||
media.py | ||
ocaps.md | ||
person.py | ||
posts.py | ||
roles.py | ||
session.py | ||
shares.py | ||
skills.py | ||
tests.py | ||
threads.py | ||
utils.py | ||
webfinger.py | ||
webinterface.py |
README.md
A minimal ActivityPub server.
Includes emojis designed by OpenMoji – the open-source emoji and icon project. License: CC BY-SA 4.0
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 the Server
In the most common case you'll be using systemd to set up a daemon to run the server.
Add a dedicated user so that we don't have to run as root.
adduser --system --home=/etc/epicyon --group epicyon
Edit /etc/systemd/system/epicyon.service and add the following:
[Unit]
Description=epicyon
After=syslog.target
After=network.target
Documentation=$EPICYON_REPO";
[Service]
Type=simple
User=epicyon
Group=epicyon
WorkingDirectory=/etc/epicyon
ExecStart=/usr/bin/python3 /etc/epicyon/epicyon.py --port 443 --proxy 7156 --domain YOUR_DOMAIN --registration open --debug";
Environment=USER=epicyon
Restart=always
StandardError=syslog
[Install]
WantedBy=multi-user.target }
Here the server was installed to /etc/epicyon, but you can change that to wherever you installed it.
Then run the daemon:
systemctl enable epicyon
chown -R epicyon:epicyon /etc/epicyon
systemctl start epicyon
Check the status of the daemon with:
systemctl status epicyon
If it's not running then you can also look at the log:
journalctl -u epicyon
You'll also need to set up a web server configuration. An Nginx example is as follows:
Object Capabilities Security
A description of the proposed object capabilities model is here.
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