Simplify NetBird scripts for proper container setup
- Use ${var:-default} pattern for all variables to enable advanced mode
- Remove interactive prompts that blocked automated installs
- Use cleanup_lxc instead of manual apt cleanup
- Users configure NetBird with 'netbird up' after container creation
This commit is contained in:
parent
a810fa2718
commit
7f5f7f4c1f
@ -7,13 +7,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Source: https://netbird.io/
|
# Source: https://netbird.io/
|
||||||
|
|
||||||
APP="NetBird"
|
APP="NetBird"
|
||||||
var_tags="network;vpn"
|
var_tags="${var_tags:-network;vpn}"
|
||||||
var_cpu="1"
|
var_cpu="${var_cpu:-1}"
|
||||||
var_ram="512"
|
var_ram="${var_ram:-512}"
|
||||||
var_disk="4"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="debian"
|
var_os="${var_os:-debian}"
|
||||||
var_version="13"
|
var_version="${var_version:-13}"
|
||||||
var_unprivileged="1"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
var_tun="${var_tun:-yes}"
|
var_tun="${var_tun:-yes}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://netbird.io/
|
# Source: https://netbird.io/
|
||||||
|
|
||||||
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||||
color
|
color
|
||||||
verb_ip6
|
verb_ip6
|
||||||
catch_errors
|
catch_errors
|
||||||
@ -13,180 +13,28 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
cat <<'EOF'
|
|
||||||
|
|
||||||
_ _ _ ____ _ _
|
|
||||||
| \ | | ___| |_| __ )(_)_ __ __| |
|
|
||||||
| \| |/ _ \ __| _ \| | '__/ _` |
|
|
||||||
| |\ | __/ |_| |_) | | | | (_| |
|
|
||||||
|_| \_|\___|\__|____/|_|_| \__,_|
|
|
||||||
|
|
||||||
EOF
|
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt install -y \
|
$STD apt-get install -y \
|
||||||
curl \
|
curl \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
gnupg
|
gnupg
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Setting up NetBird Repository"
|
msg_info "Setting up NetBird Repository"
|
||||||
curl -sSL https://pkgs.netbird.io/debian/public.key \
|
curl -sSL https://pkgs.netbird.io/debian/public.key | gpg --dearmor -o /usr/share/keyrings/netbird-archive-keyring.gpg
|
||||||
| gpg --dearmor -o /usr/share/keyrings/netbird-archive-keyring.gpg
|
|
||||||
chmod 0644 /usr/share/keyrings/netbird-archive-keyring.gpg
|
chmod 0644 /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' \
|
echo 'deb [signed-by=/usr/share/keyrings/netbird-archive-keyring.gpg] https://pkgs.netbird.io/debian stable main' | tee /etc/apt/sources.list.d/netbird.list >/dev/null
|
||||||
| tee /etc/apt/sources.list.d/netbird.list > /dev/null
|
$STD apt-get update
|
||||||
$STD apt update
|
|
||||||
msg_ok "Set up NetBird Repository"
|
msg_ok "Set up NetBird Repository"
|
||||||
|
|
||||||
msg_info "Installing NetBird"
|
msg_info "Installing NetBird"
|
||||||
$STD apt install -y netbird
|
$STD apt-get install -y netbird
|
||||||
msg_ok "Installed NetBird"
|
msg_ok "Installed NetBird"
|
||||||
|
|
||||||
msg_info "Enabling NetBird Service"
|
msg_info "Enabling NetBird Service"
|
||||||
$STD systemctl enable --now netbird
|
$STD systemctl enable --now netbird
|
||||||
msg_ok "Enabled NetBird Service"
|
msg_ok "Enabled NetBird Service"
|
||||||
|
|
||||||
# NetBird Deployment Type Selection
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo -e "${BL}NetBird Deployment Type${CL}"
|
|
||||||
echo "─────────────────────────────────────────"
|
|
||||||
echo "Are you using NetBird Managed or Self-Hosted?"
|
|
||||||
echo ""
|
|
||||||
echo " 1) NetBird Managed (default) - Use NetBird's managed service"
|
|
||||||
echo " 2) Self-Hosted - Use your own NetBird management server"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
read -rp "Select deployment type [1]: " DEPLOYMENT_TYPE
|
|
||||||
DEPLOYMENT_TYPE="${DEPLOYMENT_TYPE:-1}"
|
|
||||||
|
|
||||||
NETBIRD_MGMT_URL=""
|
|
||||||
case "$DEPLOYMENT_TYPE" in
|
|
||||||
1)
|
|
||||||
msg_info "Using NetBird Managed service"
|
|
||||||
;;
|
|
||||||
2)
|
|
||||||
echo ""
|
|
||||||
echo -e "${BL}Self-Hosted Configuration${CL}"
|
|
||||||
echo "─────────────────────────────────────────"
|
|
||||||
echo "Enter your NetBird management server URL."
|
|
||||||
echo "Example: https://management.example.com"
|
|
||||||
echo ""
|
|
||||||
read -rp "Management URL: " NETBIRD_MGMT_URL
|
|
||||||
|
|
||||||
if [[ -z "$NETBIRD_MGMT_URL" ]]; then
|
|
||||||
msg_warn "No management URL provided. Run 'netbird up --management-url <url>' within the container to connect."
|
|
||||||
else
|
|
||||||
# Ensure URL doesn't end with trailing slash
|
|
||||||
NETBIRD_MGMT_URL="${NETBIRD_MGMT_URL%/}"
|
|
||||||
msg_info "Management URL configured: ${GN}${NETBIRD_MGMT_URL}${CL}"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
msg_warn "Invalid selection. Using NetBird Managed service."
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# NetBird Connection Setup
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo -e "${BL}NetBird Connection Setup${CL}"
|
|
||||||
echo "─────────────────────────────────────────"
|
|
||||||
echo "Choose how to connect to your NetBird network:"
|
|
||||||
echo ""
|
|
||||||
echo " 1) Setup Key (default) - Use a pre-generated setup key"
|
|
||||||
echo " 2) SSO Login - Authenticate via browser with your identity provider"
|
|
||||||
echo " 3) Skip - Configure later with 'netbird up'"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
read -rp "Select authentication method [1]: " AUTH_METHOD
|
|
||||||
AUTH_METHOD="${AUTH_METHOD:-1}"
|
|
||||||
|
|
||||||
case "$AUTH_METHOD" in
|
|
||||||
1)
|
|
||||||
# Setup Key authentication
|
|
||||||
echo ""
|
|
||||||
echo "Enter your NetBird setup key from the NetBird dashboard."
|
|
||||||
echo ""
|
|
||||||
read -rp "Setup key: " NETBIRD_SETUP_KEY
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
if [[ -z "$NETBIRD_SETUP_KEY" ]]; then
|
|
||||||
if [[ -n "$NETBIRD_MGMT_URL" ]]; then
|
|
||||||
msg_warn "No setup key provided. Run 'netbird up -k <key> --management-url $NETBIRD_MGMT_URL' within the container to connect."
|
|
||||||
else
|
|
||||||
msg_warn "No setup key provided. Run 'netbird up -k <key>' within the container to connect."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo -e "Setup key: ${GN}${NETBIRD_SETUP_KEY}${CL}"
|
|
||||||
read -rp "Press Enter to continue or Ctrl+C to cancel..."
|
|
||||||
|
|
||||||
msg_info "Connecting to NetBird with setup key"
|
|
||||||
if [[ -n "$NETBIRD_MGMT_URL" ]]; then
|
|
||||||
if netbird up -k "$NETBIRD_SETUP_KEY" --management-url "$NETBIRD_MGMT_URL"; then
|
|
||||||
msg_ok "Connected to NetBird"
|
|
||||||
else
|
|
||||||
msg_warn "Connection failed. Run 'netbird up -k <key> --management-url $NETBIRD_MGMT_URL' within the container to retry."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if netbird up -k "$NETBIRD_SETUP_KEY"; then
|
|
||||||
msg_ok "Connected to NetBird"
|
|
||||||
else
|
|
||||||
msg_warn "Connection failed. Run 'netbird up -k <key>' within the container to retry."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
2)
|
|
||||||
# SSO authentication
|
|
||||||
echo ""
|
|
||||||
echo -e "${BL}SSO Authentication${CL}"
|
|
||||||
echo "─────────────────────────────────────────"
|
|
||||||
echo "A login URL will appear below."
|
|
||||||
echo "Copy the URL and open it in your browser to authenticate."
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
msg_info "Starting SSO login"
|
|
||||||
if [[ -n "$NETBIRD_MGMT_URL" ]]; then
|
|
||||||
netbird login --management-url "$NETBIRD_MGMT_URL" 2>&1 || true
|
|
||||||
else
|
|
||||||
netbird login 2>&1 || true
|
|
||||||
fi
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
msg_info "Connecting to NetBird"
|
|
||||||
if [[ -n "$NETBIRD_MGMT_URL" ]]; then
|
|
||||||
if netbird up --management-url "$NETBIRD_MGMT_URL"; then
|
|
||||||
msg_ok "Connected to NetBird"
|
|
||||||
else
|
|
||||||
msg_warn "Connection failed. Run 'netbird up --management-url $NETBIRD_MGMT_URL' within the container to retry."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if netbird up; then
|
|
||||||
msg_ok "Connected to NetBird"
|
|
||||||
else
|
|
||||||
msg_warn "Connection failed. Run 'netbird up' within the container to retry."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
3)
|
|
||||||
msg_info "Skipping NetBird connection"
|
|
||||||
if [[ -n "$NETBIRD_MGMT_URL" ]]; then
|
|
||||||
msg_ok "Run 'netbird up --management-url $NETBIRD_MGMT_URL' within the container to connect."
|
|
||||||
else
|
|
||||||
msg_ok "Run 'netbird up' within the container to connect."
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
msg_warn "Invalid selection. Run 'netbird up' within the container to connect."
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
|
cleanup_lxc
|
||||||
msg_info "Cleaning up"
|
|
||||||
$STD apt -y autoremove
|
|
||||||
$STD apt -y autoclean
|
|
||||||
msg_ok "Cleaned"
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user