Выгрузка F7cloud_HPB: модернизация install.sh - поддержка переменных окружения и файла секретов
This commit is contained in:
parent
81f7f4af95
commit
37a4ddd26d
44
INSTALL.md
44
INSTALL.md
|
|
@ -17,6 +17,8 @@
|
|||
|
||||
### Автоматическая установка
|
||||
|
||||
#### Вариант 1: Автогенерация секретов (по умолчанию)
|
||||
|
||||
```bash
|
||||
# Клонируйте репозиторий
|
||||
git clone https://git.f7cloud.ru/root/F7_HPB.git /tmp/f7cloud-hpb
|
||||
|
|
@ -34,6 +36,48 @@ sudo ./install.sh
|
|||
- ✅ Настраивает systemd unit файлы
|
||||
- ✅ Сохраняет секреты в `/etc/f7cloud-spreed-signaling/.secrets.txt`
|
||||
|
||||
#### Вариант 2: Использование переменных окружения
|
||||
|
||||
Если нужно использовать существующие секреты (например, при миграции или синхронизации между серверами):
|
||||
|
||||
```bash
|
||||
export HPB_HASHKEY="your_64_char_hex_string"
|
||||
export HPB_BLOCKKEY="your_32_char_hex_string"
|
||||
export HPB_INTERNAL_SECRET="your_64_char_hex_string"
|
||||
export HPB_BACKEND_SECRET="your_64_char_hex_string"
|
||||
export TURN_SECRET="your_64_char_hex_string"
|
||||
export TURN_API_KEY="your_base64_string"
|
||||
export JANUS_ADMIN_SECRET="your_base64_string"
|
||||
export F7CLOUD_URL="https://cloud.example.com"
|
||||
|
||||
sudo ./install.sh
|
||||
```
|
||||
|
||||
#### Вариант 3: Использование файла секретов
|
||||
|
||||
Создайте файл `/tmp/hpb-secrets.env`:
|
||||
|
||||
```bash
|
||||
cat > /tmp/hpb-secrets.env <<EOF
|
||||
HPB_HASHKEY="your_64_char_hex_string"
|
||||
HPB_BLOCKKEY="your_32_char_hex_string"
|
||||
HPB_INTERNAL_SECRET="your_64_char_hex_string"
|
||||
HPB_BACKEND_SECRET="your_64_char_hex_string"
|
||||
TURN_SECRET="your_64_char_hex_string"
|
||||
TURN_API_KEY="your_base64_string"
|
||||
JANUS_ADMIN_SECRET="your_base64_string"
|
||||
F7CLOUD_URL="https://cloud.example.com"
|
||||
EOF
|
||||
|
||||
chmod 600 /tmp/hpb-secrets.env
|
||||
sudo ./install.sh
|
||||
```
|
||||
|
||||
**Приоритет загрузки секретов:**
|
||||
1. Файл `/tmp/hpb-secrets.env` (наивысший приоритет)
|
||||
2. Переменные окружения
|
||||
3. Автогенерация (если ничего не задано)
|
||||
|
||||
### После установки
|
||||
|
||||
**ВАЖНО: Обязательно отредактируйте конфиги перед запуском!**
|
||||
|
|
|
|||
45
install.sh
45
install.sh
|
|
@ -52,22 +52,39 @@ generate_base64() {
|
|||
|
||||
# Генерация всех секретов
|
||||
generate_secrets() {
|
||||
log_info "Генерация секретов..."
|
||||
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 символа
|
||||
# Проверяем переменные окружения или файл с секретами
|
||||
if [ -f "/tmp/hpb-secrets.env" ]; then
|
||||
log_info "Загрузка секретов из /tmp/hpb-secrets.env..."
|
||||
source /tmp/hpb-secrets.env
|
||||
|
||||
# TURN секрет (должен совпадать в signaling и turnserver)
|
||||
TURN_SECRET=$(generate_hex 32) # 64 hex символа
|
||||
TURN_API_KEY=$(generate_base64 16) # ~16 символов base64
|
||||
# Используем секреты из файла, если они заданы
|
||||
SIGNALING_HASHKEY=${HPB_HASHKEY:-${SIGNALING_HASHKEY:-$(generate_hex 32)}}
|
||||
SIGNALING_BLOCKKEY=${HPB_BLOCKKEY:-${SIGNALING_BLOCKKEY:-$(generate_hex 16)}}
|
||||
SIGNALING_INTERNAL_SECRET=${HPB_INTERNAL_SECRET:-${SIGNALING_INTERNAL_SECRET:-$(generate_hex 32)}}
|
||||
SIGNALING_BACKEND_SECRET=${HPB_BACKEND_SECRET:-${SIGNALING_BACKEND_SECRET:-$(generate_hex 32)}}
|
||||
TURN_SECRET=${TURN_SECRET:-$(generate_hex 32)}
|
||||
TURN_API_KEY=${TURN_API_KEY:-$(generate_base64 16)}
|
||||
JANUS_ADMIN_SECRET=${JANUS_ADMIN_SECRET:-$(generate_base64 16)}
|
||||
|
||||
# Janus admin secret
|
||||
JANUS_ADMIN_SECRET=$(generate_base64 16) # ~16 символов
|
||||
log_info "Секреты загружены из файла"
|
||||
else
|
||||
# Проверяем переменные окружения
|
||||
SIGNALING_HASHKEY=${HPB_HASHKEY:-$(generate_hex 32)}
|
||||
SIGNALING_BLOCKKEY=${HPB_BLOCKKEY:-$(generate_hex 16)}
|
||||
SIGNALING_INTERNAL_SECRET=${HPB_INTERNAL_SECRET:-$(generate_hex 32)}
|
||||
SIGNALING_BACKEND_SECRET=${HPB_BACKEND_SECRET:-$(generate_hex 32)}
|
||||
TURN_SECRET=${TURN_SECRET:-$(generate_hex 32)}
|
||||
TURN_API_KEY=${TURN_API_KEY:-$(generate_base64 16)}
|
||||
JANUS_ADMIN_SECRET=${JANUS_ADMIN_SECRET:-$(generate_base64 16)}
|
||||
|
||||
log_info "Секреты сгенерированы"
|
||||
if [ -n "${HPB_HASHKEY:-}" ] || [ -n "${HPB_BLOCKKEY:-}" ] || [ -n "${HPB_INTERNAL_SECRET:-}" ]; then
|
||||
log_info "Секреты загружены из переменных окружения"
|
||||
else
|
||||
log_info "Секреты сгенерированы автоматически"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Создание пользователей системы
|
||||
|
|
@ -164,12 +181,16 @@ install_configs() {
|
|||
|
||||
# Signaling server.conf
|
||||
if [[ -f "$SCRIPT_DIR/server.conf.example" ]]; then
|
||||
# Определяем URL Nextcloud из переменной окружения или используем плейсхолдер
|
||||
NEXTCLOUD_URL=${F7CLOUD_URL:-${NEXTCLOUD_URL:-"https://your-nextcloud.example"}}
|
||||
|
||||
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" \
|
||||
-e "s|https://your-nextcloud.example|$NEXTCLOUD_URL|g" \
|
||||
"$SCRIPT_DIR/server.conf.example" > "$INSTALL_DIR/server.conf"
|
||||
chmod 600 "$INSTALL_DIR/server.conf"
|
||||
chown _signaling:_signaling "$INSTALL_DIR/server.conf"
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user