From a5148554174f1252faddbf63a8ee8ddbe296e910 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 24 Oct 2025 16:13:08 +0300 Subject: [PATCH] Add template files for DLE deployment --- EXPORT-TEMPLATE.md | 130 ++++++++++++++++++++++++ README-TEMPLATE.md | 70 +++++++++++++ setup-template.sh | 247 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 447 insertions(+) create mode 100644 EXPORT-TEMPLATE.md create mode 100644 README-TEMPLATE.md create mode 100755 setup-template.sh diff --git a/EXPORT-TEMPLATE.md b/EXPORT-TEMPLATE.md new file mode 100644 index 0000000..e8f268a --- /dev/null +++ b/EXPORT-TEMPLATE.md @@ -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 репозитории, который можно клонировать и запускать на любом устройстве. diff --git a/README-TEMPLATE.md b/README-TEMPLATE.md new file mode 100644 index 0000000..6f0d8bf --- /dev/null +++ b/README-TEMPLATE.md @@ -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 Тарабанов Александр Викторович. Все права защищены.** + diff --git a/setup-template.sh b/setup-template.sh new file mode 100755 index 0000000..a3043f8 --- /dev/null +++ b/setup-template.sh @@ -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 "$@"