mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-10-24 04:05:03 +00:00
Every interactive prompt takes a var_<app>_<name> override and treats a closed stdin like Enter (`|| true`), so an install keeps going after the console that started it is gone. Values the script cannot do without end with exit 64 and name the variable to set. Validation loops stop asking when nobody can answer instead of spinning on an empty read.
186 lines
6.0 KiB
Bash
186 lines
6.0 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Copyright (c) 2021-2026 community-scripts ORG
|
|
# Author: TechHutTV
|
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
# Source: https://netbird.io/
|
|
|
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
|
color
|
|
verb_ip6
|
|
catch_errors
|
|
setting_up_container
|
|
network_check
|
|
update_os
|
|
|
|
msg_info "Installing NetBird"
|
|
setup_deb822_repo \
|
|
"netbird" \
|
|
"https://pkgs.netbird.io/debian/public.key" \
|
|
"https://pkgs.netbird.io/debian" \
|
|
"stable"
|
|
$STD apt install -y netbird
|
|
msg_ok "Installed NetBird"
|
|
|
|
msg_info "Starting NetBird Service"
|
|
systemctl enable -q --now netbird
|
|
msg_ok "Started NetBird Service"
|
|
|
|
echo ""
|
|
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 ""
|
|
|
|
DEPLOYMENT_TYPE="${var_netbird_deployment:-}"
|
|
[[ -n "$DEPLOYMENT_TYPE" ]] || read -r -p "${TAB3}Select deployment type [1]: " DEPLOYMENT_TYPE || true
|
|
DEPLOYMENT_TYPE="${DEPLOYMENT_TYPE:-1}"
|
|
|
|
NETBIRD_MGMT_URL=""
|
|
case "$DEPLOYMENT_TYPE" in
|
|
1)
|
|
msg_ok "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 ""
|
|
NETBIRD_MGMT_URL="${var_netbird_mgmt_url:-}"
|
|
[[ -n "$NETBIRD_MGMT_URL" ]] || read -r -p "Management URL: " NETBIRD_MGMT_URL || true
|
|
|
|
if [[ -z "$NETBIRD_MGMT_URL" ]]; then
|
|
msg_warn "No management URL provided. Run 'netbird up --management-url <url>' to connect."
|
|
else
|
|
NETBIRD_MGMT_URL="${NETBIRD_MGMT_URL%/}"
|
|
msg_ok "Management URL configured: ${NETBIRD_MGMT_URL}"
|
|
fi
|
|
;;
|
|
*)
|
|
msg_warn "Invalid selection. Using NetBird Managed service."
|
|
;;
|
|
esac
|
|
|
|
echo ""
|
|
echo ""
|
|
echo -e "${BL}NetBird Connection Setup${CL}"
|
|
echo "─────────────────────────────────────────"
|
|
echo "Choose how to connect to your NetBird network:"
|
|
echo ""
|
|
if [[ "$DEPLOYMENT_TYPE" == "1" ]]; then
|
|
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'"
|
|
else
|
|
echo " 1) Setup Key (default) - Use a pre-generated setup key"
|
|
echo " 2) Skip - Configure later with 'netbird up'"
|
|
fi
|
|
echo ""
|
|
|
|
AUTH_METHOD="${var_netbird_auth:-}"
|
|
[[ -n "$AUTH_METHOD" ]] || read -r -p "Select authentication method [1]: " AUTH_METHOD || true
|
|
AUTH_METHOD="${AUTH_METHOD:-1}"
|
|
|
|
if [[ "$DEPLOYMENT_TYPE" == "1" ]]; then
|
|
case "$AUTH_METHOD" in
|
|
1)
|
|
echo ""
|
|
echo "Enter your NetBird setup key from the NetBird dashboard."
|
|
echo ""
|
|
NETBIRD_SETUP_KEY="${var_netbird_setup_key:-}"
|
|
[[ -n "$NETBIRD_SETUP_KEY" ]] || read -r -p "Setup key: " NETBIRD_SETUP_KEY || true
|
|
echo ""
|
|
|
|
if [[ -z "$NETBIRD_SETUP_KEY" ]]; then
|
|
msg_warn "No setup key provided. Run 'netbird up -k <key>' to connect."
|
|
else
|
|
msg_info "Connecting to NetBird with setup key"
|
|
if $STD netbird up -k "$NETBIRD_SETUP_KEY"; then
|
|
msg_ok "Connected to NetBird"
|
|
else
|
|
msg_warn "Connection failed. Run 'netbird up -k <key>' to retry."
|
|
fi
|
|
fi
|
|
;;
|
|
2)
|
|
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"
|
|
netbird login 2>&1 || true
|
|
echo ""
|
|
|
|
msg_info "Connecting to NetBird"
|
|
if $STD netbird up; then
|
|
msg_ok "Connected to NetBird"
|
|
else
|
|
msg_warn "Connection failed. Run 'netbird up' to retry."
|
|
fi
|
|
;;
|
|
3)
|
|
msg_ok "Skipped. Run 'netbird up' to connect."
|
|
;;
|
|
*)
|
|
msg_warn "Invalid selection. Run 'netbird up' to connect."
|
|
;;
|
|
esac
|
|
else
|
|
case "$AUTH_METHOD" in
|
|
1)
|
|
echo ""
|
|
echo "Enter your NetBird setup key from the NetBird dashboard."
|
|
echo ""
|
|
NETBIRD_SETUP_KEY="${var_netbird_setup_key:-}"
|
|
[[ -n "$NETBIRD_SETUP_KEY" ]] || read -r -p "Setup key: " NETBIRD_SETUP_KEY || true
|
|
echo ""
|
|
|
|
if [[ -z "$NETBIRD_SETUP_KEY" ]]; then
|
|
if [[ -z "$NETBIRD_MGMT_URL" ]]; then
|
|
msg_warn "No setup key provided. Run 'netbird up -k <key> --management-url <url>' to connect."
|
|
else
|
|
msg_warn "No setup key provided. Run 'netbird up -k <key> --management-url $NETBIRD_MGMT_URL' to connect."
|
|
fi
|
|
else
|
|
if [[ -z "$NETBIRD_MGMT_URL" ]]; then
|
|
msg_error "Management URL is required for self-hosted deployments. Please configure it first."
|
|
else
|
|
msg_info "Connecting to NetBird with setup key"
|
|
if $STD 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' to retry."
|
|
fi
|
|
fi
|
|
fi
|
|
;;
|
|
2)
|
|
if [[ -z "$NETBIRD_MGMT_URL" ]]; then
|
|
msg_ok "Skipped. Run 'netbird up --management-url <url>' to connect."
|
|
else
|
|
msg_ok "Skipped. Run 'netbird up --management-url $NETBIRD_MGMT_URL' to connect."
|
|
fi
|
|
;;
|
|
*)
|
|
if [[ -z "$NETBIRD_MGMT_URL" ]]; then
|
|
msg_warn "Invalid selection. Run 'netbird up --management-url <url>' to connect."
|
|
else
|
|
msg_warn "Invalid selection. Run 'netbird up --management-url $NETBIRD_MGMT_URL' to connect."
|
|
fi
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
motd_ssh
|
|
customize
|
|
cleanup_lxc
|