Files
ipwhitelist-app/docs/devops-deploy.md
T

2.7 KiB

Деплой ipwhitelist для DevOps

Репозиторий: https://gitea.services.ngcloud.ru/Nail/ipwhitelist-app.git

Быстрый старт

# 1. Установить Node.js v20+
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs git

# 2. Скачать
git clone https://gitea.services.ngcloud.ru/Nail/ipwhitelist-app.git
cd ipwhitelist-app
npm install

# 3. Создать .env (см. ниже)
cp .env.example .env
nano .env

# 4. Создать БД PostgreSQL
sudo -u postgres psql -c "CREATE USER super WITH PASSWORD '...';"
sudo -u postgres psql -c "CREATE DATABASE ipwhitelist OWNER super;"
psql -h localhost -U super -d ipwhitelist -f sql/schema.sql

# 5. Запустить
npm start
# ИЛИ через PM2:
npm i -g pm2
pm2 start server.js --name ipwhitelist

.env (все параметры)

# ── База данных PostgreSQL ──
DB_HOST=localhost
DB_PORT=5432
DB_NAME=ipwhitelist
DB_USER=super
DB_PASS=ваш_пароль
DB_SSLMODE=disable

# ── Режим разработки (оставить true пока нет Keycloak) ──
DEV_MODE=true
DEFAULT_LIMIT=15

# ── Сессия (сменить на случайные строки) ──
SESSION_SECRET=случайная_строка_32_символа
CSRF_SECRET=другая_случайная_строка_32_символа

# ── Порт ──
PORT=3001

# ── Админ (clientId администратора) ──
ADMIN_CLIENT_ID=WZ01112

# ── Keycloak (не заполнять пока нет) ──
# KC_CLIENT_ID=ipwhitelist
# KC_CLIENT_SECRET=секрет
# KC_BASE_URL=https://keycloak.nubes.ru/realms/cloud
# APP_URL=https://ваш-домен.ru

nginx

server {
    listen 80;
    server_name ваш-домен.ru;

    location / {
        proxy_pass http://127.0.0.1:3001;
        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;
    }
}

Keycloak (когда появится)

Нужно будет вписать в .env:

DEV_MODE=false
KC_CLIENT_ID=ipwhitelist
KC_CLIENT_SECRET=...
KC_BASE_URL=https://keycloak.nubes.ru/realms/cloud
APP_URL=https://ваш-домен.ru

И в админке Keycloak зарегистрировать клиента (см. docs/deploy-keycloak.md).

Проверка

URL Что должно быть
https://ваш-домен.ru/healthz OK
https://ваш-домен.ru/export Список CIDR (text/plain)
https://ваш-домен.ru/ Страница входа (при DEV_MODE)