# Деплой ipwhitelist для DevOps > Репозиторий: `https://gitea.services.ngcloud.ru/Nail/ipwhitelist-app.git` ## Быстрый старт ```bash # 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 (все параметры) ```bash # ── База данных 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 ```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) |