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
This commit is contained in:
Executable
+38
@@ -0,0 +1,38 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user