Files
umbrix/update-server/README_DESKTOP.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

6.5 KiB
Raw Permalink Blame History

🖥️ Сервер Обновлений Umbrix для Desktop Платформ

📋 Что это?

Система автоматических обновлений для настольных версий Umbrix (Windows, macOS, Linux).

⚠️ Важно: Для Android используется Google Play Store. Этот сервер только для Desktop!


🎯 Как это работает?

┌──────────────┐          ┌──────────────────┐          ┌─────────────┐
│  Desktop App │ -------> │  Ваш сервер      │ <------- │ Вы загружаете│
│ Windows/Mac/ │  запрос  │  (PHP API)       │  файлы   │ новую версию │
│    Linux     │          │                  │          │  .exe/.dmg   │
└──────────────┘          └──────────────────┘          └─────────────┘
      │                           │
      │  ответ JSON               │
      │  + скачивание             │
      │  с прогресс-баром         │
      └──────────────────────────>│

Процесс:

  1. Desktop приложение проверяет сервер на наличие обновлений
  2. Сервер возвращает информацию о последней версии
  3. Приложение скачивает обновление с прогресс-баром
  4. Пользователь запускает установщик

Для Android: Обновления через Google Play Store (автоматически)


📦 Требования

  • PHP 7.4+ с веб-сервером (Apache/Nginx) или встроенный сервер PHP
  • Доступ к файловой системе для хранения файлов обновлений
  • (Опционально) Docker для production деплоя

🚀 Быстрый старт

1. Локальный запуск (для разработки)

cd update-server
php -S localhost:8000

Откройте: http://localhost:8000/admin/

2. Загрузка файла обновления

# Windows
cp umbrix-1.7.3-setup.exe downloads/windows/

# macOS
cp umbrix-1.7.3.dmg downloads/macos/

# Linux
cp umbrix-1.7.3.AppImage downloads/linux/

3. Обновление версии через Web-панель

  1. Откройте http://localhost:8000/admin/
  2. Введите новую версию (например: 1.7.3)
  3. Укажите путь к файлу (например: http://your-server.com/downloads/windows/umbrix-1.7.3.exe)
  4. Нажмите "Сохранить"

📁 Структура

update-server/
├── api.php              # REST API для проверки обновлений
├── latest.json          # Информация о последней версии
├── admin/
│   ├── index.html       # Web-панель управления
│   ├── save.php         # Сохранение новой версии
│   ├── history.php      # История версий
│   └── restore.php      # Откат на предыдущую версию
├── downloads/           # Файлы обновлений
│   ├── windows/        # .exe, .msi
│   ├── macos/          # .dmg, .pkg
│   ├── linux/          # .AppImage, .deb, .rpm
│   └── android/        # (только для тестирования)
└── backups/            # Автоматические резервные копии

🔌 API Endpoints

GET /api.php - Проверка обновлений

Ответ:

{
  "version": "1.7.3",
  "build_number": "173",
  "is_prerelease": false,
  "download_url": "http://server.com/downloads/windows/umbrix-1.7.3.exe",
  "release_notes": "Новые возможности...",
  "published_at": "2026-01-17T12:00:00.000Z",
  "min_required_version": "1.0.0",
  "file_size_bytes": 95000000,
  "file_checksum_sha256": ""
}

🐳 Docker Development

docker-compose up -d

Сервер будет доступен на http://localhost:8000


🌐 Production деплой

Вариант 1: Обычный веб-хостинг

  1. Загрузите файлы на сервер
  2. Настройте веб-сервер (Apache/Nginx)
  3. Установите права доступа:
    chmod 755 update-server/
    chmod 644 update-server/*.php
    chmod 755 update-server/downloads/
    

Вариант 2: Docker

См. DOCKER_STORAGE.md для настройки production окружения.


🔐 Безопасность

  • Rate limiting в API (10 запросов в минуту с одного IP)
  • Валидация входных данных
  • Автоматические бэкапы перед изменениями
  • ⚠️ Рекомендуется: HTTPS для production
  • ⚠️ Рекомендуется: Базовая HTTP авторизация для /admin/

📚 Дополнительная документация


🆘 Поддержка

Если приложение не видит обновления:

  1. Проверьте доступность API: curl http://your-server.com/api.php
  2. Убедитесь, что latest.json содержит актуальные данные
  3. Проверьте логи: cat logs/access.log

⚙️ Настройка в приложении

В lib/core/model/constants.dart:

// Включить/выключить custom update server
static const bool useCustomUpdateServer = true;

// URL вашего сервера обновлений (только для Desktop)
static const String customUpdateServerUrl = "https://your-server.com/api.php";

Примечание: Для Android эта настройка игнорируется, используется Google Play.