omemo keyring

This commit is contained in:
nnduc
2026-10-27 23:49:59 +07:00
parent 9f44778f21
commit 1ce93d883b
16 changed files with 1327 additions and 481 deletions
+17 -3
View File
@@ -2,8 +2,8 @@
A rewrite of the [Movim](https://movim.eu) XMPP web client backend in Rust, keeping
Movim's frontend (CSS/JS/theme, in `frontend/`). The PHP daemon, widgets and
templates were replaced by a single Rust server (tokio, axum, tokio-xmpp, sqlx/SQLite,
minijinja). Scope: a Conversations-like chat client.
templates were replaced by a single Rust server (tokio, axum, tokio-xmpp, sqlx with SQLite
or PostgreSQL, minijinja). Scope: a Conversations-like chat client.
## Features
1:1 chat, group chats (MUC, bookmarks, invitations, moderation, configuration),
@@ -35,8 +35,22 @@ XMPP server's archive expiry),
dev only: `MOVIM_XMPP_PLAINTEXT=host:port`, `MOVIM_ALLOW_PRIVATE_URLS=1`,
`MOVIM_DEBUG_XMPP=1`.
## Database
SQLite by default (`data/movim.sqlite`). For PostgreSQL, set
`MOVIM_DATABASE_URL=postgres://user:password@host/database`; the tables are
created at startup. To move an existing SQLite database, stop Movim, create an
empty PostgreSQL database and run:
movim migrate-to-postgres postgres://user:password@host/database [--from sqlite:///path/movim.sqlite]
Without `--from` it copies the SQLite database Movim would use (`MOVIM_DATABASE_URL`
or the one in `MOVIM_DATA_DIR`). Everything is copied in one transaction, ids
included, and the command refuses a database that already has data. The SQLite
file is left untouched.
## Tests
`cargo test` runs the unit tests. `tests/e2e/` holds end-to-end scripts that
`cargo test` runs the unit tests (`MOVIM_TEST_POSTGRES_URL=postgres://…` also
runs them against PostgreSQL, in throwaway databases). `tests/e2e/` holds end-to-end scripts that
drive the server (and the real frontend in headless Chromium) against a local
Prosody; see `tests/e2e/README.md`.