[✔] Follow users [✔] Announcements [✔] Federate the post to our followers (hardcoded for now) [✔] Handle more than one local actors [✔] Handle the /actor endpoint [✔] Create configuration file [✔] Implement database backend [✔] Create a file with the actors we have, their following and their followers. [✔] `MakeActor` should create a file with that actor. [✔] Implement `LoadActor` [✔] `actor.Follow` should write the new following to file [✔] Handle being followed [✔] When followed, the handler should write the new follower to file [✔] Make sure we send our boosts to all our followers [x] Write incoming activities to disk (do we have to?) [✔] Write all the announcements (boosts) to the database to their correct actors [✔] Check if we are already following users [✔] On GetOutbox read the database and present a list of the last posts. [✔] Make OS-independent (mosty directory separators) [✔] Create outbox.json programmatically [✔] Make storage configurable (search for "storage" in project) [✔] Check if we're boosting only stuff from actors we follow, not whatever comes through in our inbox [✔] Boost not only articles but other things too [✔] Sanitize input, never allow slashes or dots [✔] Add summary to actors.json [✔] Check local actor names for characters illegal for filenames and ban them (Done in pherephone, not activityserve) [✔] Create debug flag [✔] Write to following only upon accept (waiting to actually get an accept so that I can test this) [✔] Implement webfinger [✔] Make sure masto finds signature [✔] Implement Unfollow [✔] Implement accept (accept when other follow us) (done but can't test it pending http signatures) Works in pleroma/pixelfed not working on masto (nothing works on masto) [ ] Implement nodeinfo and statistics [✔] Accept even if already follows us [✔] Handle paging [✔] Test paging [✔] Handle http signatures [ ] Verify http signatures [✔] Refactor, comment and clean up [✔] Split to pherephone and activityServe [ ] Decide what's to be done with actors removed from `actors.json`. [ ] Remove them? [ ] Leave them read-only? [✔] Leave them as is? [✔] Handle followers and following uri's [ ] Do I care about the inbox? [✔] Expose configuration to apps [✔] Do not boost replies (configurable)