Skip to content

About

MieruWebUI

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

MieruWebUI

Веб-панель для управления пользователями прокси mieru (сервер mita).

Возможности

  • Аутентификация администратора (JWT + SQLite)
  • CRUD пользователей прокси
  • Автоматическая синхронизация с mita при изменении пользователей и настроек
  • QR-код подключения (mierus://) и QR подписки
  • Экспорт JSON для ручного применения в mita
  • Swagger UI: /swagger

Стек

Часть Технологии
Backend Rust, axum, sqlx, SQLite, JWT, utoipa
Frontend Vue 3, Vite, TypeScript, Tailwind CSS

Сборка (build.sh)

./build.sh              # frontend + backend (release, in-tree)
./build.sh prod         # production bundle → dist/prod/
./build.sh backend      # только Rust backend
./build.sh frontend     # только Vue frontend
./build.sh dev          # debug backend + npm install

./build.sh prod собирает оптимизированный бинарник (strip), фронтенд и упаковывает в dist/prod/:

dist/prod/
├── backend/mieru-webui
├── frontend/dist/
├── .env.example
├── run.sh
└── README.txt

Docker

cp .env.docker.example .env
# Отредактируйте JWT_SECRET, ADMIN_PASSWORD, PUBLIC_BASE_URL

docker compose up -d --build

Панель: http://localhost:8080 (порт — PUBLISH_PORT в .env)

docker compose logs -f    # логи
docker compose down     # остановить
./build.sh docker       # только сборка образа

mita на хосте (синхронизация пользователей):

docker compose -f docker-compose.yml -f docker-compose.mita-host.yml up -d --build

SQLite хранится в volume mieru_data.

Установка (install.sh)

На сервере (production)

# Из репозитория
sudo ./install.sh

# Или через curl (укажите свой REPO_URL)
curl -fsSL https://raw.githubusercontent.com/USER/MieruWebUI/main/install.sh | sudo bash

# С параметрами
sudo INSTALL_DIR=/opt/mieruwebui \
     ADMIN_PASSWORD='your-secure-password' \
     BIND_ADDR=0.0.0.0:8080 \
     bash install.sh

Скрипт:

  • Устанавливает зависимости (git, build-essential, nodejs, rust)
  • Собирает frontend и backend (release)
  • Создаёт .env с случайными секретами
  • Создаёт systemd-сервис mieruwebui
  • Сохраняет логин/пароль в /opt/mieruwebui/credentials.txt

Переменные окружения: INSTALL_DIR, REPO_URL, ADMIN_USERNAME, ADMIN_PASSWORD, BIND_ADDR, PUBLIC_BASE_URL, SKIP_SYSTEMD, SKIP_BUILD.

Быстрый старт (разработка)

1. Конфигурация

cp .env.example .env
# Отредактируйте ADMIN_PASSWORD, JWT_SECRET, SUBSCRIPTION_TOKEN

2. Backend

cd backend
cargo run

API: http://localhost:8080
Swagger: http://localhost:8080/swagger

3. Frontend (разработка)

cd frontend
npm install
npm run dev

Панель: http://localhost:5173
Логин по умолчанию: admin / changeme

4. Production

cd frontend && npm run build
cd ../backend && cargo build --release
./target/release/mieru-webui

Статика из frontend/dist раздаётся backend-ом с одного порта.

mita

  • mita должен быть установлен на той же машине
  • Пользователь, запускающий backend, должен иметь права на mita apply config и mita reload (группа mita или root)
  • MITA_BIN_PATH в .env — путь к CLI (по умолчанию mita)

При добавлении/изменении/удалении пользователя backend выполняет:

mita apply config data/mita_apply.json
mita reload

API

Метод Путь Описание
POST /api/auth/login Вход
GET /api/auth/me Текущий админ
GET/POST /api/users Список / создание
GET/PUT/DELETE /api/users/{id} Детали / изменение / удаление
GET/PUT /api/settings Настройки сервера
GET /api/mita/status Статус синхронизации
GET /api/mita/export Скачать JSON для mita
GET /api/subscribe/{token} Подписка (base64)

Безопасность

  • Пароль администратора хранится как argon2-хеш
  • Пароли proxy-пользователей хранятся в открытом виде (нужно для генерации mierus://)
  • Смените JWT_SECRET, ADMIN_PASSWORD, SUBSCRIPTION_TOKEN перед production

Документация

Подробный план: PLAN.md

About

MieruWebUI

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages