2022-01-13 17:09:12 -05:00
2023-10-18 00:10:15 -04:00
2022-02-09 23:09:13 -05:00
2021-02-10 23:58:20 +00:00
2025-01-22 02:19:09 +00:00
2023-07-16 05:29:40 +00:00
2023-07-16 05:29:40 +00:00
2022-02-09 23:16:13 -05:00

License: GPL v3 Go Report Card

Fedilogue

Fedilogue is a fediverse cataloging and search platform. The intention is to create a centralized search system for use by fediverse users and APIs.

How does Fedilogue gather data?

Fedilogue employs multiple methods to gather post and account data.

  • Through publicly accessible timelines
  • 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 retrieve Notes (posts) from any instance that supports the ActivityPub protocol. However, it can only pull from Mastodon and Pleroma.

How to run

Go version

This code was written on Go 1.17.

Build Fedilogue

git clone https://gitlab.com/khanzf/fedilogue
cd fedilogue/fedilogue
go build

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

CREATE USER fedilogue WITH PASSWORD 'yoursecurepassword';
CREATE DATABASE fedilogue OWNER fedilogue;

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

Fedilogue is configured by the config.jsonc file. Start by copying the config.jsonc.sample file to 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.

Over time, all configuration will be done through the database.

Starting Fedilogue

Starting the retrieval daemon

cd fedilogue
./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.

Contact

Ping me at @fikran@thebag.social

Description
No description provided
Readme GPL-3.0 433 KiB
Languages
Go 99.4%
Dockerfile 0.6%