139 lines
3.0 KiB
Markdown
139 lines
3.0 KiB
Markdown
|
|
# 🚀 Запуск Update Server в Docker
|
|||
|
|
|
|||
|
|
## Быстрый старт
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 1. Запустите контейнер
|
|||
|
|
docker-compose up -d
|
|||
|
|
|
|||
|
|
# 2. Проверьте статус
|
|||
|
|
docker-compose ps
|
|||
|
|
|
|||
|
|
# 3. Откройте веб-панель
|
|||
|
|
# http://localhost:8000/admin/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📦 Загрузка APK файлов
|
|||
|
|
|
|||
|
|
### После сборки приложения:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 1. Соберите APK
|
|||
|
|
flutter build apk --release
|
|||
|
|
|
|||
|
|
# 2. Скопируйте в контейнер
|
|||
|
|
docker cp build/app/outputs/flutter-apk/app-release.apk \
|
|||
|
|
umbrix-update-server:/var/www/downloads/android/umbrix-1.7.1.apk
|
|||
|
|
|
|||
|
|
# 3. Проверьте что файл загружен
|
|||
|
|
docker exec umbrix-update-server ls -lh /var/www/downloads/android/
|
|||
|
|
|
|||
|
|
# 4. Обновите latest.json через веб-панель
|
|||
|
|
# http://localhost:8000/admin/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🔧 Управление контейнером
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Запустить
|
|||
|
|
docker-compose up -d
|
|||
|
|
|
|||
|
|
# Остановить
|
|||
|
|
docker-compose down
|
|||
|
|
|
|||
|
|
# Перезапустить
|
|||
|
|
docker-compose restart
|
|||
|
|
|
|||
|
|
# Посмотреть логи
|
|||
|
|
docker-compose logs -f
|
|||
|
|
|
|||
|
|
# Остановить с удалением volumes (осторожно!)
|
|||
|
|
docker-compose down -v
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📂 Структура volumes
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
umbrix-downloads/ # APK файлы (persistent)
|
|||
|
|
├── android/
|
|||
|
|
├── windows/
|
|||
|
|
├── ios/
|
|||
|
|
├── linux/
|
|||
|
|
└── macos/
|
|||
|
|
|
|||
|
|
umbrix-logs/ # Логи сервера
|
|||
|
|
├── access.log
|
|||
|
|
├── admin.log
|
|||
|
|
└── restore.log
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🌐 URL для latest.json
|
|||
|
|
|
|||
|
|
После запуска в Docker, обновите константы:
|
|||
|
|
|
|||
|
|
```dart
|
|||
|
|
// lib/core/model/constants.dart
|
|||
|
|
static const customUpdateServerUrl = "https://api.umbrix.net/api.php";
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
И в latest.json используйте:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"download_url": "https://api.umbrix.net/downloads/android/umbrix-1.7.1.apk"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🔒 Production настройки
|
|||
|
|
|
|||
|
|
Для продакшена добавьте Nginx:
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
services:
|
|||
|
|
nginx:
|
|||
|
|
image: nginx:alpine
|
|||
|
|
ports:
|
|||
|
|
- "80:80"
|
|||
|
|
- "443:443"
|
|||
|
|
volumes:
|
|||
|
|
- ./nginx.conf:/etc/nginx/nginx.conf
|
|||
|
|
- ./ssl:/etc/nginx/ssl
|
|||
|
|
- umbrix-downloads:/var/www/downloads:ro
|
|||
|
|
depends_on:
|
|||
|
|
- update-server
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 💾 Backup
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Создать backup
|
|||
|
|
docker run --rm \
|
|||
|
|
-v umbrix-downloads:/data \
|
|||
|
|
-v $(pwd):/backup \
|
|||
|
|
alpine tar czf /backup/downloads-backup-$(date +%Y%m%d).tar.gz /data
|
|||
|
|
|
|||
|
|
# Восстановить backup
|
|||
|
|
docker run --rm \
|
|||
|
|
-v umbrix-downloads:/data \
|
|||
|
|
-v $(pwd):/backup \
|
|||
|
|
alpine tar xzf /backup/downloads-backup-YYYYMMDD.tar.gz -C /
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🐛 Отладка
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Войти в контейнер
|
|||
|
|
docker exec -it umbrix-update-server sh
|
|||
|
|
|
|||
|
|
# Проверить PHP
|
|||
|
|
docker exec umbrix-update-server php -v
|
|||
|
|
|
|||
|
|
# Проверить файлы
|
|||
|
|
docker exec umbrix-update-server ls -la /var/www/downloads/android/
|
|||
|
|
|
|||
|
|
# Проверить latest.json
|
|||
|
|
docker exec umbrix-update-server cat /var/www/latest.json
|
|||
|
|
|
|||
|
|
# Проверить логи
|
|||
|
|
docker exec umbrix-update-server tail -f /var/www/logs/access.log
|
|||
|
|
```
|