epicyon/README.md

90 lines
2.6 KiB
Markdown
Raw Normal View History

2019-07-04 20:50:46 +00:00
<img src="https://code.freedombone.net/bashrc/epicyon/raw/master/img/logo.png?raw=true" width=256/>
2019-07-04 21:20:26 +00:00
A minimal ActivityPub server.
2019-06-28 18:55:29 +00:00
2019-08-29 11:09:16 +00:00
[Commandline interface](README_commandline.md).
2019-08-29 11:09:16 +00:00
[W3C Specification](https://www.w3.org/TR/activitypub)
2019-06-29 10:08:59 +00:00
2019-08-29 11:09:16 +00:00
Includes emojis designed by [OpenMoji](https://openmoji.org) the open-source emoji and icon project. License: [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0)
2019-08-09 12:52:52 +00:00
2019-08-29 11:16:33 +00:00
[Project Goals](README_goals.md)
2019-07-25 08:42:15 +00:00
2019-08-29 11:23:58 +00:00
[Customizations](README_customizations.md)
2019-06-28 18:55:29 +00:00
## Install
2019-07-13 13:39:52 +00:00
On Arch/Parabola:
2019-06-28 18:55:29 +00:00
``` bash
2019-08-21 16:35:46 +00:00
sudo pacman -S tor python-pip python-pysocks python-pycryptodome python-beautifulsoup4 imagemagick python-pillow python-numpy python-dateutil
2019-07-02 17:11:59 +00:00
sudo pip install commentjson
2019-07-04 20:44:03 +00:00
```
2019-07-13 13:39:52 +00:00
Or on Debian:
``` bash
2019-08-21 16:35:46 +00:00
sudo apt-get -y install tor python3-pip python3-socks imagemagick python3-numpy python3-setuptools python3-crypto python3-dateutil python3-pil.imagetk
2019-07-13 13:39:52 +00:00
sudo pip3 install commentjson beautifulsoup4 pycryptodome
```
2019-08-29 11:16:33 +00:00
## Running Unit Tests
2019-07-04 20:44:03 +00:00
To run the unit tests:
``` bash
python3 epicyon.py --tests
```
To run the network tests. These simulate instances exchanging messages.
``` bash
python3 epicyon.py --testsnetwork
```
2019-07-04 21:32:18 +00:00
2019-07-12 14:42:43 +00:00
2019-07-04 21:32:18 +00:00
## Running the Server
To run with defaults:
``` bash
python3 epicyon.py
```
In a browser of choice (but not Tor browser) you can then navigate to:
``` text
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:
``` bash
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:
``` bash
python3 epicyon.py --domain [name] --port 8000 --https --path [data directory]
```
2019-07-04 21:40:30 +00:00
2019-07-17 12:31:10 +00:00
2019-07-19 09:01:39 +00:00
## 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.
2019-07-23 22:00:17 +00:00
2019-07-19 09:06:55 +00:00
## Object Capabilities Security
2019-08-11 16:55:22 +00:00
A description of the proposed object capabilities model [is here](ocaps.md).