1
0
Fork
You've already forked mitra
0
forked from silverpill/mitra
Federated social network
  • Rust 99.7%
  • Shell 0.2%
2023年07月22日 16:03:00 +00:00
.cargo Revert "Use "git" protocol to access crates.io" 2023年03月19日 13:54:04 +04:00
contracts Enable contract feature detection 2022年06月30日 12:20:14 +00:00
contrib Add manifest-src directive to CSP header 2023年06月13日 00:13:20 +00:00
docs Support jcs-eddsa-2022 identity proofs 2023年07月20日 00:18:34 +00:00
files Add files directory, update readme 2021年11月26日 22:39:54 +00:00
logo Fix Mitra custom emoji size 2023年06月19日 12:57:28 +00:00
mitra-cli Change license ID to AGPL-3.0-only 2023年07月22日 16:03:00 +00:00
mitra-config Change license ID to AGPL-3.0-only 2023年07月22日 16:03:00 +00:00
mitra-json-signatures Change license ID to AGPL-3.0-only 2023年07月22日 16:03:00 +00:00
mitra-models Change license ID to AGPL-3.0-only 2023年07月22日 16:03:00 +00:00
mitra-utils Change license ID to AGPL-3.0-only 2023年07月22日 16:03:00 +00:00
scripts Add contracts to debian package 2022年06月03日 20:33:46 +00:00
src Verify FEP-c390 implementation against test vectors 2023年07月21日 18:40:59 +00:00
.editorconfig Create workspace and move mitractl to a separate crate 2023年01月22日 20:50:28 +00:00
.env Add cargo feature for making production build 2022年05月04日 22:06:12 +00:00
.gitignore Add files directory, update readme 2021年11月26日 22:39:54 +00:00
Cargo.lock Fix for compatibility with Alpine Linux 2023年07月22日 15:53:07 +00:00
Cargo.toml Change license ID to AGPL-3.0-only 2023年07月22日 16:03:00 +00:00
CHANGELOG.md Change license ID to AGPL-3.0-only 2023年07月22日 16:03:00 +00:00
config.yaml.example Add changelog entry for database_tls_ca_file config parameter 2023年04月28日 18:32:27 +00:00
CONTRIBUTING.md Fix changelog 2022年12月27日 21:07:34 +00:00
docker-compose.yaml Update monero containers 2022年12月12日 22:54:48 +00:00
FEDERATION.md Update "Identity proofs" section in FEDERATION.md 2023年07月21日 18:43:56 +00:00
LICENSE Initial commit 2021年09月14日 12:24:05 +00:00
README.md Add minimum system requirements to README.md 2023年06月13日 22:37:18 +00:00

Mitra logo

About

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.
  • Content subscription service. Subscriptions provide a way to receive monthly payments from subscribers and to publish private content made exclusively for them.
    • Supported payment methods: Monero and ERC-20 tokens (on Ethereum and other EVM-compatible blockchains).
  • Sign-in with a wallet.
  • Donation buttons.
  • Account migrations (from one server to another). Identity can be detached from the server.
  • Federation over Tor and/or I2P.

Follow: @mitra@mitra.social

Matrix chat: #mitra:halogen.city

Instances

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

Code

Server: https://codeberg.org/silverpill/mitra (this repo)

Web client: https://codeberg.org/silverpill/mitra-web

Ethereum contracts: https://codeberg.org/silverpill/mitra-contracts

Requirements

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

Mininum system requirements:

  • 256 MB RAM (1 GB for building from source)
  • 10 GB storage for average single user instance with default configuration

Optional integrations:

  • Monero wallet service and Monero node
  • Ethereum node
  • IPFS node (see guide)

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:

CREATEUSERmitraWITHPASSWORD'mitra';CREATEDATABASEmitraOWNERmitra;

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:

CREATEUSERmitraWITHPASSWORD'mitra';CREATEDATABASEmitraOWNERmitra;

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.

Docker image

This image is maintained by the community and has not been verified:

https://hub.docker.com/r/bleakfuture0/mitra

Configuration

Tor federation

See guide.

Blockchain integrations

Development

See CONTRIBUTING.md

Start database server

docker-compose up -d

Test connection:

psql -h localhost -p 55432 -U mitra mitra

Start Monero node and wallet server

(this step is optional)

docker-compose --profile monero up -d

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

Support

Monero: 8Ahza5RM4JQgtdqvpcF1U628NN5Q87eryXQad3Fy581YWTZU8o3EMbtScuioQZSkyNNEEE1Lkj2cSbG4VnVYCW5L1N4os5p