Выгрузка F7cloud_HPB: скрипт установки с автогенерацией секретов
This commit is contained in:
parent
43a290149b
commit
81f7f4af95
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,5 +1,6 @@
|
||||||
# Конфиг с секретами — не выгружать в git
|
# Конфиг с секретами — не выгружать в git
|
||||||
server.conf
|
server.conf
|
||||||
|
.secrets.txt
|
||||||
|
|
||||||
# Резервные копии и временные файлы
|
# Резервные копии и временные файлы
|
||||||
*.bak
|
*.bak
|
||||||
|
|
|
||||||
196
INSTALL.md
Normal file
196
INSTALL.md
Normal file
|
|
@ -0,0 +1,196 @@
|
||||||
|
# Инструкция по установке HPB - Nextcloud Spreed Signaling Stack
|
||||||
|
|
||||||
|
Этот репозиторий содержит все необходимое для развертывания стека Nextcloud Talk на новом сервере.
|
||||||
|
|
||||||
|
## Быстрая установка
|
||||||
|
|
||||||
|
### Требования
|
||||||
|
|
||||||
|
- Linux (Debian/Ubuntu рекомендуется)
|
||||||
|
- Root доступ
|
||||||
|
- Открытые порты:
|
||||||
|
- 8080 (signaling HTTP, можно изменить)
|
||||||
|
- 8188 (Janus WebSocket)
|
||||||
|
- 4222 (NATS)
|
||||||
|
- 3478/5349 (coTURN UDP/TCP/TLS)
|
||||||
|
- 9991 (coTURN для signaling, можно изменить)
|
||||||
|
|
||||||
|
### Автоматическая установка
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Клонируйте репозиторий
|
||||||
|
git clone https://git.f7cloud.ru/root/F7_HPB.git /tmp/f7cloud-hpb
|
||||||
|
cd /tmp/f7cloud-hpb
|
||||||
|
|
||||||
|
# Запустите скрипт установки (от root)
|
||||||
|
sudo ./install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Скрипт автоматически:
|
||||||
|
- ✅ Генерирует все необходимые секреты
|
||||||
|
- ✅ Создает системных пользователей
|
||||||
|
- ✅ Устанавливает бинарники в `/usr/bin` и `/usr/sbin`
|
||||||
|
- ✅ Копирует конфиги с подстановкой секретов
|
||||||
|
- ✅ Настраивает systemd unit файлы
|
||||||
|
- ✅ Сохраняет секреты в `/etc/f7cloud-spreed-signaling/.secrets.txt`
|
||||||
|
|
||||||
|
### После установки
|
||||||
|
|
||||||
|
**ВАЖНО: Обязательно отредактируйте конфиги перед запуском!**
|
||||||
|
|
||||||
|
1. **Signaling server** (`/etc/f7cloud-spreed-signaling/server.conf`):
|
||||||
|
```bash
|
||||||
|
nano /etc/f7cloud-spreed-signaling/server.conf
|
||||||
|
```
|
||||||
|
- Укажите реальные URL бэкендов Nextcloud в секции `[nextcloud-backend-0]`
|
||||||
|
- Проверьте секреты (они уже сгенерированы)
|
||||||
|
|
||||||
|
2. **coTURN** (`/etc/turnserver.conf`):
|
||||||
|
```bash
|
||||||
|
nano /etc/turnserver.conf
|
||||||
|
```
|
||||||
|
- Укажите реальные IP адреса в `listening-ip` и `relay-ip`
|
||||||
|
- Укажите `realm` (домен вашего сервера)
|
||||||
|
- Укажите пути к TLS сертификатам (если используете HTTPS)
|
||||||
|
|
||||||
|
3. **Janus** (`/etc/janus/janus.jcfg`):
|
||||||
|
- Проверьте пути к плагинам и транспортам
|
||||||
|
- Admin secret уже сгенерирован
|
||||||
|
|
||||||
|
### Запуск сервисов
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Включить автозапуск
|
||||||
|
sudo systemctl enable signaling janus nats-server coturn
|
||||||
|
|
||||||
|
# Запустить сервисы
|
||||||
|
sudo systemctl start signaling janus nats-server coturn
|
||||||
|
|
||||||
|
# Проверить статус
|
||||||
|
sudo systemctl status signaling janus nats-server coturn
|
||||||
|
```
|
||||||
|
|
||||||
|
### Проверка работы
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Логи signaling
|
||||||
|
sudo journalctl -u signaling -f
|
||||||
|
|
||||||
|
# Логи janus
|
||||||
|
sudo journalctl -u janus -f
|
||||||
|
|
||||||
|
# Логи NATS
|
||||||
|
sudo journalctl -u nats-server -f
|
||||||
|
|
||||||
|
# Логи coTURN
|
||||||
|
sudo journalctl -u coturn -f
|
||||||
|
```
|
||||||
|
|
||||||
|
## Структура установки
|
||||||
|
|
||||||
|
После установки файлы будут находиться:
|
||||||
|
|
||||||
|
```
|
||||||
|
/usr/bin/
|
||||||
|
├── signaling # Signaling server
|
||||||
|
├── janus # Janus WebRTC Gateway
|
||||||
|
└── turnserver # coTURN TURN server
|
||||||
|
|
||||||
|
/usr/sbin/
|
||||||
|
└── nats-server # NATS Server
|
||||||
|
|
||||||
|
/usr/lib/x86_64-linux-gnu/janus/
|
||||||
|
├── plugins/ # Janus плагины
|
||||||
|
├── transports/ # Janus транспорты
|
||||||
|
├── events/ # Janus event handlers
|
||||||
|
└── loggers/ # Janus loggers
|
||||||
|
|
||||||
|
/etc/f7cloud-spreed-signaling/
|
||||||
|
├── server.conf # Конфиг signaling (с секретами!)
|
||||||
|
└── .secrets.txt # Сохраненные секреты
|
||||||
|
|
||||||
|
/etc/janus/ # Конфиги Janus
|
||||||
|
|
||||||
|
/etc/turnserver.conf # Конфиг coTURN
|
||||||
|
|
||||||
|
/etc/nats-server.conf # Конфиг NATS
|
||||||
|
|
||||||
|
/etc/systemd/system/
|
||||||
|
├── signaling.service
|
||||||
|
├── janus.service
|
||||||
|
├── nats-server.service
|
||||||
|
└── coturn.service
|
||||||
|
```
|
||||||
|
|
||||||
|
## Секреты
|
||||||
|
|
||||||
|
Все секреты автоматически генерируются при установке и сохраняются в:
|
||||||
|
```
|
||||||
|
/etc/f7cloud-spreed-signaling/.secrets.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
**ВАЖНО:** Сохраните этот файл в безопасном месте! Он понадобится для:
|
||||||
|
- Настройки Nextcloud (backend secret)
|
||||||
|
- Восстановления конфигурации
|
||||||
|
- Синхронизации секретов между серверами
|
||||||
|
|
||||||
|
## Ручная установка
|
||||||
|
|
||||||
|
Если автоматический скрипт не подходит, можно установить вручную:
|
||||||
|
|
||||||
|
1. Скопируйте бинарники из `signaling-server/` в соответствующие директории
|
||||||
|
2. Скопируйте конфиги из `config/` и `systemd/`
|
||||||
|
3. Сгенерируйте секреты вручную:
|
||||||
|
```bash
|
||||||
|
# Генерация hex секрета (64 символа)
|
||||||
|
openssl rand -hex 32
|
||||||
|
|
||||||
|
# Генерация base64 секрета
|
||||||
|
openssl rand -base64 16
|
||||||
|
```
|
||||||
|
4. Подставьте секреты в конфиги
|
||||||
|
5. Создайте пользователей и настройте права доступа
|
||||||
|
6. Установите systemd unit файлы
|
||||||
|
|
||||||
|
## Обновление
|
||||||
|
|
||||||
|
Для обновления:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Остановите сервисы
|
||||||
|
sudo systemctl stop signaling janus nats-server coturn
|
||||||
|
|
||||||
|
# Обновите бинарники из репозитория
|
||||||
|
git pull
|
||||||
|
sudo cp signaling-server/* /usr/bin/ # или соответствующие пути
|
||||||
|
|
||||||
|
# Перезапустите сервисы
|
||||||
|
sudo systemctl start signaling janus nats-server coturn
|
||||||
|
```
|
||||||
|
|
||||||
|
## Удаление
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Остановите и отключите сервисы
|
||||||
|
sudo systemctl stop signaling janus nats-server coturn
|
||||||
|
sudo systemctl disable signaling janus nats-server coturn
|
||||||
|
|
||||||
|
# Удалите файлы
|
||||||
|
sudo rm -rf /etc/f7cloud-spreed-signaling
|
||||||
|
sudo rm -f /usr/bin/signaling /usr/bin/janus /usr/bin/turnserver
|
||||||
|
sudo rm -f /usr/sbin/nats-server
|
||||||
|
sudo rm -rf /usr/lib/x86_64-linux-gnu/janus
|
||||||
|
sudo rm -f /etc/systemd/system/{signaling,janus,nats-server,coturn}.service
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
|
||||||
|
# Удалите пользователей (опционально)
|
||||||
|
sudo userdel _signaling nats turnserver
|
||||||
|
```
|
||||||
|
|
||||||
|
## Поддержка
|
||||||
|
|
||||||
|
При возникновении проблем проверьте:
|
||||||
|
- Логи сервисов: `journalctl -u <service-name>`
|
||||||
|
- Права доступа к файлам
|
||||||
|
- Открыты ли необходимые порты
|
||||||
|
- Правильность конфигурации
|
||||||
297
install.sh
Executable file
297
install.sh
Executable file
|
|
@ -0,0 +1,297 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Скрипт установки HPB - Nextcloud Spreed Signaling Stack
|
||||||
|
# Автоматически генерирует секреты и настраивает все сервисы
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
INSTALL_DIR="/etc/f7cloud-spreed-signaling"
|
||||||
|
BIN_DIR="/usr/bin"
|
||||||
|
SBIN_DIR="/usr/sbin"
|
||||||
|
LIB_DIR="/usr/lib/x86_64-linux-gnu/janus"
|
||||||
|
CONFIG_DIR="/etc/janus"
|
||||||
|
SYSTEMD_DIR="/etc/systemd/system"
|
||||||
|
|
||||||
|
# Цвета для вывода
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[1;33m'
|
||||||
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
|
log_info() {
|
||||||
|
echo -e "${GREEN}[INFO]${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
log_warn() {
|
||||||
|
echo -e "${YELLOW}[WARN]${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
log_error() {
|
||||||
|
echo -e "${RED}[ERROR]${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Проверка прав root
|
||||||
|
check_root() {
|
||||||
|
if [[ $EUID -ne 0 ]]; then
|
||||||
|
log_error "Этот скрипт должен запускаться от root"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Генерация случайных hex строк
|
||||||
|
generate_hex() {
|
||||||
|
local length=$1
|
||||||
|
openssl rand -hex "$length" | tr -d '\n'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Генерация base64 строки
|
||||||
|
generate_base64() {
|
||||||
|
local length=$1
|
||||||
|
openssl rand -base64 "$length" | tr -d '\n' | tr -d '=' | head -c "$length"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Генерация всех секретов
|
||||||
|
generate_secrets() {
|
||||||
|
log_info "Генерация секретов..."
|
||||||
|
|
||||||
|
# Signaling server секреты
|
||||||
|
SIGNALING_HASHKEY=$(generate_hex 32) # 32 байта = 64 hex символа
|
||||||
|
SIGNALING_BLOCKKEY=$(generate_hex 16) # 16 байт = 32 hex символа
|
||||||
|
SIGNALING_INTERNAL_SECRET=$(generate_hex 32) # 64 hex символа
|
||||||
|
SIGNALING_BACKEND_SECRET=$(generate_hex 32) # 64 hex символа
|
||||||
|
|
||||||
|
# TURN секрет (должен совпадать в signaling и turnserver)
|
||||||
|
TURN_SECRET=$(generate_hex 32) # 64 hex символа
|
||||||
|
TURN_API_KEY=$(generate_base64 16) # ~16 символов base64
|
||||||
|
|
||||||
|
# Janus admin secret
|
||||||
|
JANUS_ADMIN_SECRET=$(generate_base64 16) # ~16 символов
|
||||||
|
|
||||||
|
log_info "Секреты сгенерированы"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Создание пользователей системы
|
||||||
|
create_users() {
|
||||||
|
log_info "Создание системных пользователей..."
|
||||||
|
|
||||||
|
# Пользователь для signaling
|
||||||
|
if ! id "_signaling" &>/dev/null; then
|
||||||
|
useradd --system --no-create-home --shell /usr/sbin/nologin \
|
||||||
|
--comment "Nextcloud Talk signaling server" _signaling || true
|
||||||
|
log_info "Пользователь _signaling создан"
|
||||||
|
else
|
||||||
|
log_warn "Пользователь _signaling уже существует"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Пользователь для NATS (обычно уже есть)
|
||||||
|
if ! id "nats" &>/dev/null; then
|
||||||
|
useradd --system --no-create-home --shell /usr/sbin/nologin \
|
||||||
|
--comment "NATS Server" nats || true
|
||||||
|
log_info "Пользователь nats создан"
|
||||||
|
else
|
||||||
|
log_warn "Пользователь nats уже существует"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Пользователь для coturn (обычно уже есть)
|
||||||
|
if ! id "turnserver" &>/dev/null; then
|
||||||
|
useradd --system --no-create-home --shell /usr/sbin/nologin \
|
||||||
|
--comment "coTURN STUN/TURN Server" turnserver || true
|
||||||
|
log_info "Пользователь turnserver создан"
|
||||||
|
else
|
||||||
|
log_warn "Пользователь turnserver уже существует"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Копирование бинарников
|
||||||
|
install_binaries() {
|
||||||
|
log_info "Установка бинарников..."
|
||||||
|
|
||||||
|
# Signaling
|
||||||
|
if [[ -f "$SCRIPT_DIR/signaling-server/signaling" ]]; then
|
||||||
|
cp "$SCRIPT_DIR/signaling-server/signaling" "$BIN_DIR/signaling"
|
||||||
|
chmod 755 "$BIN_DIR/signaling"
|
||||||
|
log_info "signaling установлен в $BIN_DIR/signaling"
|
||||||
|
else
|
||||||
|
log_error "Бинарник signaling не найден!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Janus
|
||||||
|
if [[ -f "$SCRIPT_DIR/signaling-server/janus/bin/janus" ]]; then
|
||||||
|
cp "$SCRIPT_DIR/signaling-server/janus/bin/janus" "$BIN_DIR/janus"
|
||||||
|
chmod 755 "$BIN_DIR/janus"
|
||||||
|
log_info "janus установлен в $BIN_DIR/janus"
|
||||||
|
|
||||||
|
# Janus библиотеки
|
||||||
|
mkdir -p "$LIB_DIR"
|
||||||
|
cp -r "$SCRIPT_DIR/signaling-server/janus/lib/"* "$LIB_DIR/"
|
||||||
|
log_info "Janus библиотеки установлены в $LIB_DIR"
|
||||||
|
else
|
||||||
|
log_error "Бинарник janus не найден!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# NATS Server
|
||||||
|
if [[ -f "$SCRIPT_DIR/signaling-server/nats-server" ]]; then
|
||||||
|
cp "$SCRIPT_DIR/signaling-server/nats-server" "$SBIN_DIR/nats-server"
|
||||||
|
chmod 755 "$SBIN_DIR/nats-server"
|
||||||
|
log_info "nats-server установлен в $SBIN_DIR/nats-server"
|
||||||
|
else
|
||||||
|
log_error "Бинарник nats-server не найден!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# coTURN
|
||||||
|
if [[ -f "$SCRIPT_DIR/signaling-server/turnserver" ]]; then
|
||||||
|
cp "$SCRIPT_DIR/signaling-server/turnserver" "$BIN_DIR/turnserver"
|
||||||
|
chmod 755 "$BIN_DIR/turnserver"
|
||||||
|
# Создаем симлинк coturn -> turnserver
|
||||||
|
ln -sf turnserver "$BIN_DIR/coturn"
|
||||||
|
log_info "turnserver установлен в $BIN_DIR/turnserver"
|
||||||
|
else
|
||||||
|
log_error "Бинарник turnserver не найден!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Установка конфигов с подстановкой секретов
|
||||||
|
install_configs() {
|
||||||
|
log_info "Установка конфигурационных файлов..."
|
||||||
|
|
||||||
|
# Создаем директории
|
||||||
|
mkdir -p "$INSTALL_DIR"
|
||||||
|
mkdir -p "$CONFIG_DIR"
|
||||||
|
|
||||||
|
# Signaling server.conf
|
||||||
|
if [[ -f "$SCRIPT_DIR/server.conf.example" ]]; then
|
||||||
|
sed -e "s|YOUR_32_OR_64_BYTE_HEX_HASHKEY|$SIGNALING_HASHKEY|g" \
|
||||||
|
-e "s|YOUR_16_24_OR_32_BYTE_HEX_BLOCKKEY|$SIGNALING_BLOCKKEY|g" \
|
||||||
|
-e "s|YOUR_INTERNAL_CLIENT_SECRET|$SIGNALING_INTERNAL_SECRET|g" \
|
||||||
|
-e "s|YOUR_NEXTCLOUD_BACKEND_SECRET|$SIGNALING_BACKEND_SECRET|g" \
|
||||||
|
-e "s|YOUR_TURN_API_KEY|$TURN_API_KEY|g" \
|
||||||
|
-e "s|YOUR_TURN_SHARED_SECRET|$TURN_SECRET|g" \
|
||||||
|
"$SCRIPT_DIR/server.conf.example" > "$INSTALL_DIR/server.conf"
|
||||||
|
chmod 600 "$INSTALL_DIR/server.conf"
|
||||||
|
chown _signaling:_signaling "$INSTALL_DIR/server.conf"
|
||||||
|
log_info "server.conf создан в $INSTALL_DIR/server.conf"
|
||||||
|
log_warn "ВАЖНО: Отредактируйте $INSTALL_DIR/server.conf - укажите реальные URL бэкендов Nextcloud!"
|
||||||
|
else
|
||||||
|
log_error "server.conf.example не найден!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Janus конфиги
|
||||||
|
if [[ -d "$SCRIPT_DIR/config/janus" ]]; then
|
||||||
|
cp -r "$SCRIPT_DIR/config/janus/"* "$CONFIG_DIR/"
|
||||||
|
# Подставляем admin_secret в janus.jcfg
|
||||||
|
sed -i "s|admin_secret = \"CHANGE_ME\"|admin_secret = \"$JANUS_ADMIN_SECRET\"|g" \
|
||||||
|
"$CONFIG_DIR/janus.jcfg"
|
||||||
|
chown -R root:root "$CONFIG_DIR"
|
||||||
|
log_info "Janus конфиги установлены в $CONFIG_DIR"
|
||||||
|
else
|
||||||
|
log_error "Janus конфиги не найдены!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# coTURN turnserver.conf
|
||||||
|
if [[ -f "$SCRIPT_DIR/config/coturn/turnserver.conf.example" ]]; then
|
||||||
|
# Получаем публичный IP (если доступен) или оставляем плейсхолдер
|
||||||
|
PUBLIC_IP=$(curl -s --max-time 2 https://api.ipify.org 2>/dev/null || echo "YOUR_PUBLIC_IP")
|
||||||
|
DOMAIN=$(hostname -f 2>/dev/null || echo "YOUR_DOMAIN")
|
||||||
|
|
||||||
|
sed -e "s|YOUR_TURN_STATIC_AUTH_SECRET|$TURN_SECRET|g" \
|
||||||
|
-e "s|YOUR_PUBLIC_IP|$PUBLIC_IP|g" \
|
||||||
|
-e "s|YOUR_DOMAIN|$DOMAIN|g" \
|
||||||
|
"$SCRIPT_DIR/config/coturn/turnserver.conf.example" > "/etc/turnserver.conf"
|
||||||
|
chmod 640 "/etc/turnserver.conf"
|
||||||
|
chown turnserver:turnserver "/etc/turnserver.conf"
|
||||||
|
log_info "turnserver.conf создан в /etc/turnserver.conf"
|
||||||
|
log_warn "ВАЖНО: Отредактируйте /etc/turnserver.conf - укажите реальные IP адреса и пути к сертификатам!"
|
||||||
|
else
|
||||||
|
log_error "turnserver.conf.example не найден!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# NATS конфиг
|
||||||
|
if [[ -f "$SCRIPT_DIR/config/nats/nats-server.conf" ]]; then
|
||||||
|
cp "$SCRIPT_DIR/config/nats/nats-server.conf" "/etc/nats-server.conf"
|
||||||
|
chmod 644 "/etc/nats-server.conf"
|
||||||
|
chown nats:nats "/etc/nats-server.conf"
|
||||||
|
log_info "nats-server.conf установлен в /etc/nats-server.conf"
|
||||||
|
else
|
||||||
|
log_error "nats-server.conf не найден!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Установка systemd unit файлов
|
||||||
|
install_systemd() {
|
||||||
|
log_info "Установка systemd unit файлов..."
|
||||||
|
|
||||||
|
if [[ -d "$SCRIPT_DIR/systemd" ]]; then
|
||||||
|
cp "$SCRIPT_DIR/systemd/"*.service "$SYSTEMD_DIR/"
|
||||||
|
systemctl daemon-reload
|
||||||
|
log_info "Systemd unit файлы установлены"
|
||||||
|
else
|
||||||
|
log_error "Systemd unit файлы не найдены!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Сохранение секретов в файл (для справки)
|
||||||
|
save_secrets() {
|
||||||
|
SECRETS_FILE="$INSTALL_DIR/.secrets.txt"
|
||||||
|
cat > "$SECRETS_FILE" <<EOF
|
||||||
|
# Сгенерированные секреты при установке $(date)
|
||||||
|
# ВАЖНО: Сохраните этот файл в безопасном месте!
|
||||||
|
|
||||||
|
# Signaling Server
|
||||||
|
hashkey = $SIGNALING_HASHKEY
|
||||||
|
blockkey = $SIGNALING_BLOCKKEY
|
||||||
|
internalsecret = $SIGNALING_INTERNAL_SECRET
|
||||||
|
backend_secret = $SIGNALING_BACKEND_SECRET
|
||||||
|
|
||||||
|
# TURN Server (используется в signaling и turnserver)
|
||||||
|
turn_secret = $TURN_SECRET
|
||||||
|
turn_apikey = $TURN_API_KEY
|
||||||
|
|
||||||
|
# Janus
|
||||||
|
admin_secret = $JANUS_ADMIN_SECRET
|
||||||
|
|
||||||
|
EOF
|
||||||
|
chmod 600 "$SECRETS_FILE"
|
||||||
|
log_warn "Секреты сохранены в $SECRETS_FILE"
|
||||||
|
log_warn "ВАЖНО: Сохраните этот файл в безопасном месте!"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Основная функция установки
|
||||||
|
main() {
|
||||||
|
log_info "Начало установки HPB - Nextcloud Spreed Signaling Stack"
|
||||||
|
|
||||||
|
check_root
|
||||||
|
generate_secrets
|
||||||
|
create_users
|
||||||
|
install_binaries
|
||||||
|
install_configs
|
||||||
|
install_systemd
|
||||||
|
save_secrets
|
||||||
|
|
||||||
|
log_info ""
|
||||||
|
log_info "=========================================="
|
||||||
|
log_info "Установка завершена успешно!"
|
||||||
|
log_info "=========================================="
|
||||||
|
log_info ""
|
||||||
|
log_warn "СЛЕДУЮЩИЕ ШАГИ:"
|
||||||
|
log_warn "1. Отредактируйте $INSTALL_DIR/server.conf - укажите URL бэкендов Nextcloud"
|
||||||
|
log_warn "2. Отредактируйте /etc/turnserver.conf - укажите реальные IP и пути к сертификатам"
|
||||||
|
log_warn "3. Проверьте конфиги в $CONFIG_DIR/janus/"
|
||||||
|
log_warn "4. Секреты сохранены в $INSTALL_DIR/.secrets.txt"
|
||||||
|
log_info ""
|
||||||
|
log_info "Для запуска сервисов выполните:"
|
||||||
|
log_info " systemctl enable signaling janus nats-server coturn"
|
||||||
|
log_info " systemctl start signaling janus nats-server coturn"
|
||||||
|
log_info ""
|
||||||
|
}
|
||||||
|
|
||||||
|
# Запуск
|
||||||
|
main "$@"
|
||||||
Loading…
Reference in New Issue
Block a user