feat: описание изменений

This commit is contained in:
2025-10-05 15:48:34 +03:00
parent f243b6eabe
commit 7a924b6b61
2 changed files with 194 additions and 1 deletions

View File

@@ -13,6 +13,7 @@
const session = require('express-session');
const pgSession = require('connect-pg-simple')(session);
const db = require('../db');
const crypto = require('crypto');
let onPoolChangeCallback = null;
@@ -28,7 +29,7 @@ function createSessionMiddleware() {
pool: db.getPool(),
tableName: 'session',
}),
secret: process.env.SESSION_SECRET || 'hb3atoken',
secret: process.env.SESSION_SECRET || crypto.randomBytes(32).toString('hex'),
name: 'sessionId',
resave: true,
saveUninitialized: false,

192
docs/VDS_DEPLOYMENT.md Normal file
View File

@@ -0,0 +1,192 @@
# Деплой на VDS - Руководство
## 📋 Обзор
Этот документ описывает процесс безопасного деплоя изменений из приватной ветки `private/development` на VDS сервер с сохранением данных пользователей.
## 🔄 Workflow разработки
### Структура веток:
```
🌍 main (публичная) ← Базовый софт для скачивания
🔒 private/development (приватная) ← Разработка и тестирование
```
### VDS конфигурация:
- **Адрес:** 185.221.214.140
- **Пользователь:** root
- **Пароль:** [НЕ ХРАНИТЬ В ДОКУМЕНТАЦИИ - использовать переменные окружения]
- **Путь:** /home/docker/dapp
- **Compose файл:** docker-compose.prod.yml
## 🛡️ Безопасность данных
### Docker Volumes (сохраняются при обновлениях):
- `postgres_data` - база данных пользователей
- `ollama_data` - AI модели
- `vector_search_data` - векторные индексы
### Важно:
- Данные пользователей НЕ удаляются при обновлении кода
- Volumes остаются неизменными при пересборке контейнеров
- Возможен откат к предыдущей версии
## 🔐 Настройка безопасности
### Переменные окружения:
```bash
# Установить пароль VDS (временно)
export VDS_PASSWORD="your_vds_password"
# Или добавить в ~/.bashrc для постоянного использования
echo 'export VDS_PASSWORD="your_vds_password"' >> ~/.bashrc
source ~/.bashrc
```
### SSH ключи (рекомендуется):
```bash
# Создать SSH ключ
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# Скопировать публичный ключ на VDS
ssh-copy-id root@185.221.214.140
# После этого можно использовать ssh без пароля
ssh root@185.221.214.140 "cd /home/docker/dapp && docker compose -f docker-compose.prod.yml ps"
```
## 🚀 Процесс деплоя
### 1. Подготовка изменений (локально):
```bash
# Убедитесь, что находитесь в приватной ветке
git checkout private/development
# Внесите изменения в код
# Протестируйте локально
./setup.sh
# Зафиксируйте изменения
git add .
git commit -m "feat: описание изменений"
git push origin private/development
```
### 2. Деплой на VDS:
```bash
# Полный деплой одной командой (используйте переменную окружения для пароля)
sshpass -p "$VDS_PASSWORD" ssh -o StrictHostKeyChecking=no root@185.221.214.140 \
"cd /home/docker/dapp && git pull origin private/development && docker compose -f docker-compose.prod.yml up -d --build && docker exec dapp-backend yarn migrate"
# Или используйте SSH ключи (рекомендуется):
ssh -o StrictHostKeyChecking=no root@185.221.214.140 \
"cd /home/docker/dapp && git pull origin private/development && docker compose -f docker-compose.prod.yml up -d --build && docker exec dapp-backend yarn migrate"
```
### 3. Проверка деплоя:
```bash
# Проверить статус контейнеров
sshpass -p "$VDS_PASSWORD" ssh -o StrictHostKeyChecking=no root@185.221.214.140 \
"cd /home/docker/dapp && docker compose -f docker-compose.prod.yml ps"
# Проверить логи
sshpass -p "$VDS_PASSWORD" ssh -o StrictHostKeyChecking=no root@185.221.214.140 \
"cd /home/docker/dapp && docker compose -f docker-compose.prod.yml logs backend"
```
## 📊 Мониторинг
### Просмотр логов в реальном времени:
```bash
# Backend логи
sshpass -p "$VDS_PASSWORD" ssh -o StrictHostKeyChecking=no root@185.221.214.140 \
"cd /home/docker/dapp && docker compose -f docker-compose.prod.yml logs -f backend"
# Все логи
sshpass -p "$VDS_PASSWORD" ssh -o StrictHostKeyChecking=no root@185.221.214.140 \
"cd /home/docker/dapp && docker compose -f docker-compose.prod.yml logs -f"
```
### Проверка использования ресурсов:
```bash
sshpass -p "$VDS_PASSWORD" ssh -o StrictHostKeyChecking=no root@185.221.214.140 \
"cd /home/docker/dapp && docker stats --no-stream"
```
## 🔧 Устранение неполадок
### Если деплой не удался:
```bash
# Проверить статус
sshpass -p "$VDS_PASSWORD" ssh -o StrictHostKeyChecking=no root@185.221.214.140 \
"cd /home/docker/dapp && docker compose -f docker-compose.prod.yml ps"
# Перезапустить сервисы
sshpass -p "$VDS_PASSWORD" ssh -o StrictHostKeyChecking=no root@185.221.214.140 \
"cd /home/docker/dapp && docker compose -f docker-compose.prod.yml restart"
```
### Откат к предыдущей версии:
```bash
# Вернуться к предыдущему коммиту
sshpass -p "$VDS_PASSWORD" ssh -o StrictHostKeyChecking=no root@185.221.214.140 \
"cd /home/docker/dapp && git reset --hard HEAD~1 && docker compose -f docker-compose.prod.yml up -d --build"
```
## 📋 Чек-лист деплоя
### Перед деплоем:
- [ ] Код протестирован локально
- [ ] Изменения зафиксированы в `private/development`
- [ ] Изменения отправлены в GitHub
- [ ] Проверена совместимость схемы БД
### После деплоя:
- [ ] Все контейнеры запущены
- [ ] Логи не содержат ошибок
- [ ] Приложение доступно по домену
- [ ] Данные пользователей сохранены
## 🔄 Резервное копирование
### Создание бэкапа перед деплоем:
```bash
# Создать бэкап базы данных
sshpass -p "$VDS_PASSWORD" ssh -o StrictHostKeyChecking=no root@185.221.214.140 \
"cd /home/docker/dapp && docker exec dapp-postgres pg_dump -U dapp_user dapp_db > backup_$(date +%Y%m%d_%H%M%S).sql"
```
### Восстановление из бэкапа:
```bash
# Восстановить базу данных
sshpass -p "$VDS_PASSWORD" ssh -o StrictHostKeyChecking=no root@185.221.214.140 \
"cd /home/docker/dapp && docker exec -i dapp-postgres psql -U dapp_user dapp_db < backup_YYYYMMDD_HHMMSS.sql"
```
## 📞 Поддержка
При возникновении проблем:
1. Проверьте логи контейнеров
2. Убедитесь, что все сервисы запущены
3. Проверьте доступность VDS сервера
4. При необходимости создайте issue в GitHub
---
**Автор:** Тарабанов Александр Викторович
**Организация:** HB3 Accelerator
**Email:** info@hb3-accelerator.com
**Сайт:** [hb3-accelerator.com](https://hb3-accelerator.com)
**© 2024-2025 Тарабанов Александр Викторович. Все права защищены.**