fedimovies/README.md
2023-04-09 01:34:07 +02:00

3.2 KiB

Reef

Lively federated micro-blogging platform.

Built on ActivityPub protocol, self-hosted, lightweight. Part of the Fediverse.

Features:

  • Micro-blogging service (includes support for quote posts, custom emojis and more).
  • Mastodon API.
  • Account migrations (from one server to another). Identity can be detached from the server.
  • Federation over Tor.

Instances

Demo instance: https://nullpointer.social/ (invite-only)

Code

Server: https://code.caric.io/reef/reef (this repo)

Web client:

Requirements

  • Rust 1.56+ (when building from source)
  • PostgreSQL 12+

Optional:

Installation

Building from source

Run:

cargo build --release --features production

This command will produce two binaries in target/release directory, mitra and mitractl.

Install PostgreSQL and create the database:

CREATE USER mitra WITH PASSWORD 'mitra';
CREATE DATABASE mitra OWNER mitra;

Create configuration file by copying contrib/mitra_config.yaml and configure the instance. Default config file path is /etc/mitra/config.yaml, but it can be changed using CONFIG_PATH environment variable.

Put any static files into the directory specified in configuration file. Building instructions for mitra-web frontend can be found at https://codeberg.org/silverpill/mitra-web#project-setup.

Start Mitra:

./mitra

An HTTP server will be needed to handle HTTPS requests. See the example of nginx configuration file.

To run Mitra as a systemd service, check out the systemd unit file example.

Debian package

Download and install Mitra package:

dpkg -i mitra.deb

Install PostgreSQL and create the database:

CREATE USER mitra WITH PASSWORD 'mitra';
CREATE DATABASE mitra OWNER mitra;

Open configuration file /etc/mitra/config.yaml and configure the instance.

Start Mitra:

systemctl start mitra

An HTTP server will be needed to handle HTTPS requests. See the example of nginx configuration file.

Tor federation

See guide.

Development

See CONTRIBUTING.md

Start database server

docker-compose up -d

Test connection:

psql -h localhost -p 55432 -U mitra mitra

Run web service

Create config file, adjust settings if needed:

cp config.yaml.example config.yaml

Compile and run service:

cargo run

Run CLI

cargo run --bin mitractl

Run linter

cargo clippy

Run tests

cargo test

Federation

See FEDERATION.md

Client API

Most methods are similar to Mastodon API, but Mitra is not fully compatible.

OpenAPI spec

CLI

mitractl is a command-line tool for performing instance maintenance.

Documentation

License

AGPL-3.0