Выгрузка 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
|
```bash
|
||||||
# Клонируйте репозиторий
|
# Клонируйте репозиторий
|
||||||
git clone https://git.f7cloud.ru/root/F7_HPB.git /tmp/f7cloud-hpb
|
git clone https://git.f7cloud.ru/root/F7_HPB.git /tmp/f7cloud-hpb
|
||||||
|
|
@ -34,6 +36,48 @@ sudo ./install.sh
|
||||||
- ✅ Настраивает systemd unit файлы
|
- ✅ Настраивает systemd unit файлы
|
||||||
- ✅ Сохраняет секреты в `/etc/f7cloud-spreed-signaling/.secrets.txt`
|
- ✅ Сохраняет секреты в `/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. Автогенерация (если ничего не задано)
|
||||||
|
|
||||||
### После установки
|
### После установки
|
||||||
|
|
||||||
**ВАЖНО: Обязательно отредактируйте конфиги перед запуском!**
|
**ВАЖНО: Обязательно отредактируйте конфиги перед запуском!**
|
||||||
|
|
|
||||||
51
install.sh
51
install.sh
|
|
@ -52,22 +52,39 @@ generate_base64() {
|
||||||
|
|
||||||
# Генерация всех секретов
|
# Генерация всех секретов
|
||||||
generate_secrets() {
|
generate_secrets() {
|
||||||
log_info "Генерация секретов..."
|
log_info "Проверка секретов..."
|
||||||
|
|
||||||
# Signaling server секреты
|
# Проверяем переменные окружения или файл с секретами
|
||||||
SIGNALING_HASHKEY=$(generate_hex 32) # 32 байта = 64 hex символа
|
if [ -f "/tmp/hpb-secrets.env" ]; then
|
||||||
SIGNALING_BLOCKKEY=$(generate_hex 16) # 16 байт = 32 hex символа
|
log_info "Загрузка секретов из /tmp/hpb-secrets.env..."
|
||||||
SIGNALING_INTERNAL_SECRET=$(generate_hex 32) # 64 hex символа
|
source /tmp/hpb-secrets.env
|
||||||
SIGNALING_BACKEND_SECRET=$(generate_hex 32) # 64 hex символа
|
|
||||||
|
# Используем секреты из файла, если они заданы
|
||||||
# TURN секрет (должен совпадать в signaling и turnserver)
|
SIGNALING_HASHKEY=${HPB_HASHKEY:-${SIGNALING_HASHKEY:-$(generate_hex 32)}}
|
||||||
TURN_SECRET=$(generate_hex 32) # 64 hex символа
|
SIGNALING_BLOCKKEY=${HPB_BLOCKKEY:-${SIGNALING_BLOCKKEY:-$(generate_hex 16)}}
|
||||||
TURN_API_KEY=$(generate_base64 16) # ~16 символов base64
|
SIGNALING_INTERNAL_SECRET=${HPB_INTERNAL_SECRET:-${SIGNALING_INTERNAL_SECRET:-$(generate_hex 32)}}
|
||||||
|
SIGNALING_BACKEND_SECRET=${HPB_BACKEND_SECRET:-${SIGNALING_BACKEND_SECRET:-$(generate_hex 32)}}
|
||||||
# Janus admin secret
|
TURN_SECRET=${TURN_SECRET:-$(generate_hex 32)}
|
||||||
JANUS_ADMIN_SECRET=$(generate_base64 16) # ~16 символов
|
TURN_API_KEY=${TURN_API_KEY:-$(generate_base64 16)}
|
||||||
|
JANUS_ADMIN_SECRET=${JANUS_ADMIN_SECRET:-$(generate_base64 16)}
|
||||||
log_info "Секреты сгенерированы"
|
|
||||||
|
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)}
|
||||||
|
|
||||||
|
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
|
# Signaling server.conf
|
||||||
if [[ -f "$SCRIPT_DIR/server.conf.example" ]]; then
|
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" \
|
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_16_24_OR_32_BYTE_HEX_BLOCKKEY|$SIGNALING_BLOCKKEY|g" \
|
||||||
-e "s|YOUR_INTERNAL_CLIENT_SECRET|$SIGNALING_INTERNAL_SECRET|g" \
|
-e "s|YOUR_INTERNAL_CLIENT_SECRET|$SIGNALING_INTERNAL_SECRET|g" \
|
||||||
-e "s|YOUR_NEXTCLOUD_BACKEND_SECRET|$SIGNALING_BACKEND_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_API_KEY|$TURN_API_KEY|g" \
|
||||||
-e "s|YOUR_TURN_SHARED_SECRET|$TURN_SECRET|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"
|
"$SCRIPT_DIR/server.conf.example" > "$INSTALL_DIR/server.conf"
|
||||||
chmod 600 "$INSTALL_DIR/server.conf"
|
chmod 600 "$INSTALL_DIR/server.conf"
|
||||||
chown _signaling:_signaling "$INSTALL_DIR/server.conf"
|
chown _signaling:_signaling "$INSTALL_DIR/server.conf"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user