Netmaker add-on: pull prebuilt image from Gitea registry

Home Assistant add-on that joins the instance to a Netmaker network via
netclient. Distributed as a repository add-on using a prebuilt arm64 image
(gitea.savant.io/homeassistant/netmaker) to avoid local buildx.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Savant Coder
2026-07-21 14:05:20 -04:00
commit 2803cf6792
27 changed files with 638 additions and 0 deletions

View File

@ -0,0 +1,39 @@
#!/command/with-contenv bashio
# shellcheck shell=bash
export LOG_FD
# ==============================================================================
# Home Assistant Community App: Netmaker
# Runs the netclient daemon
# ==============================================================================
declare log_level
declare verbosity
bashio::log.info 'Starting Netmaker netclient...'
# Netclient stores its host identity, keys and node/server config under the
# hard-coded path /etc/netclient/. Persist it across restarts by pointing that
# path at the add-on's /data volume so the node is not re-registered each boot.
mkdir -p /data/netclient
if [ ! -L /etc/netclient ]; then
# Migrate anything an earlier image may have written to the real directory
if [ -d /etc/netclient ] && [ ! -d /data/netclient/.migrated ]; then
cp -a /etc/netclient/. /data/netclient/ 2>/dev/null || true
rm -rf /etc/netclient
fi
ln -sf /data/netclient /etc/netclient
fi
# Map the app's log_level to netclient's numeric verbosity (0..4)
log_level=$(bashio::config 'log_level')
case "${log_level}" in
trace) verbosity=4 ;;
debug) verbosity=3 ;;
info|notice) verbosity=2 ;;
warning) verbosity=1 ;;
error|fatal) verbosity=0 ;;
*) verbosity=2 ;;
esac
# Run the daemon in the foreground so s6 supervises it directly.
# functions.Daemon() blocks and handles SIGTERM (clean shutdown) / SIGHUP (reload).
exec /opt/netclient daemon -v "${verbosity}"