wallpanell/wall_panel/run.sh
2026-03-25 15:49:33 +03:00

49 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
set -eu
DOCROOT="${WALL_PANEL_DOCROOT:-/app}"
PORT="${WALL_PANEL_PORT:-8099}"
CONFIG_PATH="${WALL_PANEL_CONFIG_PATH:-/config/wall_panel/wall_panel_config.json}"
STORAGE_DIR="${WALL_PANEL_STORAGE_DIR:-/data/wall_panel}"
mkdir -p "$(dirname "$CONFIG_PATH")" "$STORAGE_DIR"
if [ ! -f "$CONFIG_PATH" ]; then
cp "${DOCROOT}/config/config.json" "$CONFIG_PATH"
fi
export WALL_PANEL_CONFIG_PATH="$CONFIG_PATH"
export WALL_PANEL_STORAGE_DIR="$STORAGE_DIR"
export WALL_PANEL_RUNTIME_MODE="addon"
log() {
echo "[wall_panel] $*"
}
log "starting add-on on port ${PORT}"
log "config path: ${CONFIG_PATH}"
log "storage dir: ${STORAGE_DIR}"
(
i=0
while [ "$i" -lt 120 ]; do
log "registering ingress attempt $((i + 1))/120"
output="$(php -r 'require "/app/lib/bootstrap.php"; $config = app_load_config(); exit(app_register_ingress_url($config) ? 0 : 1);' 2>&1)"
status=$?
if [ "$status" -eq 0 ]; then
log "ingress registered"
exit 0
fi
if [ -n "$output" ]; then
printf '%s\n' "$output" | while IFS= read -r line; do
[ -n "$line" ] && log "$line"
done
fi
i=$((i + 1))
sleep 2
done
log "ingress registration failed after retries"
) || true &
exec php -S "0.0.0.0:${PORT}" -t "$DOCROOT"