4bb64a8ca3
- 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
39 lines
1.1 KiB
Bash
Executable File
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
|