- Rust 100%
| .cargo | ||
| files | ||
| src | Retry activity delivery on errors | |
| .editorconfig | ||
| .env | ||
| .gitignore | ||
| Cargo.lock | Release 0.2.0 | |
| Cargo.toml | Release 0.2.0 | |
| CHANGELOG.md | Release 0.2.0 | |
| config.example.toml | ||
| LICENSE | ||
| package-lock.json | ||
| package.json |
Call node directly (bypass npm)
|
|
| README.md | Update feature list | |
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
Support
Monero: 8Ahza5RM4JQgtdqvpcF1U628NN5Q87eryXQad3Fy581YWTZU8o3EMbtScuioQZSkyNNEEE1Lkj2cSbG4VnVYCW5L1N4os5p