306 lines
8.9 KiB
Markdown
306 lines
8.9 KiB
Markdown
|
|
# 🎨 Веб-панель управления обновлениями
|
|||
|
|
|
|||
|
|
## 📋 Что это?
|
|||
|
|
|
|||
|
|
Простой веб-интерфейс для управления обновлениями Umbrix без редактирования JSON вручную!
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
┌──────────────────────────────────────────────┐
|
|||
|
|
│ 🚀 Umbrix Update Manager │
|
|||
|
|
│ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
|
|||
|
|
│ │
|
|||
|
|
│ 📦 Текущая версия: 2.5.7 │
|
|||
|
|
│ │
|
|||
|
|
│ Версия: [2.5.8____________] │
|
|||
|
|
│ Build: [258______________] │
|
|||
|
|
│ URL: [https://...] │
|
|||
|
|
│ Описание: [Что нового...] │
|
|||
|
|
│ │
|
|||
|
|
│ [🔄 Загрузить] [💾 Сохранить обновление] │
|
|||
|
|
└──────────────────────────────────────────────┘
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🚀 Установка
|
|||
|
|
|
|||
|
|
### Шаг 1: Загрузите файлы
|
|||
|
|
|
|||
|
|
Загрузите на сервер папку `admin/`:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
update-server/
|
|||
|
|
├── admin/ ← загрузите эту папку
|
|||
|
|
│ ├── index.html ← веб-интерфейс
|
|||
|
|
│ ├── save.php ← скрипт сохранения
|
|||
|
|
│ └── .htaccess ← защита (опционально)
|
|||
|
|
├── api.php
|
|||
|
|
└── latest.json
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Шаг 2: Настройте права доступа
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Права на папку admin
|
|||
|
|
chmod 755 admin/
|
|||
|
|
|
|||
|
|
# Права на файлы
|
|||
|
|
chmod 644 admin/index.html
|
|||
|
|
chmod 644 admin/save.php
|
|||
|
|
|
|||
|
|
# latest.json должен быть доступен для записи
|
|||
|
|
chmod 666 latest.json
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Шаг 3: Откройте в браузере
|
|||
|
|
|
|||
|
|
Перейдите по адресу:
|
|||
|
|
```
|
|||
|
|
https://api.umbrix.net/admin/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🎯 Как пользоваться?
|
|||
|
|
|
|||
|
|
### 1. Просмотр текущей версии
|
|||
|
|
|
|||
|
|
В верхней части автоматически отображается:
|
|||
|
|
- ✅ Текущая версия
|
|||
|
|
- ✅ Build number
|
|||
|
|
- ✅ Статус (STABLE/BETA)
|
|||
|
|
- ✅ Дата публикации
|
|||
|
|
|
|||
|
|
### 2. Создание нового обновления
|
|||
|
|
|
|||
|
|
1. Заполните форму:
|
|||
|
|
- **Версия** (обязательно): `2.5.8`
|
|||
|
|
- **Build Number** (обязательно): `258`
|
|||
|
|
- **URL APK** (обязательно): `https://api.umbrix.net/downloads/umbrix-2.5.8.apk`
|
|||
|
|
- **Описание**: Что нового в версии
|
|||
|
|
- **Дата**: Автоматически или выберите
|
|||
|
|
- **Мин. версия**: С какой версии можно обновляться
|
|||
|
|
- **Бета**: Поставьте галочку для предварительных релизов
|
|||
|
|
|
|||
|
|
2. Нажмите **"💾 Сохранить обновление"**
|
|||
|
|
|
|||
|
|
3. Готово! Файл `latest.json` обновлен
|
|||
|
|
|
|||
|
|
### 3. Загрузка существующих данных
|
|||
|
|
|
|||
|
|
Нажмите **"🔄 Загрузить текущую"** чтобы заполнить форму данными из `latest.json`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔒 Безопасность
|
|||
|
|
|
|||
|
|
### Вариант 1: Защита паролем через .htaccess
|
|||
|
|
|
|||
|
|
Создайте файл `admin/.htaccess`:
|
|||
|
|
|
|||
|
|
```apache
|
|||
|
|
AuthType Basic
|
|||
|
|
AuthName "Umbrix Admin Panel"
|
|||
|
|
AuthUserFile /var/www/updates/admin/.htpasswd
|
|||
|
|
Require valid-user
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Создайте пароль:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /var/www/updates/admin
|
|||
|
|
htpasswd -c .htpasswd admin
|
|||
|
|
# Введите пароль
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Вариант 2: Защита через PHP
|
|||
|
|
|
|||
|
|
Раскомментируйте строки в `save.php`:
|
|||
|
|
|
|||
|
|
```php
|
|||
|
|
// РАСКОММЕНТИРУЙТЕ ЭТИ СТРОКИ:
|
|||
|
|
$provided_password = $_SERVER['HTTP_X_ADMIN_PASSWORD'] ?? '';
|
|||
|
|
if ($provided_password !== $admin_password) {
|
|||
|
|
http_response_code(403);
|
|||
|
|
echo json_encode(['success' => false, 'message' => 'Неверный пароль']);
|
|||
|
|
exit();
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Затем в `index.html` добавьте в fetch:
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
headers: {
|
|||
|
|
'Content-Type': 'application/json',
|
|||
|
|
'X-Admin-Password': 'umbrix2024' // ваш пароль
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Вариант 3: Скрыть папку admin
|
|||
|
|
|
|||
|
|
Переименуйте папку в что-то секретное:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
mv admin secret-panel-f7a8e2b9
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Адрес будет: `https://api.umbrix.net/secret-panel-f7a8e2b9/`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📱 Использование с телефона
|
|||
|
|
|
|||
|
|
Интерфейс адаптивный - можно управлять с телефона!
|
|||
|
|
|
|||
|
|
1. Откройте в браузере
|
|||
|
|
2. Сохраните на главный экран
|
|||
|
|
3. Готово - полноценное PWA приложение
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🧪 Тестирование локально
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Запустите PHP сервер
|
|||
|
|
cd update-server
|
|||
|
|
php -S localhost:8000
|
|||
|
|
|
|||
|
|
# Откройте в браузере:
|
|||
|
|
http://localhost:8000/admin/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## ✨ Возможности
|
|||
|
|
|
|||
|
|
✅ **Красивый интерфейс** - современный дизайн
|
|||
|
|
✅ **Без кода** - просто заполните форму
|
|||
|
|
✅ **Валидация** - проверка всех полей
|
|||
|
|
✅ **Автобэкап** - старые версии сохраняются
|
|||
|
|
✅ **Логирование** - все действия записываются
|
|||
|
|
✅ **Мобильный** - работает на телефоне
|
|||
|
|
✅ **Безопасность** - защита паролем
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📝 Пример использования
|
|||
|
|
|
|||
|
|
### Сценарий: Выкатка новой версии
|
|||
|
|
|
|||
|
|
1. **Соберите APK:**
|
|||
|
|
```bash
|
|||
|
|
flutter build apk --release
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. **Загрузите APK на сервер** в `downloads/umbrix-2.5.8.apk`
|
|||
|
|
|
|||
|
|
3. **Откройте админ-панель** в браузере
|
|||
|
|
|
|||
|
|
4. **Заполните форму:**
|
|||
|
|
- Версия: `2.5.8`
|
|||
|
|
- Build: `258`
|
|||
|
|
- URL: `https://api.umbrix.net/downloads/umbrix-2.5.8.apk`
|
|||
|
|
- Описание: `🎉 Исправлены ошибки, улучшена стабильность`
|
|||
|
|
|
|||
|
|
5. **Нажмите "Сохранить"**
|
|||
|
|
|
|||
|
|
6. **Готово!** Пользователи получат уведомление
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🐛 Решение проблем
|
|||
|
|
|
|||
|
|
### Ошибка "Permission denied"
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Дайте права на запись
|
|||
|
|
chmod 666 latest.json
|
|||
|
|
chmod 777 logs/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Ошибка "Method Not Allowed"
|
|||
|
|
|
|||
|
|
Проверьте, что файл `save.php` доступен:
|
|||
|
|
```bash
|
|||
|
|
curl -X POST https://api.umbrix.net/admin/save.php
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Не загружается current version
|
|||
|
|
|
|||
|
|
Проверьте путь к `latest.json` в `save.php`:
|
|||
|
|
```php
|
|||
|
|
$json_file = __DIR__ . '/../latest.json';
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📊 Структура файлов
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
update-server/
|
|||
|
|
├── admin/
|
|||
|
|
│ ├── index.html ← Веб-интерфейс
|
|||
|
|
│ ├── save.php ← Скрипт сохранения
|
|||
|
|
│ ├── .htaccess ← Защита (опционально)
|
|||
|
|
│ └── README.md ← Эта инструкция
|
|||
|
|
│
|
|||
|
|
├── api.php ← API для приложения
|
|||
|
|
├── latest.json ← Текущая версия
|
|||
|
|
├── latest.json.backup.* ← Автобэкапы
|
|||
|
|
│
|
|||
|
|
├── downloads/ ← APK файлы
|
|||
|
|
│ └── umbrix-*.apk
|
|||
|
|
│
|
|||
|
|
└── logs/
|
|||
|
|
├── access.log ← Логи API
|
|||
|
|
└── admin.log ← Логи админки
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🎓 Дополнительные возможности
|
|||
|
|
|
|||
|
|
### Добавить подтверждение
|
|||
|
|
|
|||
|
|
В `index.html` перед сохранением:
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
if (!confirm('Точно сохранить обновление v' + formData.version + '?')) {
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Показать историю версий
|
|||
|
|
|
|||
|
|
Добавьте в `save.php`:
|
|||
|
|
|
|||
|
|
```php
|
|||
|
|
// Сохранение в историю
|
|||
|
|
$history_file = __DIR__ . '/../history.json';
|
|||
|
|
$history = file_exists($history_file)
|
|||
|
|
? json_decode(file_get_contents($history_file), true)
|
|||
|
|
: [];
|
|||
|
|
$history[] = array_merge($update_data, ['saved_at' => date('c')]);
|
|||
|
|
file_put_contents($history_file, json_encode($history, JSON_PRETTY_PRINT));
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## ✅ Готово!
|
|||
|
|
|
|||
|
|
Теперь у вас есть удобная панель управления обновлениями!
|
|||
|
|
|
|||
|
|
**Не нужно:**
|
|||
|
|
- ❌ Редактировать JSON вручную
|
|||
|
|
- ❌ Подключаться через SSH
|
|||
|
|
- ❌ Помнить формат файлов
|
|||
|
|
|
|||
|
|
**Просто:**
|
|||
|
|
- ✅ Открыли браузер
|
|||
|
|
- ✅ Заполнили форму
|
|||
|
|
- ✅ Нажали "Сохранить"
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**🎉 Приятного использования!**
|