45 lines
1.6 KiB
Bash
45 lines
1.6 KiB
Bash
#!/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"
|