- 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
6.5 KiB
6.5 KiB
🖥️ Сервер Обновлений Umbrix для Desktop Платформ
📋 Что это?
Система автоматических обновлений для настольных версий Umbrix (Windows, macOS, Linux).
⚠️ Важно: Для Android используется Google Play Store. Этот сервер только для Desktop!
🎯 Как это работает?
┌──────────────┐ ┌──────────────────┐ ┌─────────────┐
│ Desktop App │ -------> │ Ваш сервер │ <------- │ Вы загружаете│
│ Windows/Mac/ │ запрос │ (PHP API) │ файлы │ новую версию │
│ Linux │ │ │ │ .exe/.dmg │
└──────────────┘ └──────────────────┘ └─────────────┘
│ │
│ ответ JSON │
│ + скачивание │
│ с прогресс-баром │
└──────────────────────────>│
Процесс:
- Desktop приложение проверяет сервер на наличие обновлений
- Сервер возвращает информацию о последней версии
- Приложение скачивает обновление с прогресс-баром
- Пользователь запускает установщик
Для 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-панель
- Откройте http://localhost:8000/admin/
- Введите новую версию (например: 1.7.3)
- Укажите путь к файлу (например:
http://your-server.com/downloads/windows/umbrix-1.7.3.exe) - Нажмите "Сохранить"
📁 Структура
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: Обычный веб-хостинг
- Загрузите файлы на сервер
- Настройте веб-сервер (Apache/Nginx)
- Установите права доступа:
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/
📚 Дополнительная документация
- UPLOAD_FILES.txt - Как загружать файлы обновлений
- DOCKER_STORAGE.md - Настройка storage для Docker
- DOCKER_QUICKSTART.md - Быстрый запуск с Docker
🆘 Поддержка
Если приложение не видит обновления:
- Проверьте доступность API:
curl http://your-server.com/api.php - Убедитесь, что latest.json содержит актуальные данные
- Проверьте логи:
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.