- Changed window size to mobile phone format (400x800) - Removed width condition for ActiveProxyFooter - now always visible - Added run-umbrix.sh launch script with icon copying - Stats cards now display on all screen sizes
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
|
||
- ❌ Помнить формат файлов
|
||
|
||
**Просто:**
|
||
- ✅ Открыли браузер
|
||
- ✅ Заполнили форму
|
||
- ✅ Нажали "Сохранить"
|
||
|
||
---
|
||
|
||
**🎉 Приятного использования!**
|