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