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
This commit is contained in:
Umbrix Developer
2026-01-17 13:09:20 +03:00
parent ec5ebbd54b
commit 76a374950f
245 changed files with 7931 additions and 1315 deletions

View File

@@ -0,0 +1,305 @@
# 🎨 Веб-панель управления обновлениями
## 📋 Что это?
Простой веб-интерфейс для управления обновлениями 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
- ❌ Помнить формат файлов
**Просто:**
- ✅ Открыли браузер
- ✅ Заполнили форму
- ✅ Нажали "Сохранить"
---
**🎉 Приятного использования!**