# 🖥️ Сервер Обновлений 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. Локальный запуск (для разработки) ```bash cd update-server php -S localhost:8000 ``` Откройте: http://localhost:8000/admin/ ### 2. Загрузка файла обновления ```bash # 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` - Проверка обновлений **Ответ:** ```json { "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 ```bash docker-compose up -d ``` Сервер будет доступен на http://localhost:8000 --- ## 🌐 Production деплой ### Вариант 1: Обычный веб-хостинг 1. Загрузите файлы на сервер 2. Настройте веб-сервер (Apache/Nginx) 3. Установите права доступа: ```bash chmod 755 update-server/ chmod 644 update-server/*.php chmod 755 update-server/downloads/ ``` ### Вариант 2: Docker См. [DOCKER_STORAGE.md](DOCKER_STORAGE.md) для настройки production окружения. --- ## 🔐 Безопасность - ✅ Rate limiting в API (10 запросов в минуту с одного IP) - ✅ Валидация входных данных - ✅ Автоматические бэкапы перед изменениями - ⚠️ **Рекомендуется:** HTTPS для production - ⚠️ **Рекомендуется:** Базовая HTTP авторизация для /admin/ --- ## 📚 Дополнительная документация - [UPLOAD_FILES.txt](UPLOAD_FILES.txt) - Как загружать файлы обновлений - [DOCKER_STORAGE.md](DOCKER_STORAGE.md) - Настройка storage для Docker - [DOCKER_QUICKSTART.md](DOCKER_QUICKSTART.md) - Быстрый запуск с Docker --- ## 🆘 Поддержка Если приложение не видит обновления: 1. Проверьте доступность API: `curl http://your-server.com/api.php` 2. Убедитесь, что latest.json содержит актуальные данные 3. Проверьте логи: `cat logs/access.log` --- ## ⚙️ Настройка в приложении В `lib/core/model/constants.dart`: ```dart // Включить/выключить custom update server static const bool useCustomUpdateServer = true; // URL вашего сервера обновлений (только для Desktop) static const String customUpdateServerUrl = "https://your-server.com/api.php"; ``` **Примечание:** Для Android эта настройка игнорируется, используется Google Play.