Skip to content

Ручное развёртывание

Если вы предпочитаете не использовать 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=3000

4. Запустить бэкенд

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

Released under the MIT License.