Skip to content

itsveiliss/mimu-server

Repository files navigation

Mimu Server (backend)

Rust backend for Mimu: Axum + Tokio + PostgreSQL + Redis.

Quick start (dev)

1) Установи Rust (чтобы появился cargo)

На Windows самый простой вариант — через rustup:

  • Установи Rustup (rustup-init.exe) с официального сайта Rust.
  • Перезапусти терминал и проверь:
rustc --version
cargo --version

Если не хочешь ставить Rust “на систему”, можно работать через WSL2 (Ubuntu) и ставить Rust там — обычно меньше проблем.

2) Подними инфраструктуру (Postgres/Redis/MinIO)

docker compose -f server/docker-compose.yml up -d

3) Задай переменные окружения

Файл .env в этом репозитории создавать нельзя (workspace block), поэтому используй server/env.example как список переменных и экспортируй их.

Linux/macOS/WSL:

set -a
source server/env.example
set +a

Windows PowerShell example:

Get-Content server\env.example | ForEach-Object {
  if ($_ -match '^\s*$' -or $_ -match '^\s*#') { return }
  $kv = $_.Split('=',2)
  [Environment]::SetEnvironmentVariable($kv[0], $kv[1])
}

4) Прогони миграции (создай таблицы)

cargo install sqlx-cli --no-default-features --features postgres,rustls
sqlx migrate run --source server/migrations

5) Запусти сервер

cd server
cargo run

Endpoints (current)

  • GET /health
  • GET /metrics
  • POST /auth/register|login|reset-password|refresh
  • GET /users/search, GET /users/{public_id}, GET /users/{public_id}/prekeys
  • POST /users/{public_id}/verify, PUT /users/me
  • POST /subscriptions/purchase|validate, GET /subscriptions/restore

Важно про ключи подписи (безопасность)

Для корректной проверки подписок добавлен Ed25519 signing key:

  • Клиент при регистрации должен прислать signing_public_key (base64, 32 байта).
  • POST /subscriptions/purchase проверяет подпись над строкой: mimu-sub-v1|{prid_hash}|{tier}

"# mimu-server"

About

Free and open-source architecture of Mimu servers.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors