Add NetBird scripts with correct ProxmoxVED source URL
Fix the build.func source URL to use ProxmoxVED instead of ProxmoxVE, allowing the scripts to actually run in this repository.
This commit is contained in:
parent
b0b7cb790e
commit
cadb58e7b3
48
ct/netbird.sh
Normal file
48
ct/netbird.sh
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: TechHutTV
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://netbird.io/
|
||||||
|
|
||||||
|
APP="NetBird"
|
||||||
|
var_tags="network;vpn"
|
||||||
|
var_cpu="1"
|
||||||
|
var_ram="512"
|
||||||
|
var_disk="4"
|
||||||
|
var_os="debian"
|
||||||
|
var_version="13"
|
||||||
|
var_unprivileged="1"
|
||||||
|
var_tun="${var_tun:-yes}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -f /etc/netbird/config.json ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Updating ${APP}"
|
||||||
|
$STD apt update
|
||||||
|
$STD apt -y upgrade
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access NetBird by entering the container and running:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}netbird up${CL}"
|
||||||
50
frontend/public/json/netbird.json
Normal file
50
frontend/public/json/netbird.json
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
{
|
||||||
|
"name": "NetBird",
|
||||||
|
"slug": "netbird",
|
||||||
|
"categories": [4],
|
||||||
|
"date_created": "2025-12-02",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": null,
|
||||||
|
"documentation": "https://docs.netbird.io/",
|
||||||
|
"website": "https://netbird.io/",
|
||||||
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@master/webp/netbird.webp",
|
||||||
|
"config_path": "/etc/netbird/config.json",
|
||||||
|
"description": "NetBird is an open-source VPN management platform that creates secure peer-to-peer networks using WireGuard. It enables secure connectivity between devices anywhere in the world without complex firewall configurations or port forwarding. NetBird offers features like zero-configuration networking, SSO integration, access control policies, and a centralized management dashboard. It's designed to be simple to deploy and manage, making it ideal for connecting remote teams, securing IoT devices, or building secure infrastructure networks.",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/netbird.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 1,
|
||||||
|
"ram": 512,
|
||||||
|
"hdd": 4,
|
||||||
|
"os": "debian",
|
||||||
|
"version": "13"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": [
|
||||||
|
{
|
||||||
|
"text": "The NetBird client (agent) allows a peer to join a pre-existing NetBird deployment. If a NetBird deployment is not yet available, there are both managed and self-hosted options available.",
|
||||||
|
"type": "info"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "After installation, enter the container and run `netbird` to to view the commands.",
|
||||||
|
"type": "info"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Use a Setup Key from your NetBird dashboard or SSO login to authenticate during setup or in the container.",
|
||||||
|
"type": "info"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Check connection status with `netbird status`.",
|
||||||
|
"type": "info"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
193
install/netbird-install.sh
Normal file
193
install/netbird-install.sh
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2025 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
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo ' _ _ _____ _____ ____ _ _ _____ ____ '
|
||||||
|
echo '| \ | ||_ _| ____| _ \| | | | ____| _ \'
|
||||||
|
echo '| \| | _ | | | _| |_| |_ _ __ __ _| | | \'
|
||||||
|
echo '| . ` |/ _ \ | | |_ | __ <| | \'__/ _` | | | \'
|
||||||
|
echo '| |\ | __/ |_| |__| |_) | | | | (__ | |_| |'
|
||||||
|
echo '|_| \_|\___|\___|\__|____/|_|_| \___|\_____/'
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
msg_info "Installing Dependencies"
|
||||||
|
$STD apt install -y \
|
||||||
|
curl \
|
||||||
|
ca-certificates \
|
||||||
|
gnupg
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
msg_info "Setting up NetBird Repository"
|
||||||
|
curl -sSL https://pkgs.netbird.io/debian/public.key \
|
||||||
|
| gpg --dearmor -o /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' \
|
||||||
|
| tee /etc/apt/sources.list.d/netbird.list > /dev/null
|
||||||
|
$STD apt update
|
||||||
|
msg_ok "Set up NetBird Repository"
|
||||||
|
|
||||||
|
msg_info "Installing NetBird"
|
||||||
|
$STD apt install -y netbird
|
||||||
|
msg_ok "Installed NetBird"
|
||||||
|
|
||||||
|
msg_info "Enabling NetBird Service"
|
||||||
|
$STD netbird service install 2>/dev/null || true
|
||||||
|
$STD netbird service start 2>/dev/null || true
|
||||||
|
$STD systemctl enable netbird
|
||||||
|
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
|
||||||
|
customize
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt -y autoremove
|
||||||
|
$STD apt -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
Loading…
x
Reference in New Issue
Block a user