|
|
||
|---|---|---|
| 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