Repository files, collaboration, releases and project activity.
ARCHFORGE HISTORY
Blame · recover-admin.sh
Branch main · the Commit author is not necessarily a verified ArchForge account.
f1897d33c0archadmin2026-10-11
1 #!/usr/bin/env bashf1897d33c0archadmin2026-10-11
2 # Recover a partially-completed ArchForge External Status installation.f1897d33c0archadmin2026-10-11
3 # Safe on a running server: does not touch status.env, SQLite data, or systemd.f1897d33c0archadmin2026-10-11
4 set -Eeuo pipefailf1897d33c0archadmin2026-10-11
5 umask 077f1897d33c0archadmin2026-10-11
6 [[ $EUID -eq 0 ]] || { echo '[ERROR] Run sudo ./recover-admin.sh (or as root).' >&2; exit 1; }f1897d33c0archadmin2026-10-11
7 SRC=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)f1897d33c0archadmin2026-10-11
8 TARGET=/opt/archforge-status/app/src/cli.jsf1897d33c0archadmin2026-10-11
9 CFG=/etc/archforge-status/status.envf1897d33c0archadmin2026-10-11
10 [[ -f "$SRC/src/cli.js" ]] || { echo '[ERROR] Cannot find src/cli.js in project directory.' >&2;exit 1; }f1897d33c0archadmin2026-10-11
11 [[ -f "$TARGET" && -f "$CFG" ]] || { echo '[ERROR] External Status is not installed yet. Use sudo ./install.sh instead.' >&2;exit 1; }f1897d33c0archadmin2026-10-11
12 id archforge-status >/dev/null 2>&1 || { echo '[ERROR] Linux service user archforge-status not found.' >&2;exit 1; }f1897d33c0archadmin2026-10-11
13 /usr/bin/node --check "$SRC/src/cli.js"f1897d33c0archadmin2026-10-11
14 # Only the broken CLI file is updated. Running Node.js processes are unchanged.f1897d33c0archadmin2026-10-11
15 install -o root -g root -m 644 "$SRC/src/cli.js" "$TARGET"f1897d33c0archadmin2026-10-11
16 cd /opt/archforge-status/appf1897d33c0archadmin2026-10-11
17 printf '%s\n' '[*] Admin recovery: prompts for password will accept typing without displaying characters.'f1897d33c0archadmin2026-10-11
18 runuser -u archforge-status -- env STATUS_ENV_FILE="$CFG" NODE_ENV=production /usr/bin/node src/cli.js create-adminf1897d33c0archadmin2026-10-11
19 printf '%s\n' '[OK] Admin setup finished (or an admin already existed).'f1897d33c0archadmin2026-10-11
20 echo 'Login: https://status.archforge.nl/admin/login'