Add template files for DLE deployment

This commit is contained in:
2025-10-24 16:13:08 +03:00
parent 6e21887c3b
commit a514855417
3 changed files with 447 additions and 0 deletions

130
EXPORT-TEMPLATE.md Normal file
View File

@@ -0,0 +1,130 @@
# 🚀 Экспорт шаблона приложения в GitHub
## Цель
Экспортировать все образы и тома как файлы в GitHub репозиторий для создания полного шаблона приложения.
## 📋 Команды для экспорта
### 1. Создать папки для данных
```bash
mkdir -p ./docker-data/images
mkdir -p ./docker-data/volumes
```
### 2. Экспортировать образы в файлы
```bash
# Backend образ
docker save digital_legal_entitydle-backend:latest -o ./docker-data/images/backend.tar
# Frontend образ
docker save digital_legal_entitydle-frontend:latest -o ./docker-data/images/frontend.tar
# Vector Search образ
docker save digital_legal_entitydle-vector-search:latest -o ./docker-data/images/vector-search.tar
# Ollama образ
docker save digital_legal_entitydle-ollama:latest -o ./docker-data/images/ollama.tar
# WebSSH Agent образ
docker save digital_legal_entitydle-webssh-agent:latest -o ./docker-data/images/webssh-agent.tar
```
### 3. Экспортировать тома в файлы
```bash
# PostgreSQL данные
docker run --rm -v digital_legal_entitydle_postgres_data:/source -v $(pwd)/docker-data/volumes:/backup alpine tar czf /backup/postgres_data.tar.gz -C /source .
# Ollama данные
docker run --rm -v digital_legal_entitydle_ollama_data:/source -v $(pwd)/docker-data/volumes:/backup alpine tar czf /backup/ollama_data.tar.gz -C /source .
# Vector Search данные
docker run --rm -v digital_legal_entitydle_vector_search_data:/source -v $(pwd)/docker-data/volumes:/backup alpine tar czf /backup/vector_search_data.tar.gz -C /source .
# Backend node_modules
docker run --rm -v digital_legal_entitydle_backend_node_modules:/source -v $(pwd)/docker-data/volumes:/backup alpine tar czf /backup/backend_node_modules.tar.gz -C /source .
# Frontend node_modules
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
```bash
# Добавить файлы в git
git add docker-data/
# Закоммитить
git commit -m "Add exported images and volumes"
# Запушить в репозиторий
git push
```
## 📊 Результат
После выполнения всех команд в репозитории будут:
-Все образы как файлы (.tar)
-Все тома как файлы (.tar.gz)
- ✅ Полный шаблон приложения
## 🚀 Использование шаблона
### Для пользователей:
```bash
# Клонировать репозиторий
git clone https://github.com/VC-HB3-Accelerator/DLE.git
cd DLE
# Импортировать образы
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
# Импортировать тома
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_frontend_node_modules:/target -v $(pwd)/docker-data/volumes:/backup alpine tar xzf /backup/frontend_node_modules.tar.gz -C /target
# Запустить приложение
docker-compose up -d
```
## ⚠️ Важные замечания
1. **Размер файлов**: Образы могут быть большими (несколько GB)
2. **Время загрузки**: Зависит от размера файлов и скорости интернета
3. **Место на диске**: Убедитесь, что достаточно места для всех файлов
## 📁 Структура после экспорта
```
docker-data/
├── images/
│ ├── backend.tar
│ ├── frontend.tar
│ ├── vector-search.tar
│ ├── ollama.tar
│ └── webssh-agent.tar
└── volumes/
├── postgres_data.tar.gz
├── ollama_data.tar.gz
├── vector_search_data.tar.gz
├── backend_node_modules.tar.gz
└── frontend_node_modules.tar.gz
```
## ✅ Готово!
После выполнения всех команд у вас будет полный шаблон приложения в GitHub репозитории, который можно клонировать и запускать на любом устройстве.

70
README-TEMPLATE.md Normal file
View File

@@ -0,0 +1,70 @@
# 🚀 Digital Legal Entity (DLE) - Шаблон приложения
## Описание
Полный шаблон приложения Digital Legal Entity
## 📋 Требования
- Docker и Docker Compose
## 🚀 Быстрый запуск
### Автоматическая установка (рекомендуется)
```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. Импорт образов
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
# 3. Создание и импорт томов
docker volume create digital_legal_entitydle_postgres_data
docker volume create digital_legal_entitydle_ollama_data
docker volume create digital_legal_entitydle_vector_search_data
docker volume create digital_legal_entitydle_backend_node_modules
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
# 4. Запуск приложения
docker-compose up -d
```
### Доступ к приложению
- **Frontend**: http://localhost:5173
## 🔧 Управление
### Запуск
```bash
docker-compose up -d
```
### Остановка
```bash
docker-compose down
```
## 📝 Лицензия
Copyright (c) 2024-2025 Тарабанов Александр Викторович
All rights reserved.
This software is proprietary and confidential.
For licensing inquiries: info@hb3-accelerator.com
**© 2024-2025 Тарабанов Александр Викторович. Все права защищены.**

247
setup-template.sh Executable file
View File

@@ -0,0 +1,247 @@
#!/bin/bash
# Copyright (c) 2024-2025 Тарабанов Александр Викторович
# All rights reserved.
# This software is proprietary and confidential.
# For licensing inquiries: info@hb3-accelerator.com
# Скрипт для автоматической установки шаблона приложения DLE
# Скачивает репозиторий, проверяет Docker, импортирует образы и тома, запускает приложение
# Цветной вывод
print_green() {
echo -e "\e[32m$1\e[0m"
}
print_blue() {
echo -e "\e[34m$1\e[0m"
}
print_yellow() {
echo -e "\e[33m$1\e[0m"
}
print_red() {
echo -e "\e[31m$1\e[0m"
}
# Проверка Docker
check_docker() {
print_blue "🔍 Проверка Docker..."
if ! command -v docker &> /dev/null; then
print_red "❌ Docker не установлен!"
print_yellow "Установите Docker: https://docs.docker.com/get-docker/"
exit 1
fi
if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then
print_red "❌ Docker Compose не установлен!"
print_yellow "Установите Docker Compose: https://docs.docker.com/compose/install/"
exit 1
fi
print_green "✅ Docker и Docker Compose установлены"
}
# Проверка Docker запущен
check_docker_running() {
print_blue "🔍 Проверка запуска Docker..."
if ! docker info &> /dev/null; then
print_red "❌ Docker не запущен!"
print_yellow "Запустите Docker и повторите попытку"
exit 1
fi
print_green "✅ Docker запущен"
}
# Скачивание репозитория
download_repo() {
print_blue "📥 Скачивание репозитория..."
if [ -d "DLE" ]; then
print_yellow "⚠️ Папка DLE уже существует"
read -p "Удалить существующую папку? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
rm -rf DLE
else
print_blue "Используем существующую папку"
cd DLE
return
fi
fi
git clone https://github.com/VC-HB3-Accelerator/DLE.git
cd DLE
print_green "✅ Репозиторий скачан"
}
# Проверка файлов образов
check_images() {
print_blue "🔍 Проверка файлов образов..."
if [ ! -d "docker-data/images" ]; then
print_red "❌ Папка docker-data/images не найдена!"
print_yellow "Убедитесь, что репозиторий содержит экспортированные образы"
exit 1
fi
local images=("backend.tar" "frontend.tar" "vector-search.tar" "ollama.tar" "webssh-agent.tar")
for image in "${images[@]}"; do
if [ ! -f "docker-data/images/$image" ]; then
print_red "❌ Файл образа $image не найден!"
exit 1
fi
done
print_green "✅ Все файлы образов найдены"
}
# Проверка файлов томов
check_volumes() {
print_blue "🔍 Проверка файлов томов..."
if [ ! -d "docker-data/volumes" ]; then
print_red "❌ Папка docker-data/volumes не найдена!"
print_yellow "Убедитесь, что репозиторий содержит экспортированные тома"
exit 1
fi
local volumes=("postgres_data.tar.gz" "ollama_data.tar.gz" "vector_search_data.tar.gz" "backend_node_modules.tar.gz" "frontend_node_modules.tar.gz")
for volume in "${volumes[@]}"; do
if [ ! -f "docker-data/volumes/$volume" ]; then
print_red "❌ Файл тома $volume не найден!"
exit 1
fi
done
print_green "✅ Все файлы томов найдены"
}
# Импорт образов
import_images() {
print_blue "📦 Импорт образов..."
local images=("backend.tar" "frontend.tar" "vector-search.tar" "ollama.tar" "webssh-agent.tar")
for image in "${images[@]}"; do
print_blue "Импорт $image..."
if docker load -i "docker-data/images/$image"; then
print_green "$image импортирован"
else
print_red "❌ Ошибка импорта $image"
exit 1
fi
done
print_green "✅ Все образы импортированы"
}
# Создание томов
create_volumes() {
print_blue "💾 Создание томов..."
local volumes=("digital_legal_entitydle_postgres_data" "digital_legal_entitydle_ollama_data" "digital_legal_entitydle_vector_search_data" "digital_legal_entitydle_backend_node_modules" "digital_legal_entitydle_frontend_node_modules")
for volume in "${volumes[@]}"; do
if docker volume ls | grep -q "$volume"; then
print_yellow "⚠️ Том $volume уже существует"
else
docker volume create "$volume"
print_green "✅ Том $volume создан"
fi
done
}
# Импорт томов
import_volumes() {
print_blue "📥 Импорт данных в тома..."
# PostgreSQL
print_blue "Импорт 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
print_green "✅ postgres_data импортирован"
# Ollama
print_blue "Импорт 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
print_green "✅ ollama_data импортирован"
# Vector Search
print_blue "Импорт 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
print_green "✅ vector_search_data импортирован"
# Backend node_modules
print_blue "Импорт 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
print_green "✅ backend_node_modules импортирован"
# Frontend node_modules
print_blue "Импорт frontend_node_modules..."
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
print_green "✅ frontend_node_modules импортирован"
print_green "✅ Все тома импортированы"
}
# Запуск приложения
start_application() {
print_blue "🚀 Запуск приложения..."
if docker-compose up -d; then
print_green "✅ Приложение запущено"
print_blue "🌐 Доступ к приложению: http://localhost:5173"
else
print_red "❌ Ошибка запуска приложения"
print_yellow "Проверьте логи: docker-compose logs"
exit 1
fi
}
# Проверка статуса
check_status() {
print_blue "🔍 Проверка статуса контейнеров..."
sleep 10
if docker-compose ps | grep -q "Up"; then
print_green "✅ Контейнеры запущены"
print_blue "🌐 Приложение доступно по адресу: http://localhost:5173"
else
print_yellow "⚠️ Некоторые контейнеры могут быть не готовы"
print_blue "Проверьте статус: docker-compose ps"
print_blue "Просмотрите логи: docker-compose logs"
fi
}
# Основная функция
main() {
print_blue "🚀 Установка шаблона приложения Digital Legal Entity"
print_blue "=================================================="
# Проверки
check_docker
check_docker_running
# Скачивание
download_repo
# Проверка файлов
check_images
check_volumes
# Импорт
import_images
create_volumes
import_volumes
# Запуск
start_application
check_status
print_green "🎉 Установка завершена!"
print_blue "=================================================="
print_blue "🌐 Приложение доступно: http://localhost:5173"
print_blue "🔧 Управление:"
print_blue " Запуск: docker-compose up -d"
print_blue " Остановка: docker-compose down"
print_blue " Логи: docker-compose logs"
}
# Запуск
main "$@"