[![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.

## Contact

Ping me at [@fikran@thebag.social](https://thebag.social/@fikran)