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

8.9 KiB
Raw Blame History

🎨 Веб-панель управления обновлениями

📋 Что это?

Простой веб-интерфейс для управления обновлениями 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: Настройте права доступа

# Права на папку 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:

AuthType Basic
AuthName "Umbrix Admin Panel"
AuthUserFile /var/www/updates/admin/.htpasswd
Require valid-user

Создайте пароль:

cd /var/www/updates/admin
htpasswd -c .htpasswd admin
# Введите пароль

Вариант 2: Защита через PHP

Раскомментируйте строки в save.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:

headers: {
    'Content-Type': 'application/json',
    'X-Admin-Password': 'umbrix2024'  // ваш пароль
}

Вариант 3: Скрыть папку admin

Переименуйте папку в что-то секретное:

mv admin secret-panel-f7a8e2b9

Адрес будет: https://api.umbrix.net/secret-panel-f7a8e2b9/


📱 Использование с телефона

Интерфейс адаптивный - можно управлять с телефона!

  1. Откройте в браузере
  2. Сохраните на главный экран
  3. Готово - полноценное PWA приложение

🧪 Тестирование локально

# Запустите PHP сервер
cd update-server
php -S localhost:8000

# Откройте в браузере:
http://localhost:8000/admin/

Возможности

Красивый интерфейс - современный дизайн
Без кода - просто заполните форму
Валидация - проверка всех полей
Автобэкап - старые версии сохраняются
Логирование - все действия записываются
Мобильный - работает на телефоне
Безопасность - защита паролем


📝 Пример использования

Сценарий: Выкатка новой версии

  1. Соберите APK:

    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"

# Дайте права на запись
chmod 666 latest.json
chmod 777 logs/

Ошибка "Method Not Allowed"

Проверьте, что файл save.php доступен:

curl -X POST https://api.umbrix.net/admin/save.php

Не загружается current version

Проверьте путь к latest.json в save.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 перед сохранением:

if (!confirm('Точно сохранить обновление v' + formData.version + '?')) {
    return;
}

Показать историю версий

Добавьте в save.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
  • Помнить формат файлов

Просто:

  • Открыли браузер
  • Заполнили форму
  • Нажали "Сохранить"

🎉 Приятного использования!