Files
umbrix/update-server/admin/README.md
Umbrix Developer 76a374950f feat: mobile-like window size and always-visible stats
- 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
2026-01-17 13:09:20 +03:00

306 lines
8.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🎨 Веб-панель управления обновлениями
## 📋 Что это?
Простой веб-интерфейс для управления обновлениями 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
- ❌ Помнить формат файлов
**Просто:**
- ✅ Открыли браузер
- ✅ Заполнили форму
- ✅ Нажали "Сохранить"
---
**🎉 Приятного использования!**