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:
Claude 2025-12-18 08:36:59 +00:00
parent b0b7cb790e
commit cadb58e7b3
No known key found for this signature in database
3 changed files with 291 additions and 0 deletions

48
ct/netbird.sh Normal file
View 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}"

View 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
View 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"