feat: update to v1.7.3 with smart asset detection and auto-install
Some checks failed
CI / run (push) Waiting to run
Upload store MSIX to release / upload-store-msix-to-release (push) Has been cancelled

This commit is contained in:
Umbrix Developer
2026-01-18 20:14:19 +03:00
parent e79b508531
commit 95383d09fc
14 changed files with 940 additions and 8 deletions

View File

@@ -0,0 +1,260 @@
# 🚀 Установка Gitea для системы обновлений Umbrix
## 📋 Подготовка
### 1. Аренда VPS
**Минимальные требования:**
- RAM: 1GB (рекомендую 2GB для комфорта)
- CPU: 1 vCore
- SSD: 20GB
- OS: Ubuntu 22.04 / Debian 12
**Рекомендуемые провайдеры:**
- Hetzner Cloud (от €3.79/мес, 2GB RAM)
- DigitalOcean Droplet ($6/мес)
- Contabo VPS (от €4.99/мес, 4GB RAM)
### 2. Домены
Настройте DNS записи для:
```
git.umbrix.net → IP вашего сервера
git-mirror1.umbrix.net → IP сервера (или другой сервер)
git-mirror2.umbrix.net → IP сервера (или другой сервер)
```
### 3. SSL сертификаты (Let's Encrypt)
```bash
# Установите certbot
sudo apt update && sudo apt install -y certbot
# Получите сертификаты для всех доменов
sudo certbot certonly --standalone -d git.umbrix.net
sudo certbot certonly --standalone -d git-mirror1.umbrix.net
sudo certbot certonly --standalone -d git-mirror2.umbrix.net
# Скопируйте в папку nginx/ssl/
sudo cp /etc/letsencrypt/live/git.umbrix.net/fullchain.pem nginx/ssl/
sudo cp /etc/letsencrypt/live/git.umbrix.net/privkey.pem nginx/ssl/
# Повторите для mirror1 и mirror2
```
## 🐳 Установка Gitea
### 1. Установите Docker
```bash
# Удалите старые версии
sudo apt remove docker docker-engine docker.io containerd runc
# Установите Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Добавьте пользователя в группу docker
sudo usermod -aG docker $USER
newgrp docker
# Установите Docker Compose
sudo apt install -y docker-compose
```
### 2. Загрузите конфигурацию
```bash
# Создайте папку
mkdir -p ~/gitea-server
cd ~/gitea-server
# Скопируйте файлы:
# - gitea-docker-compose.yml → docker-compose.yml
# - nginx.conf → nginx/nginx.conf
# Создайте папки для SSL
mkdir -p nginx/ssl gitea/data gitea/postgres
```
### 3. Настройте пароль БД
Отредактируйте `docker-compose.yml`:
```yaml
POSTGRES_PASSWORD=ваш_надёжный_пароль_здесь
```
### 4. Запустите Gitea
```bash
docker-compose up -d
```
### 5. Первоначальная настройка
Откройте браузер: `https://git.umbrix.net`
**Настройки установки:**
- Database Type: `PostgreSQL`
- Host: `db:5432`
- Username: `gitea`
- Password: (ваш пароль из docker-compose.yml)
- Database Name: `gitea`
- SSH Server Domain: `git.umbrix.net`
- Gitea Base URL: `https://git.umbrix.net`
- **Отключите регистрацию** (только вы сможете создавать аккаунты)
## 📦 Создание репозитория и релиза
### 1. Создайте репозиторий
- Войдите в Gitea
- Нажмите "+" → "New Repository"
- Название: `umbrix`
- Visibility: `Public` (для обновлений)
### 2. Загрузите код (с локальной машины)
```bash
cd ~/dorod/hiddify-umbrix-v1.7.0
# Инициализируйте Git (если не инициализирован)
git init
git add .
git commit -m "Initial commit"
# Добавьте remote (замените на свой домен)
git remote add gitea https://git.umbrix.net/your-username/umbrix.git
# Запушьте код
git push -u gitea main
```
### 3. Создайте релиз
**Через UI:**
1. Перейдите: Releases → New Release
2. Tag: `v1.7.3`
3. Title: `Umbrix v1.7.3`
4. Описание: (release notes)
5. Прикрепите файлы:
- `umbrix-1.7.3-linux-x86_64.deb`
- `umbrix-1.7.3-linux-x86_64.rpm`
- `Umbrix-1.7.3-linux-x86_64.AppImage`
**Через API:**
```bash
# Получите Access Token: Настройки → Applications → Generate Token
curl -X POST "https://git.umbrix.net/api/v1/repos/your-username/umbrix/releases" \
-H "Authorization: token YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"tag_name": "v1.7.3",
"name": "Umbrix v1.7.3",
"body": "## Что нового\n- Улучшена стабильность",
"draft": false,
"prerelease": false
}'
# Загрузите файлы релиза
curl -X POST "https://git.umbrix.net/api/v1/repos/your-username/umbrix/releases/ID/assets" \
-H "Authorization: token YOUR_ACCESS_TOKEN" \
-F "attachment=@dist/umbrix-1.7.3.deb"
```
## 🔧 Настройка Umbrix для Gitea
Отредактируйте `lib/core/model/constants.dart`:
```dart
abstract class Constants {
static const appName = "Umbrix";
static const githubUrl = "https://git.umbrix.net/your-username/umbrix";
static const githubReleasesApiUrl = "https://git.umbrix.net/api/v1/repos/your-username/umbrix/releases";
static const githubLatestReleaseUrl = "https://git.umbrix.net/your-username/umbrix/releases/latest";
// ... остальное без изменений
static const useCustomUpdateServer = false; // Используем Gitea API
}
```
**Пересоберите:**
```bash
flutter build linux --release
```
## 🌐 Стратегия зеркал (антиблокировка)
### Вариант 1: DNS Load Balancing
Несколько IP для одного домена:
```
git.umbrix.net → 1.2.3.4, 5.6.7.8, 9.10.11.12
```
### Вариант 2: Поддомены-зеркала
```dart
static const githubReleasesApiUrl = List<String>[
"https://git.umbrix.net/api/v1/repos/your-username/umbrix/releases",
"https://git-mirror1.umbrix.net/api/v1/repos/your-username/umbrix/releases",
"https://git-mirror2.umbrix.net/api/v1/repos/your-username/umbrix/releases",
];
// В app_update_repository.dart пробуем по очереди:
for (final url in Constants.githubReleasesApiUrl) {
try {
final response = await httpClient.get(url);
if (response.statusCode == 200) return response;
} catch (e) {
continue; // Пробуем следующее зеркало
}
}
```
### Вариант 3: Cloudflare + Workers
Прокси через Cloudflare Workers (обходит блокировки):
```javascript
// worker.js
export default {
async fetch(request) {
const url = new URL(request.url);
const targetUrl = "https://git.umbrix.net" + url.pathname;
return fetch(targetUrl);
}
}
```
Домен: `updates.umbrix.workers.dev`
## 📊 Мониторинг
```bash
# Логи Gitea
docker-compose logs -f gitea
# Статус
docker-compose ps
# Использование ресурсов
docker stats
```
## 🔄 Обновление Gitea
```bash
docker-compose pull
docker-compose up -d
```
## 💾 Бэкапы
```bash
# Бэкап данных Gitea
docker exec -u git gitea gitea dump -c /data/gitea/conf/app.ini
# Бэкап БД
docker exec gitea-db pg_dump -U gitea gitea > backup.sql
```
## 🎉 Готово!
Теперь у вас:
- ✅ Свой GitHub-клон на домене `git.umbrix.net`
- ✅ API для проверки обновлений (совместим с GitHub API)
- ✅ Зеркала для обхода блокировок
- ✅ UI для управления релизами
**URL releases API:**
```
https://git.umbrix.net/api/v1/repos/your-username/umbrix/releases
```
Формат ответа идентичен GitHub API!