diff --git a/VPS-DEPLOY.md b/VPS-DEPLOY.md new file mode 100644 index 0000000..db52a81 --- /dev/null +++ b/VPS-DEPLOY.md @@ -0,0 +1,236 @@ +# 🚀 VPS Deployment - Aimpress AutomationHub + +## 🌐 **Развертывание на VPS сервере 128.140.8.206** + +### Шаг 1: Подключение к серверу +```bash +# Подключиться к VPS +ssh root@128.140.8.206 +# или +ssh your-username@128.140.8.206 +``` + +### Шаг 2: Установка Docker (если не установлен) +```bash +# Обновить пакеты +apt update && apt upgrade -y + +# Установить Docker +curl -fsSL https://get.docker.com -o get-docker.sh +sh get-docker.sh + +# Установить Docker Compose +curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +chmod +x /usr/local/bin/docker-compose + +# Проверить установку +docker --version +docker-compose --version +``` + +### Шаг 3: Клонирование проекта +```bash +# Установить Git (если не установлен) +apt install git -y + +# Клонировать репозиторий +git clone https://github.com/SamoilenkoVadym/SaaS.git +cd SaaS +``` + +### Шаг 4: Конфигурация для production +```bash +# Создать production docker-compose +cp docker-compose.yml docker-compose.prod.yml + +# Изменить порты для внешнего доступа +sed -i 's/- "3000:3000"/- "80:3000"/' docker-compose.prod.yml +sed -i 's/- "3001:3001"/- "3001:3001"/' docker-compose.prod.yml +``` + +### Шаг 5: Настройка переменных окружения +```bash +# Backend environment +cat > backend/.env << EOF +PORT=3001 +DB_HOST=postgres +DB_PORT=5432 +DB_NAME=saas_automation +DB_USER=postgres +DB_PASSWORD=secure_production_password_123 +JWT_SECRET=your_super_secret_jwt_key_production_123 +NODE_ENV=production +EOF + +# Frontend environment +cat > frontend/.env.local << EOF +NEXT_PUBLIC_API_URL=http://128.140.8.206:3001 +EOF +``` + +### Шаг 6: Запуск приложения +```bash +# Запустить все сервисы +docker-compose -f docker-compose.prod.yml up -d + +# Проверить статус +docker-compose -f docker-compose.prod.yml ps + +# Посмотреть логи +docker-compose -f docker-compose.prod.yml logs -f +``` + +### Шаг 7: Настройка firewall (опционально) +```bash +# Открыть нужные порты +ufw allow 80 +ufw allow 3001 +ufw allow 22 +ufw --force enable +``` + +## 🌐 **Доступ к приложению** + +После успешного развертывания приложение будет доступно: + +- **🌐 Главная страница:** http://128.140.8.206 +- **👨‍💼 Admin Panel:** http://128.140.8.206/admin +- **🛍️ Marketplace:** http://128.140.8.206/marketplace +- **🔗 Integrations:** http://128.140.8.206/integrations +- **🔧 Backend API:** http://128.140.8.206:3001 + +### 🔐 **Тестовые аккаунты** +**Admin:** +- Email: `info@ai-impress.com` +- Password: `admin123` + +## 📊 **Мониторинг и обслуживание** + +### Проверка статуса +```bash +# Проверить работающие контейнеры +docker ps + +# Проверить логи +docker-compose -f docker-compose.prod.yml logs frontend +docker-compose -f docker-compose.prod.yml logs backend +docker-compose -f docker-compose.prod.yml logs postgres +``` + +### Обновление приложения +```bash +# Остановить контейнеры +docker-compose -f docker-compose.prod.yml down + +# Обновить код +git pull origin main + +# Пересобрать и запустить +docker-compose -f docker-compose.prod.yml up -d --build +``` + +### Резервное копирование базы данных +```bash +# Создать backup +docker-compose -f docker-compose.prod.yml exec postgres pg_dump -U postgres saas_automation > backup_$(date +%Y%m%d).sql + +# Восстановить из backup +docker-compose -f docker-compose.prod.yml exec -T postgres psql -U postgres saas_automation < backup_20241228.sql +``` + +## 🔒 **Безопасность для production** + +### SSL сертификат (рекомендуется) +```bash +# Установить Certbot +apt install certbot -y + +# Если у вас есть домен, получить SSL сертификат +# certbot --nginx -d yourdomain.com + +# Настроить автообновление +crontab -e +# Добавить: 0 12 * * * /usr/bin/certbot renew --quiet +``` + +### Изменить пароли по умолчанию +```bash +# Изменить пароль базы данных +# Обновить docker-compose.prod.yml и backend/.env +# Изменить JWT_SECRET на уникальный ключ +``` + +## 🚨 **Troubleshooting** + +### Проблема: Контейнеры не запускаются +```bash +# Проверить логи +docker-compose -f docker-compose.prod.yml logs + +# Очистить старые образы +docker system prune -a + +# Пересобрать +docker-compose -f docker-compose.prod.yml up -d --build +``` + +### Проблема: База данных не подключается +```bash +# Проверить статус PostgreSQL +docker-compose -f docker-compose.prod.yml exec postgres pg_isready + +# Подключиться к базе данных +docker-compose -f docker-compose.prod.yml exec postgres psql -U postgres saas_automation +``` + +### Проблема: Frontend не загружается +```bash +# Проверить переменные окружения +cat frontend/.env.local + +# Убедиться что API_URL указывает на правильный адрес +# Должен быть: NEXT_PUBLIC_API_URL=http://128.140.8.206:3001 +``` + +## 📞 **Поддержка** + +При возникновении проблем: +1. Проверить логи: `docker-compose logs` +2. Проверить статус: `docker-compose ps` +3. Перезапустить: `docker-compose restart` +4. Связаться с командой: info@ai-impress.com + +--- + +## 🎯 **Быстрая команда для полного развертывания** + +```bash +# Скопировать и выполнить весь блок +ssh root@128.140.8.206 ' +apt update && apt upgrade -y && +curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh && +curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && +chmod +x /usr/local/bin/docker-compose && +apt install git -y && +git clone https://github.com/SamoilenkoVadym/SaaS.git && +cd SaaS && +cp docker-compose.yml docker-compose.prod.yml && +sed -i "s/- \"3000:3000\"/- \"80:3000\"/" docker-compose.prod.yml && +cat > backend/.env << EOF +PORT=3001 +DB_HOST=postgres +DB_PORT=5432 +DB_NAME=saas_automation +DB_USER=postgres +DB_PASSWORD=secure_production_password_123 +JWT_SECRET=your_super_secret_jwt_key_production_123 +NODE_ENV=production +EOF +cat > frontend/.env.local << EOF +NEXT_PUBLIC_API_URL=http://128.140.8.206:3001 +EOF +docker-compose -f docker-compose.prod.yml up -d +' +``` + +После выполнения команды приложение будет доступно по адресу: **http://128.140.8.206** \ No newline at end of file