Movie reviews bot playground.
Find a file
2021-09-17 14:43:02 +00:00
contracts Initial commit 2021-09-14 12:24:05 +00:00
migrations Add extra fields to actor profile 2021-09-16 20:14:48 +00:00
src Keep value source when editing extra fields 2021-09-17 14:43:02 +00:00
.editorconfig Set indent size in JSON files to 2 2021-09-14 13:35:41 +00:00
.env Initial commit 2021-09-14 12:24:05 +00:00
.gitignore Initial commit 2021-09-14 12:24:05 +00:00
Cargo.lock Initial commit 2021-09-14 12:24:05 +00:00
Cargo.toml Initial commit 2021-09-14 12:24:05 +00:00
config.yaml.example Initial commit 2021-09-14 12:24:05 +00:00
docker-compose.yaml Initial commit 2021-09-14 12:24:05 +00:00
LICENSE Initial commit 2021-09-14 12:24:05 +00:00
README.md Initial commit 2021-09-14 12:24:05 +00:00

Mitra

Federated social network with smart contracts.

  • Built on ActivityPub protocol.
  • Lightweight.
  • Sign-in with Ethereum.
  • Converting posts into NFTs.
  • More crypto features in the future.

WIP: Mitra is not ready for production yet.

Demo instance: https://test.mitra.pm/ (invite-only)

Requirements

  • Rust 1.51+
  • Postgresql
  • IPFS node (optional)
  • Ethereum node (optional)

Development

Create database

docker-compose up

Test connection:

psql -h localhost -p 5432 -U mitra mitra

Run web service

Create config file:

cp config.yaml.example config.yaml

Compile and run service:

cargo run

Run CLI

cargo run --bin mitractl

Build for production

cargo build --release

API

Mastodon API

Endpoints are similar to Mastodon API:

GET /api/v1/accounts/{account_id}
PATCH /api/v1/accounts/update_credentials
GET /api/v1/accounts/relationships
POST /api/v1/accounts/{account_id}/follow
POST /api/v1/accounts/{account_id}/unfollow
GET /api/v1/directory
GET /api/v1/instance
POST /api/v1/media
GET /api/v2/search
POST /api/v1/statuses
GET /api/v1/statuses/{status_id}
GET /api/v1/timelines/home

Extra APIs:

POST /api/v1/statuses/{status_id}/make_permanent
GET /api/v1/statuses/{status_id}/signature

CLI commands

Delete profile:

mitractl delete-profile -i 55a3005f-f293-4168-ab70-6ab09a879679

Generate invite code:

mitractl generate-invite-code

List generated invites:

mitractl list-invite-codes

Generate ethereum address:

mitractl generate-ethereum-address