8.5 KiB
Vortex Messenger — Руководство по развёртыванию
Что понадобится
| Что | Детали |
|---|---|
| VPS | Ubuntu 22.04 / 24.04, от 1 ГБ RAM, публичный IP |
| Домен | С A-записью, направленной на IP вашего VPS |
| Для получения SSL-сертификата (Let's Encrypt) | |
| ПК | Windows / macOS / Linux с SSH-клиентом |
1. Подготовка сервера
1.1 Покупка VPS
Купите VPS у провайдера (Timeweb Cloud, Hetzner, DigitalOcean и т.д.).
Запишите IP и root-пароль.
1.2 Покупка домена
Купите домен и в DNS-настройках реестра создайте A-запись:
Тип: A
Хост: @
Значение: <IP вашего VPS>
Может потребоваться до 24 часов для распространения DNS (обычно 5–15 минут).
2. Загрузка проекта на сервер
С вашего ПК (из папки с проектом):
# Создать папку на сервере
ssh root@<IP> "mkdir -p /var/www/vortex"
# Скопировать файлы проекта
scp -r ./* root@<IP>:/var/www/vortex/
Замените
<IP>на IP вашего VPS. При первом подключении подтвердите fingerprint (yes) и введите root-пароль.
3. Запуск автоматического деплоя
# Подключиться к серверу
ssh root@<IP>
# Дать права на запуск
chmod +x /var/www/vortex/deploy.sh
# Запустить деплой
/var/www/vortex/deploy.sh
Скрипт спросит:
- Домен — ваш домен (например
messenger.example.com) - Email — для SSL-сертификата
Всё остальное (Node.js, PostgreSQL, Nginx, Certbot, coturn, PM2) установится и настроится автоматически.
4. Что делает скрипт
| Шаг | Действие |
|---|---|
| 1/10 | Обновление системы, установка базовых утилит |
| 2/10 | Установка Node.js 20 и PM2 |
| 3/10 | Установка PostgreSQL, создание БД и пользователя |
| 4/10 | Установка Nginx |
| 5/10 | Установка Certbot для SSL |
| 6/10 | Установка coturn (TURN-сервер для звонков) |
| 7/10 | Создание .env с автогенерированными ключами |
| 8/10 | npm install, Prisma миграции, сборка бэкенда и фронтенда |
| 9/10 | Настройка Nginx (reverse proxy, SSL, блокировка доступа по IP) |
| 10/10 | Запуск сервера через PM2 с автозапуском |
По завершении:
- Кредитные данные сохраняются в
/var/www/vortex/CREDENTIALS.txt(доступ только root) - Скрипт обновления создаётся в
/var/www/vortex/update.sh
5. Настройка конфигурации
Подробная инструкция по всем параметрам, которые нужно подставить под себя — в отдельном файле CONFIGURATION.md.
При использовании
deploy.shвсё настраивается автоматически.CONFIGURATION.mdнужен только для ручной настройки или понимания структуры.
6. После установки
Откройте в браузере:
https://ваш-домен.ru
7. Полезные команды на сервере
# ─── Подключение к серверу ───
ssh root@<IP>
# ─── Логи приложения ───
pm2 logs vortex-server # все логи
pm2 logs vortex-server --lines 50 # последние 50 строк
# ─── Управление сервером ───
pm2 restart vortex-server # перезапуск
pm2 stop vortex-server # остановка
pm2 start vortex-server # запуск
pm2 monit # мониторинг в реальном времени
# ─── Статус ───
pm2 status # список процессов
pm2 info vortex-server # детальная информация
# ─── Nginx ───
nginx -t # проверить конфигурацию
systemctl reload nginx # перезагрузить Nginx
systemctl status nginx # статус Nginx
# ─── Логи Nginx ───
tail -f /var/log/nginx/access.log # логи входящих запросов
tail -f /var/log/nginx/error.log # логи ошибок
# ─── PostgreSQL ───
sudo -u postgres psql -d vortex # подключиться к БД
\dt # список таблиц (внутри psql)
\q # выход из psql
# ─── coturn (TURN-сервер) ───
systemctl status coturn # статус TURN
systemctl restart coturn # перезапуск TURN
# ─── SSL сертификат ───
certbot renew --dry-run # проверка обновления сертификата
certbot certificates # список сертификатов
# ─── Файрвол ───
ufw status # статус файрвола
ufw allow 22/tcp # SSH
ufw allow 80/tcp # HTTP
ufw allow 443/tcp # HTTPS
ufw allow 3478/tcp # TURN TCP
ufw allow 3478/udp # TURN UDP
# ─── Файлы проекта ───
ls /var/www/vortex/ # корень проекта
cat /var/www/vortex/apps/server/.env # посмотреть env
cat /var/www/vortex/CREDENTIALS.txt # все сгенерированные пароли
8. Обновление проекта
С Windows (update-local.bat)
- Внесите изменения в код на ПК
- Отредактируйте
update-local.bat— впишите IP вашего сервера в переменнуюSERVER_IP - Запустите
update-local.bat— он соберёт архив и загрузит на сервер - Подключитесь к серверу и запустите:
ssh root@<IP>
/var/www/vortex/update.sh
Вручную
# На ПК: заархивировать проект (без node_modules, dist, .env)
tar -czf vortex-deploy.tar.gz --exclude='node_modules' --exclude='dist' --exclude='.env' --exclude='uploads/avatars/*' -C . .
# Загрузить на сервер
scp vortex-deploy.tar.gz root@<IP>:/root/
# На сервере: запустить обновление
ssh root@<IP>
/var/www/vortex/update.sh
Скрипт update.sh автоматически:
- Остановит сервер
- Сделает бэкап
.envи аватаров - Распакует обновление
- Восстановит
.envи аватары - Установит зависимости, применит миграции, пересоберёт
- Запустит сервер
9. Устранение проблем
| Проблема | Решение |
|---|---|
| Сайт не открывается | pm2 logs vortex-server --lines 30 — проверить ошибки |
| 502 Bad Gateway | pm2 restart vortex-server — бэкенд упал |
| SSL не получен | Проверить DNS: dig +short ваш-домен.ru должен показать IP сервера. Повторить: certbot --nginx -d ваш-домен.ru |
| Звонки не работают | systemctl status coturn — проверить TURN-сервер. Порты 3478 TCP/UDP должны быть открыты |
| БД недоступна | systemctl status postgresql → systemctl start postgresql |
| Сервер не стартует после ребута | pm2 startup и pm2 save |
| Нет места на диске | df -h → очистить логи: pm2 flush |