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

42 lines
1.1 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"
if php -r 'require "/app/lib/bootstrap.php"; $config = app_load_config(); exit(app_register_ingress_url($config) ? 0 : 1);' >/dev/null 2>&1; then
log "ingress registered"
exit 0
fi
i=$((i + 1))
sleep 2
done
log "ingress registration failed after retries"
) || true &
exec php -S "0.0.0.0:${PORT}" -t "$DOCROOT"