Backup: Add template files and updated setup script

This commit is contained in:
2025-10-24 17:04:39 +03:00
parent e41f7a8c30
commit 6335b7900a
3 changed files with 209 additions and 278 deletions

View File

@@ -47,65 +47,158 @@ docker run --rm -v digital_legal_entitydle_backend_node_modules:/source -v $(pwd
docker run --rm -v digital_legal_entitydle_frontend_node_modules:/source -v $(pwd)/docker-data/volumes:/backup alpine tar czf /backup/frontend_node_modules.tar.gz -C /source .
```
### 4. Загрузить все в GitHub
### 4. Создать архив для GitHub Release
```bash
# Добавить файлы в git
git add docker-data/
# Создать сжатый архив
tar -czf dle-template.tar.gz docker-data/
# Закоммитить
git commit -m "Add exported images and volumes"
# Проверить размер
ls -lh dle-template.tar.gz
# Ожидаемый размер: ~5.3GB
```
# Запушить в репозиторий
git push
### 5. Создать GitHub Release
```bash
# Создать тег версии
git tag v1.0.0
git push origin v1.0.0
# GitHub автоматически создаст Release
# Затем вручную загрузить dle-template.tar.gz в Release
```
## 📊 Результат
После выполнения всех команд в репозитории будут:
-Все образы как файлы (.tar)
-Все тома как файлы (.tar.gz)
-Полный шаблон приложения
После выполнения всех команд:
-**GitHub Release** с архивом `dle-template.tar.gz` (5.3GB)
-**Все образы** как файлы (.tar) внутри архива
-**Все тома** как файлы (.tar.gz) внутри архива
-**Полный шаблон** приложения готов к скачиванию
## 🚀 Использование шаблона
### Для пользователей:
#### Автоматическая установка (рекомендуется):
```bash
# Клонировать репозиторий
# Скачать и запустить скрипт установки
curl -fsSL https://raw.githubusercontent.com/VC-HB3-Accelerator/DLE/main/setup-template.sh | bash
```
#### Ручная установка:
```bash
# 1. Клонировать репозиторий
git clone https://github.com/VC-HB3-Accelerator/DLE.git
cd DLE
# Импортировать образы
# 2. Скачать архив из GitHub Release
# Перейти на страницу Release и скачать dle-template.tar.gz (5.3GB)
# 3. Распаковать архив
tar -xzf dle-template.tar.gz
# 4. Импортировать образы
docker load -i docker-data/images/backend.tar
docker load -i docker-data/images/frontend.tar
docker load -i docker-data/images/vector-search.tar
docker load -i docker-data/images/ollama.tar
docker load -i docker-data/images/webssh-agent.tar
# Импортировать тома
# 5. Создать и импортировать тома
docker volume create digital_legal_entitydle_postgres_data
docker run --rm -v digital_legal_entitydle_postgres_data:/target -v $(pwd)/docker-data/volumes:/backup alpine tar xzf /backup/postgres_data.tar.gz -C /target
docker volume create digital_legal_entitydle_ollama_data
docker run --rm -v digital_legal_entitydle_ollama_data:/target -v $(pwd)/docker-data/volumes:/backup alpine tar xzf /backup/ollama_data.tar.gz -C /target
docker volume create digital_legal_entitydle_vector_search_data
docker run --rm -v digital_legal_entitydle_vector_search_data:/target -v $(pwd)/docker-data/volumes:/backup alpine tar xzf /backup/vector_search_data.tar.gz -C /target
docker volume create digital_legal_entitydle_backend_node_modules
docker run --rm -v digital_legal_entitydle_backend_node_modules:/target -v $(pwd)/docker-data/volumes:/backup alpine tar xzf /backup/backend_node_modules.tar.gz -C /target
docker volume create digital_legal_entitydle_frontend_node_modules
docker run --rm -v digital_legal_entitydle_postgres_data:/target -v $(pwd)/docker-data/volumes:/backup alpine tar xzf /backup/postgres_data.tar.gz -C /target
docker run --rm -v digital_legal_entitydle_ollama_data:/target -v $(pwd)/docker-data/volumes:/backup alpine tar xzf /backup/ollama_data.tar.gz -C /target
docker run --rm -v digital_legal_entitydle_vector_search_data:/target -v $(pwd)/docker-data/volumes:/backup alpine tar xzf /backup/vector_search_data.tar.gz -C /target
docker run --rm -v digital_legal_entitydle_backend_node_modules:/target -v $(pwd)/docker-data/volumes:/backup alpine tar xzf /backup/backend_node_modules.tar.gz -C /target
docker run --rm -v digital_legal_entitydle_frontend_node_modules:/target -v $(pwd)/docker-data/volumes:/backup alpine tar xzf /backup/frontend_node_modules.tar.gz -C /target
# Запустить приложение
# 6. Запустить приложение
docker-compose up -d
```
## ⚠️ Важные замечания
## 📊 Точные размеры экспорта
1. **Размер файлов**: Образы могут быть большими (несколько GB)
2. **Время загрузки**: Зависит от размера файлов и скорости интернета
3. **Место на диске**: Убедитесь, что достаточно места для всех файлов
### Образы (5 файлов .tar):
- `backend.tar` - **36MB**
- `frontend.tar` - **45MB**
- `vector-search.tar` - **40MB**
- `ollama.tar` - **46MB**
- `webssh-agent.tar` - **47MB**
- **Итого образы**: ~215MB
### Volumes (5 файлов .tar.gz):
- `postgres_data.tar.gz` - **28MB**
- `ollama_data.tar.gz` - **5.2GB** (самый большой!)
- `vector_search_data.tar.gz` - **87 байт** (пустой)
- `backend_node_modules.tar.gz` - **127MB**
- `frontend_node_modules.tar.gz` - **40MB**
- **Итого volumes**: ~5.4GB
### **ОБЩИЙ РАЗМЕР**: ~5.6GB
## 🚨 Проблема с GitHub
**GitHub имеет лимиты:**
- Максимум 100MB на файл
- Максимум 1GB на репозиторий (бесплатно)
- Наш архив 5.3GB превышает лимиты!
## 💡 Варианты решения для хранения архива
### 1. GitHub Releases (рекомендуется) ✅
```bash
# Создать архив
tar -czf dle-template.tar.gz docker-data/
# Создать тег и Release
git tag v1.0.0
git push origin v1.0.0
# Загрузить dle-template.tar.gz в GitHub Release
# Лимит: 2GB на файл, 10GB на релиз
```
**Плюсы**:
- Простота настройки
- Нет лимитов размера (до 2GB на файл)
- Версионирование релизов
- Отдельно от кода репозитория
**Минусы**:
- Пользователи скачивают архив отдельно
- Нужно обновлять инструкции
### 2. Git LFS (Large File Storage)
```bash
# Настроить LFS
git lfs track "*.tar" "*.tar.gz"
git add .gitattributes
git add docker-data/
```
**Плюсы**: Автоматическое управление большими файлами
**Минусы**: Лимит 1GB (бесплатно), нужен Git LFS
### 3. Внешние хранилища
- **Google Drive** - 15GB бесплатно
- **Dropbox** - 2GB бесплатно
- **OneDrive** - 5GB бесплатно
- **Mega** - 20GB бесплатно
### 4. Облачные хранилища
- **AWS S3** - платно, но надежно
- **Google Cloud Storage** - платно
- **Azure Blob** - платно
### 5. Разделение на части
```bash
# Разделить архив на части по 1GB
split -b 1G dle-template.tar.gz dle-template-part-
# Результат: dle-template-part-aa, dle-template-part-ab, etc.
```
## 📁 Структура после экспорта
@@ -127,4 +220,12 @@ docker-data/
## ✅ Готово!
После выполнения всех команд у вас будет полный шаблон приложения в GitHub репозитории, который можно клонировать и запускать на любом устройстве.
После выполнения всех команд у вас будет:
-**GitHub Release** с архивом `dle-template.tar.gz` (5.3GB)
-**Полный шаблон** приложения готов к скачиванию
-**Автоматический скрипт** установки для пользователей
-**Ручные инструкции** для продвинутых пользователей
**Пользователи могут:**
1. **Автоматически**: `curl -fsSL ... | bash`
2. **Вручную**: Скачать архив из Release и следовать инструкциям