2.7 KiB
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) |