#!/usr/bin/env bash set -euo pipefail NODE_JSON="/etc/flowercore/signage-node.json" NODE_ID=$(jq -r '.nodeId' "$NODE_JSON") SIGNAGE_URL="${FC_SIGNAGE_URL:-https://signage.iamworkin.lan}" CERT_DIR="/etc/fc-signage-player" CERT_THUMB=$(openssl pkcs12 -in "$CERT_DIR/client.p12" -passin file:"$CERT_DIR/client.p12.pass" -nodes -nokeys 2>/dev/null \ | openssl x509 -fingerprint -sha256 -noout \ | sed 's/.*=//' \ | tr -d ':') PLAYER_URL="${SIGNAGE_URL}/player/${NODE_ID}/embed?token=${CERT_THUMB}" HTTP_STATUS=$(curl -sk -o /dev/null -w "%{http_code}" --max-time 5 \ --cert-type P12 --cert "$CERT_DIR/client.p12:$(cat "$CERT_DIR/client.p12.pass")" \ "$PLAYER_URL" || echo "000") mkdir -p /var/log/fc-signage-player if [[ "$HTTP_STATUS" != "200" && "$HTTP_STATUS" != "301" && "$HTTP_STATUS" != "302" ]]; then echo "[$(date -Is)] /embed returned $HTTP_STATUS; falling back to /player/${NODE_ID}" \ >> /var/log/fc-signage-player/url-divergence.log PLAYER_URL="${SIGNAGE_URL}/player/${NODE_ID}?token=${CERT_THUMB}" fi exec chromium-browser \ --kiosk \ --noerrdialogs \ --disable-infobars \ --disable-translate \ --disable-features=TranslateUI,InfiniteSessionRestore \ --autoplay-policy=no-user-gesture-required \ --password-store=basic \ --user-data-dir=/var/lib/fc-signage-player/profile \ --disk-cache-dir=/var/lib/fc-signage-player/cache \ --disk-cache-size=104857600 \ --no-first-run \ --no-default-browser-check \ --check-for-update-interval=2592000 \ --enable-features=OverlayScrollbar \ --start-fullscreen \ --window-position=0,0 \ --window-size=1920,1080 \ "$PLAYER_URL"