[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) [![Go Report Card](https://goreportcard.com/badge/gitlab.com/khanzf/fedilogue)](https://goreportcard.com/report/gitlab.com/khanzf/fedilogue) # 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 privately accessible timelines, requiring an account on a given instance * Through publicly accessible relays * 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. ## How to run ### Go version This code was written on Go 1.16. ### Build Fedilogue ``` git clone https://gitlab.com/khanzf/fedilogue cd fedilogue/fedilogue go build ``` There should now be a `fedilogue` executable in the project directory. ### Fedilogue Control ``` cd fedilogue/fedictl go build ``` Using the executable `fedictl`, you can now view the running state of instances or manually add a new instance for polling. ### 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. ### Generate private and public key ``` cd fedilogue mkdir -p keys openssl genrsa -out keys/private.pem 3072 openssl rsa -in keys/private.pem -pubout -out public-key.pem ``` ## Contact Ping me at [@fikran@thebag.social](https://thebag.social/@fikran)