# Mihomo Studio (Web Editor) v18.2 Легковесный веб-интерфейс для управления конфигурацией Mihomo (Clash) на роутерах Keenetic с Entware. Работает на Python 3 без "тяжелых" зависимостей (использует встроенный `http.server`). ## ✨ Возможности * **Мультипрофильность**: Создавайте разные конфигурации (например, "Дом", "Дача", "Только Telegram") и переключайтесь между ними в один клик. Система использует симлинки, что обеспечивает совместимость с xkeen. * **Редактор YAML**: Полноценный редактор с подсветкой синтаксиса и проверкой отступов. * **Парсер VLESS**: Вставьте ссылку `vless://...`, и сервер сам преобразует её в правильный YAML-блок. * **Умная вставка**: Автоматически предлагает добавить новый прокси в выбранные `proxy-groups`. * **Бэкапы**: Автоматическое создание резервных копий перед каждым сохранением. Возможность отката (Restore) прямо из интерфейса. * **Управление сервисом**: Кнопка "Рестарт" в интерфейсе отправляет команду `xkeen -restart` и выводит лог запуска в консоль браузера. * **Темы оформления**: Dark, Light, Midnight, Cyber. ## 🚀 Установка 1. Зайдите в терминал роутера (SSH). 2. Скопируйте код из файла `install.sh` (см. выше). 3. Вставьте его в консоль и нажмите Enter. Скрипт автоматически: * Проверит и установит `python3`. * Создаст нужные папки (`/opt/scripts`, `/opt/etc/mihomo/profiles` и т.д.). * Установит скрипт сервера и скрипт автозапуска `S95mihomo-web`. * Запустит сервис. ## 📂 Структура файлов * `/opt/scripts/mihomo_editor.py` — Основной файл сервера. * `/opt/etc/init.d/S95mihomo-web` — Скрипт службы (автозапуск/старт/стоп). * `/opt/etc/mihomo/config.yaml` — Симлинк на активный профиль. * `/opt/etc/mihomo/profiles/` — Папка, где хранятся реальные файлы профилей (`default.yaml`, `game.yaml` и т.д.). * `/opt/etc/mihomo/backup/` — Папка для автобэкапов. ## 🎮 Использование Откройте в браузере: `http://192.168.1.1:8888` (замените IP на адрес вашего роутера). * **Порт**: 8888 (можно изменить в начале скрипта `mihomo_editor.py`). * **Логи**: При рестарте через интерфейс лог пишется в `/tmp/mihomo_last_restart.log` и выводится в модальное окно.