diff --git a/LICENSE b/LICENSE index 7823512..24f1da5 100644 --- a/LICENSE +++ b/LICENSE @@ -1,50 +1,65 @@ -PROPRIETARY SOFTWARE LICENSE +ЛИЦЕНЗИЯ ПРОПРИЕТАРНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ -Copyright (c) 2024-2025 Тарабанов Александр Викторович -All rights reserved. +Авторские права (c) 2024-2025 Тарабанов Александр Викторович +Все права защищены. -This software and associated documentation files (the "Software") are the -proprietary and confidential information of Тарабанов Александр Викторович. +Данное программное обеспечение и связанные с ним файлы документации +("Программное обеспечение") являются собственностью и конфиденциальной +информацией Тарабанова Александра Викторовича. -TERMS AND CONDITIONS: +УСЛОВИЯ И ПОЛОЖЕНИЯ: -1. GRANT OF LICENSE - Subject to the terms and conditions of this License, Тарабанов Александр Викторович - grants you a non-exclusive, non-transferable license to use the Software - for your business operations and internal purposes. +1. ПРЕДОСТАВЛЕНИЕ ЛИЦЕНЗИИ + При соблюдении условий данной Лицензии, Тарабанов Александр Викторович + предоставляет вам неисключительную, непередаваемую лицензию на использование + Программного обеспечения для ваших бизнес-операций и внутренних целей. -2. PERMITTED USE - You may: - - Use the Software for your business operations - - Install and run the Software on your systems - - Use the Software to provide services to your clients - - Integrate the Software into your business processes +2. РАЗРЕШЕННОЕ ИСПОЛЬЗОВАНИЕ + Вы можете: + - Использовать Программное обеспечение для ваших бизнес-операций + - Устанавливать и запускать Программное обеспечение на ваших системах + - Использовать Программное обеспечение для предоставления услуг вашим клиентам + - Интегрировать Программное обеспечение в ваши бизнес-процессы -3. RESTRICTIONS - You may NOT: - - Resell, redistribute, or sublicense the Software to third parties - - Modify, adapt, or create derivative works without explicit permission - - Reverse engineer, decompile, or disassemble the Software - - Remove or alter any copyright notices - - Use the Software in educational institutions without permission +3. ОГРАНИЧЕНИЯ + Вы НЕ можете: + - Перепродавать, перераспределять или сублицензировать Программное обеспечение третьим лицам + - Дарить, передавать или предоставлять Программное обеспечение третьим лицам + - Модифицировать, адаптировать или создавать производные работы без явного разрешения + - Обратно инжинирить, декомпилировать или дизассемблировать Программное обеспечение + - Удалять или изменять любые уведомления об авторских правах + - Использовать Программное обеспечение в образовательных учреждениях без разрешения -4. COMMERCIAL RESALE AND MODIFICATIONS - Commercial resale, distribution, or modifications of this Software - require explicit written permission from Тарабанов Александр Викторович - (info@hb3-accelerator.com). +4. КОММЕРЧЕСКАЯ ПЕРЕПРОДАЖА И МОДИФИКАЦИИ + Коммерческая перепродажа, распространение или модификации данного Программного + обеспечения требуют явного письменного разрешения от Тарабанова Александра + Викторовича (info@hb3-accelerator.com). -5. UPDATES AND MODIFICATIONS - Any updates, modifications, or derivative works require explicit written - permission from the copyright holder. +5. ОБНОВЛЕНИЯ И МОДИФИКАЦИИ + Любые обновления, модификации или производные работы требуют явного письменного + разрешения от правообладателя. -6. TERMINATION - This license terminates automatically if you fail to comply with its terms. +6. ПРЕКРАЩЕНИЕ ДЕЙСТВИЯ + Данная лицензия автоматически прекращает действие при нарушении ее условий. -7. DISCLAIMER - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND. +7. ОТКАЗ ОТ ГАРАНТИЙ + ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ "КАК ЕСТЬ", БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. -For licensing inquiries: info@hb3-accelerator.com -Website: https://hb3-accelerator.com +По вопросам лицензирования: info@hb3-accelerator.com +Веб-сайт: https://hb3-accelerator.com GitHub: https://github.com/HB3-ACCELERATOR -For detailed license information, see: legal/README.md \ No newline at end of file +Подробная информация о лицензии: legal/README.md + +## 🔐 ЦИФРОВАЯ ПОДПИСЬ + +Данный файл подписан цифровой подписью для защиты авторских прав. + +**Проверка подписи:** +```bash +gpg --verify LICENSE.asc LICENSE +``` + +**GPG Key ID:** 4603583F81054FEECE7E821E026FD26F71D70B17 +**Дата подписи:** 2024-10-24 +**Автор:** Тарабанов Александр Викторович \ No newline at end of file diff --git a/LICENSE.asc b/LICENSE.asc new file mode 100644 index 0000000..7eefea6 --- /dev/null +++ b/LICENSE.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE0B7X50iFYqyCahXe4sAChxn/m0UFAmj7kCUACgkQ4sAChxn/ +m0Xm6w//SpT7i7CLmRaCUphKuunOA15GpP+FZcKcDK/RIY+fxA2nNkGzPqIBCr1k +Mn8ALlM8mJ0tr8HtWp980B2w0gVL1CIxhoqk7YzvbAaDdqZHRzR16pOYn7ZL1X6V +T9OmUy/S67wmObCa/ap5pMIlOYsoksQhDYMg2ESSKG8NufAwJeNIqz03jcdW+Pgr +lpgnbPrcTMyOBmPWDLV+kgQDkz7E9tU0LI/aohxsubxfNcGshJXmmFS2QDUmoOhQ +Y3g2Sh+8WL69WaytcI/1ZEmVu0Ptrbrg52VoOBiX2CHB+MPzkQ85s1sAmAB00X9/ +uKeVP1PO4uXQE8Vt0dsAjHks173sNOvCWHL8RT69b84FJurrAVJiCpzviiH4VbLa +EUfjuZ4zaBpiLzNsRobW6Xx/fXLGQeFlSLuVAXexg6p3p9Hec98Ug88RNrNgecIl +3o8feTX+Z1mVF4LOUUaucj6c+dl4jW/xiIvMYQXK0UR/MegKrqvF46TggYKGpK1w +6c9ptTZSoOZFrcy1SIi5e5yj6n74onUrOu4KuYNV+gqzoMTelTuFXHsYvZrwZFaC +El9Vv2LaYD3J2VMv/peVUZ9cnDz9TMZfMAryKk+IJLX5wT5Ab6Iv/ZFENKnHFZKu +GarN4SspA+SaDkRJlgF9t3NOeCwN6p0b3h+Kb7QadR5rEGhyc/c= +=vXwt +-----END PGP SIGNATURE----- diff --git a/README-TEMPLATE.md b/README-TEMPLATE.md deleted file mode 100644 index 6f0d8bf..0000000 --- a/README-TEMPLATE.md +++ /dev/null @@ -1,70 +0,0 @@ -# 🚀 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/README.md b/README.md index 2af2b86..4936381 100644 --- a/README.md +++ b/README.md @@ -1,97 +1,109 @@ -# Digital_Legal_Entity(DLE) +# 🚀 Digital Legal Entity (DLE) - Шаблон приложения -Веб3 приложение для бизнеса с ИИ ассистентом - -## Авторство и лицензия - -**Автор:** Тарабанов Александр Викторович -**Организация:** HB3 Accelerator -**Email:** info@hb3-accelerator.com -**Сайт:** [hb3-accelerator.com](https://hb3-accelerator.com) -**GitHub:** [@HB3-ACCELERATOR](https://github.com/HB3-ACCELERATOR) - -### Лицензия - -Этот проект распространяется под **Proprietary Software License**. - -- ✅ **Разрешено:** Использование в бизнесе для внутренних операций -- ✅ **Разрешено:** Предоставление услуг клиентам с использованием софта -- ❌ **Запрещено:** Перепродажа софта без разрешения -- ❌ **Запрещено:** Модификации кода без разрешения автора - -**Для коммерческого использования требуется разрешение автора.** -**Контакты:** info@hb3-accelerator.com - -**Подробная информация:** [LICENSE](LICENSE) - -## Требования +## Описание +Полный шаблон приложения Digital Legal Entity +## 📋 Требования - Docker и Docker Compose -## Быстрый запуск +## 🚀 Быстрый запуск -### Вариант 1: через git (рекомендуется) - -1. Клонируйте репозиторий: +### Автоматическая установка (рекомендуется) ```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 ``` -2. Запустите скрипт установки: + +### Доступ к приложению +- **Frontend**: http://localhost:5173 + +## 🔧 Управление + +### Запуск ```bash -./setup.sh +docker-compose up -d ``` -3. После запуска контейнеров выполните миграции изнутри контейнера backend: + +### Остановка ```bash -docker exec -e NODE_ENV=migration dapp-backend yarn migrate +docker-compose down ``` -## Доступные сервисы +## 📝 Лицензия -После успешного запуска вы получите доступ: +**ПРОПРИЕТАРНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ** -- Frontend: http://localhost:5173 +Copyright (c) 2024-2025 Тарабанов Александр Викторович +Все права защищены. -## Ручной запуск +### ⚠️ **ВАЖНЫЕ ОГРАНИЧЕНИЯ:** -Если вы хотите запустить проект вручную: +- ❌ **Запрещено** перепродавать, дарить или передавать третьим лицам +- ❌ **Запрещено** модифицировать без явного разрешения +- ❌ **Запрещено** использовать в образовательных учреждениях без разрешения +- ✅ **Разрешено** только личное использование для бизнес-операций -```bash -# Запуск в фоновом режиме -docker compose up -d - -# Запуск с логами -docker compose up - -# Перезапуск контейнеров -docker-compose restart - -# Остановка сервисов -docker-compose-down -``` - -## Контакты и поддержка - -### Для вопросов по разработке: -- **GitHub Issues:** [Создать issue](https://github.com/VC-HB3-Accelerator/DLE/issues) +### 📞 **Контакты:** - **Email:** info@hb3-accelerator.com +- **Сайт:** https://hb3-accelerator.com +- **GitHub:** https://github.com/HB3-ACCELERATOR -### Для коммерческого лицензирования: -- **Email:** info@hb3-accelerator.com -- **Тема:** "Commercial License Request - DLE" -- **Шаблон запроса:** [legal/COMMERCIAL_LICENSE_REQUEST.md](./legal/COMMERCIAL_LICENSE_REQUEST.md) +**Подробная информация:** [LICENSE](LICENSE) | [Юридическая документация](legal/README.md) -### Юридические документы: -- **Лицензия:** [LICENSE](LICENSE) | [Подробно](./legal/README.md) -- **Авторы:** [legal/AUTHORS.md](./legal/AUTHORS.md) -- **Для контрибьюторов:** [legal/CONTRIBUTING.md](./legal/CONTRIBUTING.md) -- **Уведомления об авторских правах:** [legal/COPYRIGHT_NOTICE.md](./legal/COPYRIGHT_NOTICE.md) -- **Условия использования:** [legal/TERMS_OF_SERVICE.md](./legal/TERMS_OF_SERVICE.md) -- **Коммерческие лицензии:** [legal/COMMERCIAL_LICENSES.md](./legal/COMMERCIAL_LICENSES.md) -- **Требования атрибуции:** [legal/ATTRIBUTION_REQUIREMENTS.md](./legal/ATTRIBUTION_REQUIREMENTS.md) -- **Уведомления об использовании:** [legal/USAGE_NOTIFICATION.md](./legal/USAGE_NOTIFICATION.md) +## 🔐 Проверка подлинности + +### Цифровые подписи: +- **LICENSE.asc** - подпись лицензии +- **README.md.asc** - подпись README +- **public-key.asc** - публичный ключ для проверки + +### Проверка подписи: +```bash +# Скачать публичный ключ +curl -O https://raw.githubusercontent.com/VC-HB3-Accelerator/DLE/main/public-key.asc + +# Импортировать ключ +gpg --import public-key.asc + +# Проверить подпись лицензии +gpg --verify LICENSE.asc LICENSE + +# Проверить подпись README +gpg --verify README.md.asc README.md +``` + +**GPG Key ID:** `4603583F81054FEECE7E821E026FD26F71D70B17` --- -**© 2024-2025 Тарабанов Александр Викторович. Все права защищены.** \ No newline at end of file +**© 2024-2025 Тарабанов Александр Викторович. Все права защищены.** + diff --git a/README.md.asc b/README.md.asc new file mode 100644 index 0000000..436aee8 --- /dev/null +++ b/README.md.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEE0B7X50iFYqyCahXe4sAChxn/m0UFAmj7kDwACgkQ4sAChxn/ +m0XfkRAAr1hilCQ9KvllsCV6mBdOL3HnVglL6h8Zlbrt8EMz+0KWGkaCZSht1JT6 +0SJhOqnNxFTejxyzZ/4P5aPFFj2LmePgdftppFwJFE3ZsSi1bwEsyv5H6bnWwS9I +0M9Hfo4FHpEKvaPr8H5fSjuH0rg1/cbQNKGRzhP9BVH12Dddsrx7E1aBCWUVDfXI +1I+qOfkLEQCFDLzLVMDi6pKn24wud4+ujcFwiHiEqz6n0F8iM/lk6UghBTfJ195p +YhyqdEx8Ot5AiGlwuc+U3YP9qUYioIf4579skRmeD45aeEZcXjpT/9Hqb3iv8u3k +B7ojBJCedA9OymdT+jlY1938OOnpGwiaqvu+C8Yh65ES/8yLJ7ESYsoOuwyGVmqH +Tp+njft+5qmcnrYYS6Vdoxjj9mlkuWfB0pRWMzIf8yaDjMyW7fZEQzxsVWESa5Sa +ltiY0Og+oY3lMH3UgWnemuzZGrkKtFsH2ywP/kzYrvGdsyEegGsrVgmL3Vbh7S6W +q5VJWxTFn+bht15k8yKDDtQc4PTNs7FA4VbDXq7fURgAlUaFSF1mi8gqrt/KwMFw +i5sjPRfI7HXV6wS+1O8afhZCMcnorAkhUgNF9OHFEJp1sKKPtbBi3urhn/CkhfiA +/UfFb6Ij99TQtUmgl0OD4vspPpe8CH4e3yg7JYAjfU3LMEETt8k= +=O9aS +-----END PGP SIGNATURE----- diff --git a/public-key.asc b/public-key.asc new file mode 100644 index 0000000..dfdcdd6 --- /dev/null +++ b/public-key.asc @@ -0,0 +1,65 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBGj7j/kBEADdV95HBPpNANNG8oYUxj6smaZ4priQGbPCKe7xqzQIe0wH8V5o +RuQLA7QfE0fAA6VtZpmHoQKSYtwiwZcsu/fTql1DSLe0brkCtbMuvKu3uMwjb9Fb +LsR1bsHJ+WyqlxxoLxUQw518H5EeqiUKtkJephikokDGxCTjwhE/hB4Y8VLiNupQ +YRXEksbCGwNWd/LItteMDd8MTp5upLkeH59KerNVljnZLuEzT4v5Qxisjyzrr601 +wZp03ArswzM1J5joU7RY0N7iaNXkFhfxrCus53A8MluvOQdYvFJiFzrClFVCBSnG +sqe8JgtgOHxTKLKub6zthD2h2ejE3jhQUV3AxglTkHCjPDUf/GdIklAQksJthFbE +cBqJPhL4lek2I3Wu5uxQrHK2vOgiFLJr/f3x/bZIAzniAQ4AvByW8EGzjhGOFDzp +LX2t+QBDDAx0DSkS15xIOiyNwuVW3xi16Fxk4X/0XbEvr1w6GPdeeZf0JfHsEKMZ +8gLDxRWoLaKu2XSoqjgAZxQG07MqyN+mLRs1Smwxlfjpa/JAipL96lYp6AlAlG5A +lgO+b001fduWM6f9ZqPMutRdaGVxZ4opUzN3cSz9qY/fUMUv53xxvF75a/6TL+qm +gyxImOfr+LZeKZeTII4R4AMssFkseYmnvbeN41XK4kg51ehRyAv+lC1HkwARAQAB +tIPQotCw0YDQsNCx0LDQvdC+0LIg0JDQu9C10LrRgdCw0L3QtNGAINCS0LjQutGC +0L7RgNC+0LLQuNGHICjQsNCy0YLQvtGA0YHQutC+0LUg0L/RgNCw0LLQviDQvdCw +INGB0L7RhNGCKSA8aW5mb0BoYjMtYWNjZWxlcmF0b3IuY29tPokCUgQTAQoAPBYh +BEYDWD+BBU/uzn6CHgJv0m9x1wsXBQJo+4/5AxsvBAULCQgHAgIiAgYVCgkICwIE +FgIDAQIeBwIXgAAKCRACb9JvcdcLF8lYEACDbolcxeIp5ToYcxepAPm0OWlVKBEZ +C5j+kZdNOBBAZ8hQ87cKQAFhvYEBsTlBdFLRDZiu1+0bBj7VIH6EdA5ON5iS6g7N +Ycsx2bxCHeJd2Z3+vXidq4Bf1GTYs7XptSkzJcYLQuorIa0ljOKZgwoX7A/FhsS3 +vpq29zTv0TYeJNFXgX+1n3xaJ4X4G2sVT0gDkIZjxtg/pgaREvLYqV1XRNsIoLWU +CVrnRYvKWkmLfC+GjhK435HQ4B1qgOaU2g2OAyWw8J4+Dagk/BcUjA9J/grv3WH+ +JCxqTlJWb3/awr5rGjX6ryN8/19PCBzMkyiD7cwvqq5v8EoYla3BjDQaJL3ucqSD +9TgJQTS0aqegibECCQiPFaelOKJnMjK/vdASKW34Al3LqtllXUj6Ar4FQBXPZacs +RIa1OIdCUtVFJ55RIuE/oHTvgmvl+JQXslPUHImZO1z27sNnyUgEQ4nAwaTF/yNY +fHcbuyHJzHtGWamuyZKPj8fmIpQ9A2LSvMwHTW793qGD7AwUNOKJUOvMdtoYK6KJ +7S1naPp8ngy+N8bIaD9DZ4tY9Rl2ZDxhW30i9KhiC+RPHXn7J/fQKRoh1h25Tz6d +rZviHyQ4f5AZ8zc4XyQ5Q2/x2jR12WH+jr/Q8fE9e9AKvsrRDxNEfxB0rT1fG8Um +nF7dT2yU753xs7kCDQRo+4/5ARAAuUi93negcYuzKlo64lrEheiW4/5ThePUpmfk +3dUGy2JKKzfScToArvH/ubCdxF+3a8Nu0ifeXK80bvvGYINFo0EEPtSK6i88SneZ +EIMIRPG+CUi5Ir/BNgppreC6Wd0aO8OJyj9Tc9/gccaFpVny85Cfa4pOImdodRPb +z6suqO84IFgCdjMWrflUCdjEGi9DcjYwfLRP++tt5/Z0TrxlVbMUf+tl4+ZoKmiL +yxhZ9ubTaQnfVrtnW9FlEFaUpUY90nUTTYQMvht26zWJiKXRcEEst30RicBy2dgm +0X4YqvXi1Hape8ZVxuqyoC/bbxiPb00nGSe2gLdyQytOQZzXmP13NDxFIdUO4p8D +KOKH6BUWJKBxvdyIXBh/ofkgczMnzArMQdbfBY+Nd0M8BvAmqJvKurQbuLCjwoGW +hPAKfIZIhnQeVQYM5Do5MARklwXtMjxv1Y/QzFevwdQb8GptLMewfgIW+nFvZ4pR +Rzz8/RilmFYiE1BLK7546rgEsCamJRHiXa8GD+nfSoxaShDDEVMiuUsSsD5nA/cB +/xmccvXV1C3bn5cQQekRI7SrhXZ8VB1BNIwWVYTWui1V+tM1lEyvXV9kTnyjMxgX +q0aSkkjV/QS3aleJL6em+NoqacUJTcitra2BDvNqrHrgOrDYgQKCdUswzcUVpqGC +An/6GHEAEQEAAYkEbAQYAQoAIBYhBEYDWD+BBU/uzn6CHgJv0m9x1wsXBQJo+4/5 +AhsuAkAJEAJv0m9x1wsXwXQgBBkBCgAdFiEE0B7X50iFYqyCahXe4sAChxn/m0UF +Amj7j/kACgkQ4sAChxn/m0WesQ//aPDvu9z8TZg98qwA8mB0nfEqLjdS6eOgGkha +uMXvxEQcAU9wvRmsacvml4Gd3Sdms1ZXTg8YeLIIpNCEpFKB50/uQLTeFFHzqe5W +ueODAZAWKoKMSAJYhK+nvHwDfaWXuMU6g1du7xnUfildqtpWXXDyyp3kqqeUw67p +cSHXaK8UMGlIsuZwngRJvfzp0HkgZ42JgmbLjJkZfwJfbkrKf/VsncY+fN3JHSTE +tE/M8fC7ViBNeL+CVPMBgpKibqyCaO3NEdigPY3TfUWQuuCLtX+KtWlkn3vKfwQ0 +oMMjot6HpO9W+CAJbiFnxvEakWY19Jmg8bBxyoQhSbO963FXiZEyCu3+CehstDwJ +vKmr599VB/g/nA12Ya3PK5AefGrMnos4qw6BlglZN2ErZ0rHtihqXDijnJduPUi6 +RT23JYa3iMlCRlPTiD3hgp0GO+bZFIDnzJrcEFmPyZh5ec/st1hYsgSDSlYpa96d +r5LBJa/2Lnnvnzc+/svwI/oLTymGVsWWrQ3HrrbtbVs7eYUDtWdTHgCf+xtB+q0I +rHJMH+MMU6NNpAcocW1Ts2MW+Cn6E0nRU9SQqQ6vFdOKLIS8iOUzcqDo1c4zo/DR +rH+7HsJi1rTop6qtakX2MSpz7mRa8Z9BcPsu3cc6NFF1jJvhD1i/Cak7cdZEMvUK +zNgy226xLw//fyAWVWpBGUJsPUcm/dR0yE6m9DoLhW9+TTgsrrr+Mmd4xHoAnzqI +D1PhWdXfj5xopivCXX4DD3NFZ5ovfOYmab39CkGIzdrHqnpG5s7eDy9jOS8gzUJw +ef6OR5WJRYCof+CRgHztw145cVgpPjlwdrjMW98RoR42OXoXMS6B/xol700ruTse +zMczePjwKFJ0Fjz+GrBTSIYgqco7jp+S4W94UUBco+LVHJJFF+zLEJHR23N1w3T7 +sHyFCgo/gMmk7ra/de9w7C3cB8SSfSaU8si3XGS9IF2CHibNqQnb3bjMMqY4DFGQ +6g/El9+OUWeaEliZQ4/11WMG4FznKD2+Lj+KRgEstReWMTZbCpGtWKfxi8w5efn+ +1Ky6aTpHUWT6k8MHK7Le90lLVEbqpDlOHZQFigNiCf/QS2b7yXxnFAnMGCk092EK +CDE8DyR4wb9THghL+nCm+J15+tMAYV6lwsVr6R5h9EqBSQa3ZPXoQWPxRnorzoCy +ac8A72+SLQuxFjuPAlc8YXcqto4IwEW6ZCoy7H1CgVs0EJj0NgRz8SwyUZEcf0Ed +7Aq8cir63VOJmliOSfWM1SLhRKfHYFHg/6yfWa6Zqf0O1yHJ7kMsfMWFqHfFM54N +93vnEalfPB1uIFnU9RUthsQw8mLzyYydwsk5UvbcLO90TslmNcX3His= +=kiA8 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/setup-template.sh b/setup-template.sh deleted file mode 100755 index a3043f8..0000000 --- a/setup-template.sh +++ /dev/null @@ -1,247 +0,0 @@ -#!/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 "$@" diff --git a/setup.sh b/setup.sh index 81b19a6..a3043f8 100755 --- a/setup.sh +++ b/setup.sh @@ -4,7 +4,10 @@ # This software is proprietary and confidential. # For licensing inquiries: info@hb3-accelerator.com -# Вывод цветного текста +# Скрипт для автоматической установки шаблона приложения DLE +# Скачивает репозиторий, проверяет Docker, импортирует образы и тома, запускает приложение + +# Цветной вывод print_green() { echo -e "\e[32m$1\e[0m" } @@ -21,275 +24,224 @@ print_red() { echo -e "\e[31m$1\e[0m" } -# Проверка и установка Docker и Docker Compose +# Проверка Docker check_docker() { - print_blue "Проверка наличия Docker..." + print_blue "🔍 Проверка Docker..." if ! command -v docker &> /dev/null; then - print_yellow "Docker не установлен." - if [[ "$OSTYPE" == "linux-gnu"* ]]; then - print_blue "Автоматическая установка Docker для Linux..." - curl -fsSL https://get.docker.com -o get-docker.sh - sudo sh get-docker.sh - rm get-docker.sh - - # Добавляем текущего пользователя в группу docker - print_blue "Добавление пользователя в группу docker..." - sudo usermod -aG docker $USER - - print_green "Docker установлен!" - print_yellow "⚠️ ВАЖНО: Для применения изменений выполните одну из команд:" - print_yellow " 1. newgrp docker (применить в текущем терминале)" - print_yellow " 2. Перезапустите терминал" - print_yellow " 3. Перезайдите в систему" - print_blue "Нажмите Enter для продолжения после выполнения команды..." - read - else - print_yellow "Пожалуйста, установите Docker вручную: https://docs.docker.com/get-docker/" - print_yellow "Для Windows/Mac: скачайте и установите Docker Desktop." - exit 1 - fi + print_red "❌ Docker не установлен!" + print_yellow "Установите Docker: https://docs.docker.com/get-docker/" + exit 1 fi - # Проверка прав доступа к Docker - if ! docker ps &> /dev/null; then - print_yellow "⚠️ Нет прав для запуска Docker команд." - print_blue "Добавление пользователя в группу docker..." - - # Проверяем, есть ли пользователь в группе docker - if ! groups $USER | grep -q docker; then - sudo usermod -aG docker $USER - print_yellow "Пользователь добавлен в группу docker." - print_yellow "Выполните команду для применения изменений: newgrp docker" - print_yellow "Или перезапустите терминал и запустите скрипт снова." - exit 0 - else - print_red "Пользователь уже в группе docker, но права не работают." - print_yellow "Попробуйте:" - print_yellow " 1. newgrp docker" - print_yellow " 2. Перезайдите в систему" - print_yellow " 3. Перезапустите Docker: sudo systemctl restart 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 установлен и доступен." - - print_blue "Проверка Docker Compose..." - if ! docker compose version &> /dev/null; then - print_yellow "Docker Compose не установлен или требуется обновление." - if [[ "$OSTYPE" == "linux-gnu"* ]]; then - print_blue "Установка Docker Compose плагина..." - sudo apt-get update - sudo apt-get install -y docker-compose-plugin - - if ! docker compose version &> /dev/null; then - print_red "Не удалось установить Docker Compose плагин." - print_yellow "Попробуйте обновить Docker: https://docs.docker.com/compose/install/" - exit 1 - fi - else - print_yellow "Пожалуйста, установите Docker Compose вручную: https://docs.docker.com/compose/install/" - exit 1 - fi - fi - print_green "Docker Compose установлен." + print_green "✅ Docker и Docker Compose установлены" } -# Инструкция для пользователей без git -print_no_git_instructions() { - print_blue "Если у вас нет git, скачайте архив проекта с GitHub:" - print_yellow "1. Перейдите на https://github.com/VC-HB3-Accelerator/DLE" - print_yellow "2. Нажмите 'Code' > 'Download ZIP'" - print_yellow "3. Распакуйте архив и перейдите в папку проекта" - print_yellow "4. Запустите этот скрипт: ./setup.sh" +# Проверка 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 запущен" } -# Все настройки хранятся в зашифрованной базе данных - -# Создание ключа шифрования -create_encryption_key() { - print_blue "Проверка ключа шифрования..." - - # Проверяем наличие OpenSSL - if ! command -v openssl &> /dev/null; then - print_yellow "OpenSSL не установлен. Установка..." - if [[ "$OSTYPE" == "linux-gnu"* ]]; then - sudo apt-get update && sudo apt-get install -y openssl +# Скачивание репозитория +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_red "Пожалуйста, установите OpenSSL вручную: https://www.openssl.org/" - exit 1 + print_blue "Используем существующую папку" + cd DLE + return fi fi - # Создаём папку для ключей - mkdir -p ./ssl/keys - - # Генерируем ключ шифрования (если его нет) - if [ ! -f "./ssl/keys/full_db_encryption.key" ]; then - print_blue "🔑 Генерация ключа шифрования..." - openssl rand -base64 32 > ./ssl/keys/full_db_encryption.key - chmod 600 ./ssl/keys/full_db_encryption.key - print_green "✅ Ключ создан: ./ssl/keys/full_db_encryption.key" - else - print_green "✅ Ключ шифрования уже существует." - fi + git clone https://github.com/VC-HB3-Accelerator/DLE.git + cd DLE + print_green "✅ Репозиторий скачан" } -# Предварительная загрузка образов -pull_images() { - print_blue "Предварительная загрузка образов Docker..." +# Проверка файлов образов +check_images() { + print_blue "🔍 Проверка файлов образов..." + if [ ! -d "docker-data/images" ]; then + print_red "❌ Папка docker-data/images не найдена!" + print_yellow "Убедитесь, что репозиторий содержит экспортированные образы" + exit 1 + fi - images=("node:20-slim" "postgres:16" "ollama/ollama:latest") + 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 - for img in "${images[@]}"; do - print_blue "Загрузка образа: $img" - docker pull $img - if [ $? -ne 0 ]; then - print_yellow "Предупреждение: Не удалось загрузить образ $img, но продолжаем работу..." + 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_green "Образ $img успешно загружен." + 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 } - - - - -# Запуск проекта -start_project() { - print_blue "Запуск проекта..." +# Импорт томов +import_volumes() { + print_blue "📥 Импорт данных в тома..." - # Сначала убедимся, что предыдущие контейнеры остановлены - print_blue "Остановка существующих контейнеров..." - docker compose down + # 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 импортирован" - # Запуск сервисов в Docker Compose - print_blue "Запуск сервисов (PostgreSQL, Ollama, Backend, Frontend)..." - docker compose up -d + # 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 импортирован" - # Проверяем, что сервисы запустились - if [ $? -eq 0 ]; then - print_green "Сервисы успешно запущены!" - - # Предзагрузка моделей Ollama - print_blue "Предзагрузка моделей Ollama..." - print_yellow "Это может занять несколько минут..." - - # Ждем, пока Ollama запустится - print_blue "Ожидание запуска Ollama..." - for i in {1..30}; do - if curl -s http://localhost:11434/api/tags > /dev/null 2>&1; then - print_green "Ollama готов!" - break - fi - if [ $i -eq 30 ]; then - print_yellow "Ollama не ответил за 60 секунд, продолжаем без предзагрузки..." - break - fi - sleep 2 - done - - # Предзагружаем модели - if curl -s http://localhost:11434/api/tags > /dev/null 2>&1; then - print_blue "Предзагрузка qwen2.5:7b..." - curl -X POST http://localhost:11434/api/generate -d '{"model": "qwen2.5:7b", "prompt": "test", "stream": false}' > /dev/null 2>&1 - - print_blue "Предзагрузка mxbai-embed-large:latest..." - curl -X POST http://localhost:11434/api/generate -d '{"model": "mxbai-embed-large:latest", "prompt": "test", "stream": false}' > /dev/null 2>&1 - - print_green "✅ Модели предзагружены и останутся в памяти!" - fi - - # Добавляем токены аутентификации - print_blue "🔑 Добавление токенов аутентификации..." - ./scripts/internal/db/db_init_helper.sh 2>/dev/null || print_yellow "Токены уже добавлены или скрипт недоступен" - - # Создаём функции шифрования в PostgreSQL - print_blue "📝 Создание функций шифрования в PostgreSQL..." - docker exec dapp-postgres psql -U dapp_user -d dapp_db << 'EOF' 2>/dev/null || print_yellow "Функции шифрования уже существуют или БД не готова" --- Создаём расширение для шифрования -CREATE EXTENSION IF NOT EXISTS pgcrypto; + # 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 "✅ Все тома импортированы" +} --- Функция для шифрования текста -CREATE OR REPLACE FUNCTION encrypt_text(data text, key text) -RETURNS text AS $$ -BEGIN - IF data IS NULL THEN - RETURN NULL; - END IF; - RETURN encode(encrypt_iv(data::bytea, decode(key, 'base64'), decode('000102030405060708090A0B0C0D0E0F', 'hex'), 'aes-cbc'), 'base64'); -END; -$$ LANGUAGE plpgsql; - --- Функция для расшифровки текста -CREATE OR REPLACE FUNCTION decrypt_text(encrypted_data text, key text) -RETURNS text AS $$ -BEGIN - IF encrypted_data IS NULL THEN - RETURN NULL; - END IF; - RETURN convert_from(decrypt_iv(decode(encrypted_data, 'base64'), decode(key, 'base64'), decode('000102030405060708090A0B0C0D0E0F', 'hex'), 'aes-cbc'), 'utf8'); -END; -$$ LANGUAGE plpgsql; - --- Функция для шифрования JSON -CREATE OR REPLACE FUNCTION encrypt_json(data jsonb, key text) -RETURNS text AS $$ -BEGIN - IF data IS NULL THEN - RETURN NULL; - END IF; - RETURN encode(encrypt_iv(data::text::bytea, decode(key, 'base64'), decode('000102030405060708090A0B0C0D0E0F', 'hex'), 'aes-cbc'), 'base64'); -END; -$$ LANGUAGE plpgsql; - --- Функция для расшифровки JSON -CREATE OR REPLACE FUNCTION decrypt_json(encrypted_data text, key text) -RETURNS jsonb AS $$ -BEGIN - IF encrypted_data IS NULL THEN - RETURN NULL; - END IF; - RETURN convert_from(decrypt_iv(decode(encrypted_data, 'base64'), decode(key, 'base64'), decode('000102030405060708090A0B0C0D0E0F', 'hex'), 'aes-cbc'), 'utf8')::jsonb; -END; -$$ LANGUAGE plpgsql; -EOF - - print_green "----------------------------------------" - print_green "Проект Digital_Legal_Entity(DLE) доступен по адресам:" - print_green "Frontend: http://localhost:5173" - print_green "Backend API: http://localhost:8000" - print_green "Ollama API: http://localhost:11434" - print_green "PostgreSQL: localhost:5432" - print_green "----------------------------------------" - print_green "🔐 Ключ шифрования: ./ssl/keys/full_db_encryption.key" - print_green "📋 Все настройки хранятся в зашифрованной базе данных" - print_green "----------------------------------------" - print_green "ИИ-ассистент готов к работе!" - 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" - print_yellow "Для просмотра логов конкретного сервиса: docker compose logs [service]" - print_yellow "Например: docker compose logs backend" + 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 "===============================================" - print_blue " Установка и запуск Digital_Legal_Entity(DLE)" - print_blue "===============================================" - - print_yellow "\nЕсли у вас нет git, скачайте проект архивом с GitHub!" - print_no_git_instructions - + print_blue "🚀 Установка шаблона приложения Digital Legal Entity" + print_blue "==================================================" + + # Проверки check_docker - create_encryption_key - pull_images - start_project + 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 \ No newline at end of file +# Запуск +main "$@"