Files
numa/install.sh
Razvan Dimescu 792f745587 remove docs from repo, add codesign to install.sh
Docs contain internal planning (token economics, growth plan) that
should not be public. Keep locally via .gitignore.
Added macOS ad-hoc codesign step to install.sh.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 04:13:21 +02:00

78 lines
2.0 KiB
Bash
Executable File

#!/bin/sh
# Numa installer — detects OS/arch and downloads the latest release
# Usage: curl -sSL https://raw.githubusercontent.com/razvandimescu/numa/main/install.sh | sh
set -e
REPO="razvandimescu/numa"
INSTALL_DIR="/usr/local/bin"
# Detect OS
OS="$(uname -s)"
case "$OS" in
Darwin) OS_NAME="macos" ;;
Linux) OS_NAME="linux" ;;
*) echo "Unsupported OS: $OS"; exit 1 ;;
esac
# Detect architecture
ARCH="$(uname -m)"
case "$ARCH" in
x86_64|amd64) ARCH_NAME="x86_64" ;;
arm64|aarch64) ARCH_NAME="aarch64" ;;
*) echo "Unsupported architecture: $ARCH"; exit 1 ;;
esac
ASSET="numa-${OS_NAME}-${ARCH_NAME}.tar.gz"
echo ""
echo " \033[1;38;2;192;98;58mNuma\033[0m installer"
echo ""
echo " OS: $OS_NAME"
echo " Arch: $ARCH_NAME"
echo ""
# Get latest release tag
echo " Fetching latest release..."
TAG=$(curl -sSL "https://api.github.com/repos/${REPO}/releases/latest" | grep '"tag_name"' | head -1 | sed 's/.*"tag_name": *"\([^"]*\)".*/\1/')
if [ -z "$TAG" ]; then
echo " Error: could not find latest release."
echo " Check https://github.com/${REPO}/releases"
exit 1
fi
URL="https://github.com/${REPO}/releases/download/${TAG}/${ASSET}"
echo " Downloading ${TAG}..."
# Download and extract
TMP=$(mktemp -d)
curl -sSL "$URL" -o "$TMP/$ASSET"
tar xzf "$TMP/$ASSET" -C "$TMP"
# Install
if [ -w "$INSTALL_DIR" ]; then
mv "$TMP/numa" "$INSTALL_DIR/numa"
else
echo " Installing to $INSTALL_DIR (requires sudo)..."
sudo mv "$TMP/numa" "$INSTALL_DIR/numa"
fi
chmod +x "$INSTALL_DIR/numa"
# macOS: ad-hoc codesign (required or the binary gets killed)
if [ "$OS_NAME" = "macos" ]; then
codesign -f -s - "$INSTALL_DIR/numa" 2>/dev/null || true
fi
rm -rf "$TMP"
echo ""
echo " \033[38;2;107;124;78mInstalled:\033[0m $INSTALL_DIR/numa ($TAG)"
echo ""
echo " Get started:"
echo " sudo numa # start the DNS server"
echo " sudo numa install # set as system DNS"
echo " sudo numa service start # run as persistent service"
echo " open http://localhost:5380 # dashboard"
echo ""