Ручное развёртывание
Если вы предпочитаете не использовать Docker, pipel8ne можно запустить напрямую на хосте с Node.js и экземпляром MongoDB.
Предварительные требования
- Node.js 18+
- MongoDB 6+ (работающий и доступный)
- Обратный прокси (Nginx, Caddy) для HTTPS в продакшене
1. Клонировать и собрать фронтенд
bash
git clone https://github.com/ogb4n/pipel8ne.git
cd pipel8ne
cd webapp
npm install
npm run build
cd ..Вывод сборки находится в webapp/dist/.
2. Собрать бэкенд
bash
cd backend
npm install
npm run buildСкомпилированный вывод находится в backend/dist/.
3. Настроить переменные окружения
Создайте backend/.env:
env
DATABASE_URL=mongodb://user:password@localhost:27017/pipel8ne?authSource=admin
JWT_SECRET=<ваш секрет>
SECRETS_ENCRYPTION_KEY=<ваш ключ 32 байта>
NODE_ENV=production
PORT=30004. Запустить бэкенд
bash
cd backend
NODE_ENV=production node dist/index.jsИли с менеджером процессов PM2:
bash
npm install -g pm2
pm2 start backend/dist/index.js \
--name pipel8ne \
--env-file backend/.env
pm2 save
pm2 startup # создать init-скрипт для перезапуска при перезагрузке5. Раздача фронтенда
Бэкенд автоматически раздаёт скомпилированный фронтенд из webapp/dist/ при обнаружении этой папки. Отдельный веб-сервер для фронтенда не нужен, если бэкенд запущен на той же машине.
Обратный прокси Nginx
nginx
server {
listen 80;
server_name your-domain.com;
# Перенаправление HTTP → HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}Получите бесплатный TLS-сертификат с Certbot:
bash
certbot --nginx -d your-domain.com