Files
kit-busrouter/kit-connect/scripts/postinst
T
kitadmin de871acce9 fix: bundle Tailscale ARM binaries + fix execute bits in SPK
- Bundled tailscale 1.98.9 + tailscaled ARMv7 (ELF 32-bit, statically linked)
- Fixed connect-daemon.sh 644 → 755 (was preventing daemon from starting)
- Postinst now chmod +x all bin/*.sh and bundled binaries
- Postinst copies tailscale/tailscaled to /usr/local/bin if not present
- Hub firewall: opened ports 8080 (API) and 2230-2299 (SSH tunnels)
- Hub systemd service restarted after firewall fix

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 03:19:04 +00:00

50 lines
2.0 KiB
Bash
Executable File

#!/bin/sh
# kit-connect postinst — run setup wizard, register with hub, set up config.
# Idempotent — safe to run on upgrades too.
PKG_DIR="/var/packages/kit-connect/target"
LOG_TAG="kit-connect"
log() { logger -t "$LOG_TAG" -p local0.warn "$*"; }
mkdir -p /etc/kit-connect /etc/busrouter "$PKG_DIR/var"
# ── Fix permissions (synopkg doesn't preserve +x from tar) ──────
chmod +x "$PKG_DIR/bin/"*.sh 2>/dev/null || true
chmod +x "$PKG_DIR/bin/tailscale" "$PKG_DIR/bin/tailscaled" 2>/dev/null || true
chmod +x "$PKG_DIR/wizard.sh" 2>/dev/null || true
chmod 600 "$PKG_DIR/bin/connect_id_ed25519" 2>/dev/null || true
# ── Install bundled Tailscale binaries if system doesn't have them ──
if [ ! -f /usr/local/bin/tailscale ] && [ -f "$PKG_DIR/bin/tailscale" ]; then
log "Installing bundled Tailscale binaries..."
cp "$PKG_DIR/bin/tailscale" /usr/local/bin/tailscale
cp "$PKG_DIR/bin/tailscaled" /usr/local/bin/tailscaled
chmod +x /usr/local/bin/tailscale /usr/local/bin/tailscaled
log "Tailscale binaries installed to /usr/local/bin"
fi
# Run the Keylink IT setup wizard (non-interactive)
# This detects device ID, writes config, registers with hub, starts Tailscale.
if [ -x "$PKG_DIR/wizard.sh" ]; then
log "Running Keylink IT fleet setup wizard..."
"$PKG_DIR/wizard.sh" --auto 2>&1 | while read -r line; do log "$line"; done
else
# Fallback: minimal config
DEVICE_ID=$(cat /etc/busrouter/device-id 2>/dev/null || hostname 2>/dev/null || echo "unknown")
echo "$DEVICE_ID" > /etc/busrouter/device-id
CONF="/etc/kit-connect/connect.conf"
if [ ! -f "$CONF" ]; then
cp "$PKG_DIR/conf/connect.conf" "$CONF" 2>/dev/null || touch "$CONF"
fi
sed -i "s/^DEVICE_ID=.*/DEVICE_ID=${DEVICE_ID}/" "$CONF" 2>/dev/null
sed -i "s/^TAILSCALE_HOSTNAME=.*/TAILSCALE_HOSTNAME=${DEVICE_ID}/" "$CONF" 2>/dev/null
# Try hub registration
curl -s --connect-timeout 10 "http://162.243.83.36:8080/api/register/${DEVICE_ID}" 2>/dev/null || true
fi
log "postinst complete — device_id=$(cat /etc/busrouter/device-id 2>/dev/null || echo unknown)"
exit 0