mirror of https://gitlab.com/bashrc2/epicyon
Image links
parent
8bc6e1a2e7
commit
ba87771bf6
|
@ -4,13 +4,13 @@
|
|||
|
||||
The main modules are *epicyon.py* and *daemon.py*. *epicyon.py* is the commandline interface and *daemon.py* is the http server.
|
||||
|
||||
<img src="./raw/main/architecture/epicyon_groups_Commandline-Interface_Core.png" width="80%"/>
|
||||
![commandline and core modules](./raw/main/architecture/epicyon_groups_Commandline-Interface_Core.png)
|
||||
|
||||
The daemon runs the inbox queue in a separate thread (see *inbox.py*) and the inbox que processes incoming ActivityPub posts one at a time in a strictly serial fashion. Doing it this way means minimum potential for any parallelism/locking issues. It also means that the inbox queue is not highly scalable, but that's ok for a system which is only intended to have a few users per instance.
|
||||
|
||||
All ActivityPub posts are stored as text files, and there is no database as such other than the filesystem itself. Think of it as being like an email server. Each post is a json file stored in *accounts/nick@domain/inbox* or *accounts/nick@domain/outbox*. To avoid parsing problems slashes are replaced by hashes within the ActivityPub post filename. The filename for each post is the same as its ActivityPub id.
|
||||
|
||||
<img src="./raw/main/architecture/epicyon_groups_Timeline_Core.png" width="80%"/>
|
||||
![timeline and core modules](./raw/main/architecture/epicyon_groups_Timeline_Core.png)
|
||||
|
||||
## Themes security
|
||||
|
||||
|
|
Loading…
Reference in New Issue