mirror of
https://github.com/kunkundi/crossdesk-server.git
synced 2026-10-25 17:21:59 +08:00
[fix] validate Docker runtime configuration
This commit is contained in:
1 parent
51e2736718
commit
99018aa60c
1 file changed
+23
-3
+23
-3
@@ -9,6 +9,10 @@ PKEY_FILE=/opt/turnserver/turn_server_pkey.pem
|
||||
# environment variables for crossdesk-server
|
||||
CROSSDESK_SERVER_PORT=${CROSSDESK_SERVER_PORT:-9090}
|
||||
|
||||
is_uint() {
|
||||
[[ "$1" =~ ^[0-9]+$ ]]
|
||||
}
|
||||
|
||||
# check environment variables
|
||||
if [ -z "$EXTERNAL_IP" ] || [ -z "$INTERNAL_IP" ]; then
|
||||
echo "Error: EXTERNAL_IP and INTERNAL_IP must be set."
|
||||
@@ -28,15 +32,31 @@ if [ -z "$MIN_PORT" ] || [ -z "$MAX_PORT" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for port_name in CROSSDESK_SERVER_PORT COTURN_PORT MIN_PORT MAX_PORT; do
|
||||
port_value="${!port_name}"
|
||||
if ! is_uint "$port_value" || [ "$port_value" -lt 1 ] || [ "$port_value" -gt 65535 ]; then
|
||||
echo "Error: $port_name must be an integer between 1 and 65535."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$MIN_PORT" -gt "$MAX_PORT" ]; then
|
||||
echo "Error: MIN_PORT must be less than or equal to MAX_PORT."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# check and generate certificates if needed
|
||||
CERT_DIR="/var/lib/crossdesk/certs"
|
||||
DB_DIR="/var/lib/crossdesk/db"
|
||||
LOG_DIR="/var/log/crossdesk"
|
||||
CERT_KEY="$CERT_DIR/api.crossdesk.cn.key"
|
||||
CERT_BUNDLE="$CERT_DIR/api.crossdesk.cn_bundle.crt"
|
||||
CERT_ROOT="$CERT_DIR/api.crossdesk.cn_root.crt"
|
||||
|
||||
mkdir -p "$CERT_DIR" "$DB_DIR" "$LOG_DIR"
|
||||
|
||||
if [ ! -f "$CERT_KEY" ] || [ ! -f "$CERT_BUNDLE" ]; then
|
||||
echo "Certificate files not found, generating certificates..."
|
||||
mkdir -p "$CERT_DIR"
|
||||
|
||||
# Run generate_certs.sh with EXTERNAL_IP and output directory
|
||||
bash /docker/generate_certs.sh "$EXTERNAL_IP" "$CERT_DIR"
|
||||
@@ -76,7 +96,7 @@ echo "generated coturn config at $CONF_FILE"
|
||||
echo "using certificate: $CERT_FILE"
|
||||
|
||||
# start coturn in the background
|
||||
exec turnserver -c "$CONF_FILE" &
|
||||
turnserver -c "$CONF_FILE" &
|
||||
|
||||
# start crossdesk-server as main foreground process
|
||||
echo "Starting crossdesk-server..."
|
||||
@@ -84,4 +104,4 @@ echo "Certificate directory: $CERT_DIR"
|
||||
echo "Certificate files:"
|
||||
ls -la "$CERT_DIR" || echo "Warning: Cannot list certificate directory"
|
||||
|
||||
exec ./crossdesk-server/crossdesk_server ${CROSSDESK_SERVER_PORT}
|
||||
exec ./crossdesk-server/crossdesk_server ${CROSSDESK_SERVER_PORT}
|
||||
Reference in new issue
Block a user