Files
forkmessager/CONFIGURATION.md
Халимов Рустам b4b4b8e0d3 Original
2026-03-10 21:11:59 +03:00

4.0 KiB
Raw Blame History

Vortex Messenger — Настройка конфигурации

Если вы используете deploy.sh — всё ниже подставляется автоматически.
Этот файл нужен для ручной настройки или если вы хотите понимать, что где лежит.


1. Файл update-local.bat (на вашем ПК)

Откройте файл и замените IP на ваш:

set SERVER_IP=<IP вашего VPS>

2. Файл apps/server/.env (на сервере)

Скопируйте .env.example и заполните:

# Порт HTTP-сервера (обычно менять не нужно)
PORT=3001

# Секрет для подписи JWT-токенов — длинная случайная строка
# Сгенерировать: node -e "console.log(require('crypto').randomBytes(48).toString('base64url'))"
JWT_SECRET=<ВАШ_СЛУЧАЙНЫЙ_СЕКРЕТ>

# Строка подключения к PostgreSQL
# Формат: postgresql://ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ@localhost:5432/ИМЯ_БАЗЫ
DATABASE_URL=postgresql://vortex:<ПАРОЛЬ_БД>@localhost:5432/vortex

# Ключ шифрования сообщений (64 hex-символа = 32 байта)
# Сгенерировать: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
# ⚠ ВАЖНО: при утере ключа все зашифрованные сообщения станут нечитаемы!
ENCRYPTION_KEY=<64_HEX_СИМВОЛА>

# Режим работы
NODE_ENV=production

# Разрешённые домены для CORS (ваш домен с https://)
CORS_ORIGINS=https://<ВАШ_ДОМЕН>

# Лимит регистраций с одного IP
MAX_REGISTRATIONS_PER_IP=5

# TURN-сервер для звонков (coturn)
TURN_URL=turn:<ВАШ_ДОМЕН>:3478
TURN_SECRET=<СЕКРЕТ_TURN_СЕРВЕРА>
STUN_URLS=stun:stun.l.google.com:19302,stun:<ВАШ_ДОМЕН>:3478

3. Конфигурация coturn (на сервере)

Файл /etc/turnserver.conf:

realm=<ВАШ_ДОМЕН>
server-name=<ВАШ_ДОМЕН>
static-auth-secret=<СЕКРЕТ_TURN_СЕРВЕРА>   # тот же что TURN_SECRET в .env

4. Nginx (на сервере)

Файл /etc/nginx/sites-available/vortex — замените server_name:

server_name <ВАШ_ДОМЕН>;

5. Генерация ключей

# JWT-секрет (64 символа)
node -e "console.log(require('crypto').randomBytes(48).toString('base64url'))"

# Ключ шифрования сообщений (64 hex-символа)
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

# Пароль для базы данных (32 символа)
node -e "console.log(require('crypto').randomBytes(24).toString('base64url').slice(0,32))"

# TURN-секрет (32 символа)
node -e "console.log(require('crypto').randomBytes(24).toString('base64url').slice(0,32))"

6. Сводная таблица

Где Что заменить Пример значения
update-local.bat строка 9 SERVER_IP 203.0.113.50
.envJWT_SECRET Случайная строка 64+ символов см. раздел 5
.envDATABASE_URL Пароль пользователя БД postgresql://vortex:MyPass123@localhost:5432/vortex
.envENCRYPTION_KEY 64 hex-символа см. раздел 5
.envCORS_ORIGINS Ваш домен с https:// https://chat.example.com
.envTURN_URL Ваш домен turn:chat.example.com:3478
.envTURN_SECRET Случайная строка см. раздел 5
/etc/turnserver.conf realm, server-name, static-auth-secret Ваш домен + TURN_SECRET
Nginx → server_name Ваш домен chat.example.com