Веб-панель для управления пользователями прокси 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 # 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
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 --buildSQLite хранится в volume mieru_data.
# Из репозитория
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.
cp .env.example .env
# Отредактируйте ADMIN_PASSWORD, JWT_SECRET, SUBSCRIPTION_TOKENcd backend
cargo runAPI: http://localhost:8080
Swagger: http://localhost:8080/swagger
cd frontend
npm install
npm run devПанель: http://localhost:5173
Логин по умолчанию: admin / changeme
cd frontend && npm run build
cd ../backend && cargo build --release
./target/release/mieru-webuiСтатика из frontend/dist раздаётся backend-ом с одного порта.
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| Метод | Путь | Описание |
|---|---|---|
| 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