fedilogue

module
v0.0.0-...-91c206c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 18, 2023 License: GPL-3.0

README

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

Directories

Path Synopsis
restapi module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL