mirror of https://github.com/tteck/Proxmox
parent
08032f165f
commit
8c09fafa6e
1 changed files with 71 additions and 0 deletions
@ -0,0 +1,71 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
# Copyright (c) 2021-2024 tteck |
||||
# Author: tteck (tteckster) |
||||
# License: MIT |
||||
# https://github.com/tteck/Proxmox/raw/main/LICENSE |
||||
|
||||
function header_info { |
||||
clear |
||||
cat <<"EOF" |
||||
_ __ __ ____ _ __ |
||||
/ | / /__ / /_/ __ )(_)________/ / |
||||
/ |/ / _ \/ __/ __ / / ___/ __ / |
||||
/ /| / __/ /_/ /_/ / / / / /_/ / |
||||
/_/ |_/\___/\__/_____/_/_/ \__,_/ |
||||
|
||||
EOF |
||||
} |
||||
header_info |
||||
set -e |
||||
while true; do |
||||
read -p "This will add NetBird to an existing LXC Container ONLY. Proceed(y/n)?" yn |
||||
case $yn in |
||||
[Yy]*) break ;; |
||||
[Nn]*) exit ;; |
||||
*) echo "Please answer yes or no." ;; |
||||
esac |
||||
done |
||||
header_info |
||||
echo "Loading..." |
||||
function msg() { |
||||
local TEXT="$1" |
||||
echo -e "$TEXT" |
||||
} |
||||
|
||||
NODE=$(hostname) |
||||
MSG_MAX_LENGTH=0 |
||||
while read -r line; do |
||||
TAG=$(echo "$line" | awk '{print $1}') |
||||
ITEM=$(echo "$line" | awk '{print substr($0,36)}') |
||||
OFFSET=2 |
||||
if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then |
||||
MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET)) |
||||
fi |
||||
CTID_MENU+=("$TAG" "$ITEM " "OFF") |
||||
done < <(pct list | awk 'NR>1') |
||||
|
||||
while [ -z "${CTID:+x}" ]; do |
||||
CTID=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Containers on $NODE" --radiolist \ |
||||
"\nSelect a container to add NetBird to:\n" \ |
||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \ |
||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit |
||||
done |
||||
|
||||
CTID_CONFIG_PATH=/etc/pve/lxc/${CTID}.conf |
||||
cat <<EOF >>$CTID_CONFIG_PATH |
||||
lxc.cgroup2.devices.allow: c 10:200 rwm |
||||
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file |
||||
EOF |
||||
header_info |
||||
msg "Installing NetBird..." |
||||
pct exec "$CTID" -- bash -c ' |
||||
apt install -y ca-certificates gpg &>/dev/null |
||||
wget -qO- https://pkgs.netbird.io/debian/public.key | gpg --dearmor >/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" >/etc/apt/sources.list.d/netbird.list |
||||
apt-get update &>/dev/null |
||||
apt-get install -y netbird-ui &>/dev/null |
||||
' || exit |
||||
msg "\e[1;32m ✔ Installed NetBird.\e[0m" |
||||
sleep 2 |
||||
msg "\e[1;31m Reboot ${CTID} LXC to apply the changes, then run netbird up in the LXC console\e[0m" |
Loading…
Reference in new issue