diff --git a/README.md b/README.md index 98b8605..67e0a7f 100644 --- a/README.md +++ b/README.md @@ -11,14 +11,13 @@ system for use by fediverse users and APIs. Fedilogue employs multiple methods to gather post and account data. * Through publicly accessible timelines -* Through privately accessible timelines, requiring an account on a given instance * Through publicly accessible relays +* Through privately accessible timelines, requiring an account on a given instance (untested) * Through followed users using a mass following agent (planned) ## Supported Instances -Fedilogue can receive posts from any instance that supports the ActivityPub protocol. However, it can only -pull from instances that use the Mastodon API, which includes Pleroma. +Fedilogue can retrieve Notes (posts) from any instance that supports the ActivityPub protocol. However, it can only pull from Mastodon and Pleroma. ## How to run @@ -34,16 +33,41 @@ cd fedilogue/fedilogue go build ``` -There should now be a `fedilogue` executable in the project directory. +This will produce a fedilogue executable in the project directory. + +### Prepopulate the Database + +Create the `fedilogue` database and the user fedilogue. The exact process for this is outside of the scope of this document -### Fedilogue Control ``` -cd fedilogue/fedictl -go build +CREATE USER fedilogue WITH PASSWORD 'yoursecurepassword'; +CREATE DATABASE fedilogue OWNER fedilogue; ``` -Using the executable `fedictl`, you can now view the running state of instances or manually add a new instance for polling. +Set the environment variable + +``` +export DATABASE_URL="postgres://fedilogue:yoursecurepassword@localhost/fedilogue" +``` + +Change accordingly if your username, hostname and database are different. + +``` +cd fedilogue/fedilogue +psql -U fedilogue -h localhost < tables.sql +``` + +### Generate private and public key + +This is only necessary if you are receiving posts from a relay. + +``` +cd fedilogue +mkdir -p keys +openssl genrsa -out keys/private.pem 3072 +openssl rsa -in keys/private.pem -pubout -out keys/public.pem +``` ### Configuration @@ -51,14 +75,39 @@ Fedilogue is configured by the `config.jsonc` file. Start by copying the `config `config.jsonc` and edit the file with your use-case values. The configuration file is written in jsonc and has enclosed explanations that should be self-explanatory. -### Generate private and public key +Over time, all configuration will be done through the database. + + +## Starting Fedilogue + +### Starting the retrieval daemon + ``` cd fedilogue -mkdir -p keys -openssl genrsa -out keys/private.pem 3072 -openssl rsa -in keys/private.pem -pubout -out public-key.pem +./fedilogue ``` +### Subscribe to a relay + +Make sure that the `hostname` variable is set to a host that points to your fedilogue instance. Forward port +SSL/443 to port 8042. + +``` +./fedictl -follow https://relay.social.tigwali.fr/inbox +``` + +### Starting the RestAPI service + +Start the RestAPI service to make the data accessible to external services, such as the web interface (which is currently not written). + +``` +cd restapi +go build . +./restapi +``` + +For documentation on how the API is located [here](restapi/RESTAPI.md). + ## Contact Ping me at [@fikran@thebag.social](https://thebag.social/@fikran)