v0.5.13: DevOps-деплой гайд + .env.example
This commit is contained in:
+23
-12
@@ -1,16 +1,27 @@
|
|||||||
# База данных
|
# ── База данных PostgreSQL ──
|
||||||
DB_HOST=your-db-host.svc.cluster.local
|
DB_HOST=localhost
|
||||||
DB_PORT=5432
|
DB_PORT=5432
|
||||||
DB_NAME=postgres
|
DB_NAME=ipwhitelist
|
||||||
DB_USER=your-user
|
DB_USER=super
|
||||||
DB_PASS=your-password
|
DB_PASS=сменить_пароль
|
||||||
DB_SSLMODE=require
|
DB_SSLMODE=disable
|
||||||
|
|
||||||
# Сервер
|
# ── Режим разработки (true = без Keycloak, mock-логин) ──
|
||||||
PORT=3000
|
DEV_MODE=true
|
||||||
|
|
||||||
# Лимиты
|
|
||||||
DEFAULT_LIMIT=15
|
DEFAULT_LIMIT=15
|
||||||
|
|
||||||
# Режим разработки (true = без Keycloak, читать X-Dev-User из заголовка)
|
# ── Сессия (сменить на случайные строки) ──
|
||||||
DEV_MODE=true
|
SESSION_SECRET=сменить_на_случайную_строку
|
||||||
|
CSRF_SECRET=сменить_на_случайную_строку
|
||||||
|
|
||||||
|
# ── Порт сервера ──
|
||||||
|
PORT=3001
|
||||||
|
|
||||||
|
# ── Администратор (clientId) ──
|
||||||
|
ADMIN_CLIENT_ID=WZ01112
|
||||||
|
|
||||||
|
# ── Keycloak (оставить пустым пока нет OIDC) ──
|
||||||
|
# KC_CLIENT_ID=
|
||||||
|
# KC_CLIENT_SECRET=
|
||||||
|
# KC_BASE_URL=https://keycloak.nubes.ru/realms/cloud
|
||||||
|
# APP_URL=https://ваш-домен.ru
|
||||||
|
|||||||
@@ -0,0 +1,101 @@
|
|||||||
|
# Деплой 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) |
|
||||||
Reference in New Issue
Block a user