1
0
Fork
You've already forked minimitra
0
Headless ActivityPub client
  • Rust 100%
2026年04月09日 16:58:12 +00:00
.cargo
files
src Retry activity delivery on errors 2026年04月09日 16:48:19 +00:00
.editorconfig
.env
.gitignore
Cargo.lock Release 0.2.0 2026年04月09日 16:58:12 +00:00
Cargo.toml Release 0.2.0 2026年04月09日 16:58:12 +00:00
CHANGELOG.md Release 0.2.0 2026年04月09日 16:58:12 +00:00
config.example.toml
LICENSE
package-lock.json
package.json Call node directly (bypass npm) 2026年03月21日 17:14:00 +00:00
README.md Update feature list 2026年04月09日 16:58:03 +00:00

Mitra Mini

Mitra Mini is a headless ActivityPub client that implements FEP-ae97 specification.

It uses cryptographic identities and signs all activities locally, ensuring that the data is portable and not bound to a single server or a domain name. This is also called "nomadic identity".

Features:

  • Micro-blogging. Posts, reposts, likes. Over time, more features from Mitra will be ported.
  • Implements Mastodon API.
  • Does not need a database server (can be used as a desktop application).
  • Can work offline.

Current limitations:

  • Connects to a single gateway.
  • Full migration to another gateway is not possible yet.
  • Migrations will only be recognized by servers supporting FEP-ef61 (Forte, Mitra, tootik).
  • Can't fetch objects from servers that require authorization.
  • Can't import activities from another client.
  • Linux only.

Project news: @minimitra@mitra.social

Requirements

  • Rust 1.85+
  • NodeJS 20+

Usage

Install NodeJS dependencies:

npm install

Create the configuration file:

cp config.example.toml config.toml

Specify the gateway using the gateway_url parameter. Currently only Mitra servers can be used as gateways (the gateway mode should be enabled in the server configuration).

Create an account:

cargo run account create <username> <password> admin

Then register it on the gateway:

cargo run gateway register <username> --invite-code <invite-code>

If you want to use mitra-web client, build the latest version (the output directory should match the web_client_dir in the configuration file):

cd mitra-web
VITE_BACKEND_URL=http://127.0.0.1:8382 npx vite build --outDir minimitra/files/web

Start the server:

cargo run server

Visit http://127.0.0.1:8382 and log in with your password.

Development

Create the configuration file:

cp config.example.toml config.toml

Start the development server:

cargo run server

pglite maintenance

Start the database server:

npm install
npx pglite-server --port=56432 --db=files/pglite/

Connect to the database server (only one connection can be opened at a time):

PGSSLMODE=disable psql -h localhost -p 57432 -U postgres -d mitra

Backup:

tar -cf files/pglite.tar files/pglite

Restore:

tar -xf files/pglite.tar

License

AGPL-3.0

Support

Monero: 8Ahza5RM4JQgtdqvpcF1U628NN5Q87eryXQad3Fy581YWTZU8o3EMbtScuioQZSkyNNEEE1Lkj2cSbG4VnVYCW5L1N4os5p