Files
DynastyRevolution-Scripts/modules/netbird-strike
Asainte Bueno-Villanueva 0cbf30c81e
All checks were successful
Update Dispatches / refresh-news (push) Successful in 3s
added netbird module
2026-02-06 08:23:41 -05:00

62 lines
2.4 KiB
Bash

#!/bin/bash
# -----------------------------------------------------------------------
# Dynasty Module: NetBird Strike (Single-Pass Manifest)
# -----------------------------------------------------------------------
BLUE='\033[38;5;45m'; GOLD='\033[38;5;178m'; RED='\033[38;5;196m'; NC='\033[0m'
# 1. Install Check
if ! command -v netbird &> /dev/null; then
echo -e "${BLUE}🛡️ Initializing NetBird Repository...${NC}"
curl -sSL https://pkgs.netbird.io/debian/public.key | sudo gpg --dearmor --yes --output /usr/share/keyrings/netbird-archive-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/netbird-archive-keyring.gpg] https://pkgs.netbird.io/debian stable main' | sudo tee /etc/apt/sources.list.d/netbird.list
sudo apt-get update && sudo apt-get install netbird -y
fi
# 2. Select Instance Type
CHOICE=$(whiptail --title "NetBird Instance Selection" --menu "Choose your destination:" 15 60 2 \
"1" "NetBird Managed Cloud (Default)" \
"2" "Self-Hosted Instance" 3>&1 1>&2 2>&3)
if [ $? != 0 ]; then exit 0; fi
case $CHOICE in
1)
MGMT_URL=""
;;
2)
if whiptail --title "Self-Hosted Choice" --yesno "Are you using the Dynasty Revolution Netbird instance?" 10 60; then
MGMT_URL="https://netbird.dynastyrevolution.com"
else
MGMT_URL=$(whiptail --title "Custom Configuration" --inputbox "Enter your Management URL:" 10 60 3>&1 1>&2 2>&3)
fi
if [ -z "$MGMT_URL" ]; then echo -e "${RED}Error: URL cannot be empty.${NC}"; exit 1; fi
ADMIN_URL="$MGMT_URL"
;;
esac
# 3. Get Setup Key
SETUP_KEY=$(whiptail --title "Authentication" --inputbox "Enter your NetBird Setup Key:" 10 60 3>&1 1>&2 2>&3)
if [ -z "$SETUP_KEY" ]; then
echo -e "${GOLD}🐉 No key provided. Exiting.${NC}"; exit 0
fi
# 4. The Single-Pass Strike
echo -e "${BLUE}🐉 Manifesting Bridge...${NC}"
if [ -z "$MGMT_URL" ]; then
# Standard Cloud connection
sudo netbird up --setup-key "$SETUP_KEY"
else
# Integrated Dynasty/Self-Hosted connection in one command
sudo netbird up --management-url "$MGMT_URL" --admin-url "$ADMIN_URL" --setup-key "$SETUP_KEY"
fi
# 5. Final Status Manifest
if [ $? -eq 0 ]; then
NB_STATUS=$(netbird status)
whiptail --title "NetBird Connection Successful" --msgbox "The device is now manifested in the mesh.\n\n$NB_STATUS" 20 70
else
echo -e "${RED}❌ Strike failed. Verify your Setup Key and URL connectivity.${NC}"
fi