- 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
188 lines
6.5 KiB
Markdown
188 lines
6.5 KiB
Markdown
# 🖥️ Сервер Обновлений 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.
|