2026-05-24 23:21:02 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
|
|
# PROVIDE: clawdie_tailscale_up
|
|
|
|
|
# REQUIRE: LOGIN tailscaled
|
|
|
|
|
# KEYWORD: shutdown
|
|
|
|
|
|
|
|
|
|
. /etc/rc.subr
|
|
|
|
|
|
|
|
|
|
name="clawdie_tailscale_up"
|
|
|
|
|
rcvar="${name}_enable"
|
|
|
|
|
start_cmd="${name}_start"
|
|
|
|
|
stop_cmd=":"
|
|
|
|
|
|
2026-06-21 21:48:14 +02:00
|
|
|
# No required_files: the key may come from provider.env (vault-fetched by
|
|
|
|
|
# join-hive) rather than the legacy keyfile, and onestart still enforces
|
|
|
|
|
# required_files. The start function returns 0 cleanly when neither source
|
|
|
|
|
# carries a key.
|
2026-05-24 23:21:02 +02:00
|
|
|
clawdie_tailscale_up_start() {
|
|
|
|
|
_keyfile="/var/lib/clawdie-iso/tailscale-authkey"
|
2026-06-21 21:11:37 +02:00
|
|
|
_envfile="/usr/local/etc/colibri/provider.env"
|
|
|
|
|
|
|
|
|
|
# Primary: auth key from provider.env (vault-fetched by join-hive).
|
|
|
|
|
# Fallback: legacy key file (ISO-baked or manually staged).
|
|
|
|
|
_authkey=""
|
|
|
|
|
if [ -r "$_envfile" ]; then
|
|
|
|
|
_authkey="$(grep '^TAILSCALE_AUTH_KEY=' "$_envfile" 2>/dev/null | head -1 | cut -d= -f2- | tr -d '\r\n')"
|
|
|
|
|
fi
|
|
|
|
|
if [ -z "${_authkey:-}" ] && [ -s "$_keyfile" ]; then
|
|
|
|
|
_authkey="$(tr -d '\r\n' < "$_keyfile")"
|
|
|
|
|
fi
|
|
|
|
|
[ -n "${_authkey:-}" ] || return 0
|
2026-05-24 23:21:02 +02:00
|
|
|
|
|
|
|
|
command -v tailscale >/dev/null 2>&1 || return 1
|
|
|
|
|
service tailscaled onestatus >/dev/null 2>&1 || return 1
|
|
|
|
|
|
|
|
|
|
if tailscale up --auth-key="${_authkey}" --hostname=clawdie-live --ssh=false; then
|
2026-06-21 21:48:14 +02:00
|
|
|
# Clean up both sources so the one-shot key is consumed. provider.env
|
|
|
|
|
# still holds the BW_* creds, so keep it 0600 after the rewrite.
|
|
|
|
|
if grep -v '^TAILSCALE_AUTH_KEY=' "$_envfile" > "$_envfile.tmp" 2>/dev/null; then
|
|
|
|
|
chmod 0600 "$_envfile.tmp"
|
|
|
|
|
mv "$_envfile.tmp" "$_envfile"
|
|
|
|
|
else
|
|
|
|
|
rm -f "$_envfile.tmp"
|
|
|
|
|
fi
|
2026-05-24 23:21:02 +02:00
|
|
|
rm -f "$_keyfile"
|
|
|
|
|
/usr/sbin/sysrc ${name}_enable=NO >/dev/null 2>&1 || true
|
|
|
|
|
return 0
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
return 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
load_rc_config "$name"
|
|
|
|
|
: "${clawdie_tailscale_up_enable:=NO}"
|
|
|
|
|
run_rc_command "$1"
|