Files
umbrix/update-server
Umbrix Developer 95383d09fc
Some checks failed
CI / run (push) Waiting to run
Upload store MSIX to release / upload-store-msix-to-release (push) Has been cancelled
feat: update to v1.7.3 with smart asset detection and auto-install
2026-01-18 20:14:19 +03:00
..

🚀 Сервер Обновлений Umbrix

⚠️ Внимание: Этот сервер предназначен только для Desktop платформ (Windows, macOS, Linux).
Для Android используется Google Play Store.


📋 Что это?

Система автоматических обновлений для настольных версий Umbrix. Пользователи получают уведомления об обновлениях прямо в приложении с автоматической загрузкой и установкой.


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

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

Процесс:

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

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


📦 Что нужно?

Минимальные требования:

  • Хостинг с PHP 7.4+ (любой: Timeweb, Beget, VPS)
  • Домен или поддомен (например: api.umbrix.net)
  • HTTPS сертификат (бесплатный Let's Encrypt)

🛠️ Установка - Пошагово

Шаг 1: Подготовка сервера

  1. Создайте папку на сервере:

    mkdir -p /var/www/updates
    
  2. Загрузите файлы из папки update-server/:

    • api.php - главный скрипт
    • latest.json - информация о последней версии
    • .htaccess - настройки Apache
  3. Создайте папку для APK файлов:

    mkdir -p /var/www/updates/downloads
    chmod 755 /var/www/updates/downloads
    

Шаг 2: Настройка домена

  1. Создайте поддомен (в панели хостинга):

    • Имя: api или updates
    • Полный адрес: api.umbrix.net
    • Папка: /var/www/updates
  2. Включите HTTPS:

    • В панели хостинга найдите "SSL сертификат"
    • Выберите "Let's Encrypt" (бесплатно)
    • Нажмите "Установить"

Шаг 3: Настройка приложения

Откройте файл lib/core/model/constants.dart и измените:

// Замените на адрес вашего сервера
static const customUpdateServerUrl = "https://api.umbrix.net/api/latest";

// Включите собственный сервер обновлений
static const useCustomUpdateServer = true;

Шаг 4: Загрузка новой версии

Когда у вас готова новая версия:

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

    flutter build apk --release
    
  2. Переименуйте файл (для удобства):

    # Из: build/app/outputs/flutter-apk/app-release.apk
    # В: umbrix-2.5.8.apk
    
  3. Загрузите на сервер:

    • Через FTP/SFTP загрузите APK в папку /var/www/updates/downloads/
    • Или через панель хостинга
  4. Обновите файл latest.json:

    {
      "version": "2.5.8",
      "build_number": "258",
      "is_prerelease": false,
      "download_url": "https://api.umbrix.net/downloads/umbrix-2.5.8.apk",
      "release_notes": "🎉 Что нового:\n\n- Исправлены ошибки соединения\n- Улучшена стабильность\n- Новые серверы",
      "published_at": "2026-01-17T12:00:00Z",
      "min_required_version": "2.5.0"
    }
    

🧪 Проверка работы

1. Проверьте API в браузере:

Откройте: https://api.umbrix.net/api/latest

Должны увидеть JSON:

{
  "version": "2.5.8",
  "build_number": "258",
  ...
}

2. Проверьте скачивание APK:

Откройте: https://api.umbrix.net/downloads/umbrix-2.5.8.apk

Должно начаться скачивание файла.

3. Проверьте в приложении:

  1. Откройте приложение
  2. Зайдите в Настройки → О программе
  3. Нажмите "Проверить обновления"
  4. Должно появиться окно с новой версией (если она новее текущей)

📝 Структура файлов на сервере

/var/www/updates/
├── api.php              # Главный скрипт API
├── latest.json          # Информация о последней версии
├── .htaccess            # Настройки Apache (ЧПУ, безопасность)
├── downloads/           # Папка с APK файлами
│   ├── umbrix-2.5.7.apk
│   ├── umbrix-2.5.8.apk
│   └── umbrix-2.6.0-beta.apk
└── logs/                # Логи (автоматически создается)
    └── access.log

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

Уже реализовано:

CORS защита - только ваше приложение может запрашивать обновления Rate Limiting - не более 10 запросов в минуту с одного IP Валидация JSON - проверка формата данных Логирование - все запросы записываются

Рекомендации:

  1. Используйте HTTPS (обязательно!)
  2. Регулярно обновляйте PHP на сервере
  3. Делайте бэкапы файлов и APK
  4. Проверяйте логи на подозрительную активность

🎨 Дополнительные возможности

1. Принудительное обновление

Если нужно заставить пользователей обновиться:

{
  "version": "2.6.0",
  "force_update": true,
  "min_required_version": "2.5.0"
}

Приложение не запустится на версиях ниже 2.5.0.

2. Бета-версии

Для тестировщиков:

{
  "version": "2.6.0-beta",
  "is_prerelease": true,
  "download_url": "https://api.umbrix.net/downloads/umbrix-2.6.0-beta.apk"
}

3. Аналитика

Смотрите файл logs/access.log:

  • Сколько пользователей проверяют обновления
  • Какие версии используют
  • Откуда приходят запросы

Частые проблемы

Проблема: "Обновления не приходят"

Решение:

  1. Проверьте, что useCustomUpdateServer = true в constants.dart
  2. Проверьте, что URL правильный (с https://)
  3. Проверьте, что version в latest.json больше текущей
  4. Пересоберите приложение после изменения констант

Проблема: "Ошибка при скачивании APK"

Решение:

  1. Проверьте права на папку: chmod 755 downloads
  2. Проверьте, что файл существует
  3. Проверьте, что URL в download_url правильный

Проблема: "API возвращает ошибку 500"

Решение:

  1. Проверьте PHP логи на сервере
  2. Убедитесь, что PHP версии 7.4+
  3. Проверьте права на файл latest.json: chmod 644 latest.json

📞 Поддержка

Если что-то не работает:

  1. Проверьте логи: /var/www/updates/logs/access.log
  2. Проверьте PHP логи на сервере
  3. Напишите в поддержку хостинга

🎓 Дополнительная информация

Полезные команды для сервера:

# Посмотреть последние запросы
tail -f /var/www/updates/logs/access.log

# Проверить размер APK файлов
du -h /var/www/updates/downloads/*

# Очистить старые APK (оставить последние 3)
ls -t /var/www/updates/downloads/*.apk | tail -n +4 | xargs rm

# Проверить права доступа
ls -la /var/www/updates/

Тестирование API через curl:

# Проверить API
curl https://api.umbrix.net/api/latest

# Проверить с бета-версиями
curl "https://api.umbrix.net/api/latest?include_prerelease=true"

# Скачать APK
curl -O https://api.umbrix.net/downloads/umbrix-2.5.8.apk

Чеклист перед запуском

  • PHP 7.4+ установлен
  • Папка /var/www/updates создана
  • Файлы api.php, latest.json, .htaccess загружены
  • Папка downloads/ создана с правами 755
  • Домен api.umbrix.net настроен
  • SSL сертификат установлен
  • URL в constants.dart обновлен
  • Приложение пересобрано
  • API отвечает в браузере
  • APK скачивается по ссылке
  • Проверка обновлений работает в приложении

🎉 Готово! Теперь вы можете выкатывать обновления без магазинов!