secubox-openwrt/package/secubox/secubox-app-talk-hpb/files/etc/init.d/talk-hpb
CyberMind-FR d92b3360ea feat(repo): Add unified repo-deploy.sh and multi-arch support
- Add repo-deploy.sh script for staging and deploying packages
- Replicate _all.ipk packages to all 6 architectures automatically
- Add "Refresh Indexes" button to LuCI dashboard for local deployments
- Add RPCD refresh method to regenerate Packages indexes on-device
- Support architectures: aarch64_cortex-a72, aarch64_cortex-a53,
  aarch64_generic, x86_64, mips_24kc, mipsel_24kc

Usage:
  ./secubox-tools/repo-deploy.sh stage --clean
  ./secubox-tools/repo-deploy.sh deploy root@192.168.255.1

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-19 07:48:59 +01:00

101 lines
3.1 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
START=99
STOP=10
USE_PROCD=1
CONTAINER_NAME="nextcloud-talk-hpb"
IMAGE="ghcr.io/nextcloud-releases/aio-talk:latest"
get_config() {
local key="$1"
local section="$2"
local default="$3"
uci -q get "talk-hpb.${section}.${key}" || echo "$default"
}
start_service() {
local enabled=$(get_config enabled main 0)
[ "$enabled" != "1" ] && return 0
local nc_domain=$(get_config nc_domain server "")
local signaling_domain=$(get_config signaling_domain server "")
local signaling_port=$(get_config signaling_port server 8081)
local talk_port=$(get_config talk_port server 3478)
local turn_secret=$(get_config turn_secret secrets "")
local signaling_secret=$(get_config signaling_secret secrets "")
local internal_secret=$(get_config internal_secret secrets "")
local turn_enabled=$(get_config enabled turn 1)
local turn_udp=$(get_config udp turn 1)
local turn_tcp=$(get_config tcp turn 1)
local container=$(get_config container_name main "$CONTAINER_NAME")
local image=$(get_config image main "$IMAGE")
# Validate required settings
if [ -z "$nc_domain" ]; then
logger -t talk-hpb "ERROR: nc_domain not configured"
return 1
fi
if [ -z "$turn_secret" ] || [ -z "$signaling_secret" ] || [ -z "$internal_secret" ]; then
logger -t talk-hpb "ERROR: Secrets not configured. Run: talk-hpbctl generate-secrets"
return 1
fi
# Stop existing container
docker stop "$container" 2>/dev/null
docker rm "$container" 2>/dev/null
# Build docker run command
local docker_cmd="docker run --name=$container --restart=always --detach"
docker_cmd="$docker_cmd -e NC_DOMAIN=$nc_domain"
docker_cmd="$docker_cmd -e TALK_PORT=$talk_port"
docker_cmd="$docker_cmd -e TURN_SECRET=$turn_secret"
docker_cmd="$docker_cmd -e SIGNALING_SECRET=$signaling_secret"
docker_cmd="$docker_cmd -e INTERNAL_SECRET=$internal_secret"
# Signaling port
docker_cmd="$docker_cmd -p ${signaling_port}:8081"
# TURN ports if enabled
if [ "$turn_enabled" = "1" ]; then
[ -n "$signaling_domain" ] && docker_cmd="$docker_cmd -e TALK_HOST=$signaling_domain"
[ "$turn_tcp" = "1" ] && docker_cmd="$docker_cmd -p ${talk_port}:3478/tcp"
[ "$turn_udp" = "1" ] && docker_cmd="$docker_cmd -p ${talk_port}:3478/udp"
fi
docker_cmd="$docker_cmd $image"
logger -t talk-hpb "Starting Nextcloud Talk HPB container..."
eval $docker_cmd
if [ $? -eq 0 ]; then
logger -t talk-hpb "Container started successfully"
else
logger -t talk-hpb "ERROR: Failed to start container"
return 1
fi
}
stop_service() {
local container=$(get_config container_name main "$CONTAINER_NAME")
logger -t talk-hpb "Stopping container..."
docker stop "$container" 2>/dev/null
docker rm "$container" 2>/dev/null
logger -t talk-hpb "Container stopped"
}
status_service() {
local container=$(get_config container_name main "$CONTAINER_NAME")
docker inspect "$container" >/dev/null 2>&1
}
reload_service() {
stop_service
start_service
}