Files
dvdrw 4bb64a8ca3 init: initial commit
- ticker / QR ad overlay / break slide graphics (1920×1080) with all
  geometry derived from one shared module (src/shared/obs-geometry.mjs)
- OBS scene-collection generator (scripts/generate-obs-scenes.mjs) and a
  read-only in-dashboard setup verifier, both driven by the same module
- en/sr dashboard i18n selected via bundle config; configschema.json with
  neutral first-run defaults seeded from optional branding config
- install.sh / systemd user service / update.sh for venue deployment
- reference OBS scene collection + profile from a real venue as fixtures
2026-07-15 19:30:32 +02:00

39 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# Install and enable the systemd user service for a NodeCG install created
# by install.sh.
#
# Usage: ./install-service.sh [install-dir] (default: ~/venue-gfx)
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
UNIT_NAME=nodecg-venue-gfx.service
TEMPLATE="$SCRIPT_DIR/../deploy/$UNIT_NAME"
install_dir="${1:-$HOME/venue-gfx}"
install_dir="$(cd "${install_dir/#\~/$HOME}" && pwd)"
[[ -f $install_dir/index.js ]] || {
echo "$install_dir does not look like a NodeCG install (no index.js)" >&2
exit 1
}
mkdir -p "$HOME/.config/systemd/user"
sed "s|__INSTALL_DIR__|$install_dir|" "$TEMPLATE" \
> "$HOME/.config/systemd/user/$UNIT_NAME"
systemctl --user daemon-reload
systemctl --user enable --now "$UNIT_NAME"
systemctl --user status "$UNIT_NAME" --no-pager || true
cat <<EOF
Service installed and started. Useful commands:
systemctl --user status $UNIT_NAME
systemctl --user restart $UNIT_NAME
journalctl --user -u $UNIT_NAME -f
⚠ To start on boot without anyone logging in, lingering must be enabled once:
loginctl enable-linger $USER
EOF