make addons great again

This commit is contained in:
MickLesk
2026-08-03 09:32:48 +02:00
parent 0cea54711b
commit 55675cef37
14 changed files with 58 additions and 347 deletions
@@ -20,6 +20,7 @@ declare -f init_tool_telemetry &>/dev/null && init_tool_telemetry "actual-budget
set -Eeuo pipefail
trap 'error_handler' ERR
load_functions
require_debian_like
# ==============================================================================
# CONFIGURATION
@@ -31,14 +32,6 @@ INSTALL_PATH="/opt/actual-budget-prometheus-exporter"
CONFIG_PATH="/opt/actual-budget-prometheus-exporter.env"
SERVICE_PATH="/etc/systemd/system/actual-budget-prometheus-exporter.service"
# ==============================================================================
# OS DETECTION
# ==============================================================================
if ! grep -qE 'ID=debian|ID=ubuntu' /etc/os-release 2>/dev/null; then
echo -e "${CROSS} Unsupported OS detected. This script only supports Debian and Ubuntu."
exit 238
fi
# ==============================================================================
# UNINSTALL
# ==============================================================================
+22 -7
View File
@@ -23,6 +23,7 @@ trap 'error_handler' ERR
load_functions
header_info
require_pve_host
while true; do
read -r -p "This will add NetBird to an existing LXC Container ONLY. Proceed(y/n)? " yn
@@ -79,15 +80,29 @@ EOF
msg_info "Installing NetBird"
pct exec "$CTID" -- bash -c '
set -e
if ! command -v curl &>/dev/null; then
apt update -qq
apt install -y curl >/dev/null
apt-get update -qq
apt-get install -y curl >/dev/null
fi
apt install -y ca-certificates gpg &>/dev/null
curl -fsSL "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 update &>/dev/null
apt install -y netbird-ui &>/dev/null
apt-get install -y ca-certificates gpg &>/dev/null
# Reuse the shared repository helper instead of hand-rolling the sources entry
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/core.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/tools.func)
load_functions
# Drop the legacy keyring from the pre-deb822 layout
rm -f /usr/share/keyrings/netbird-archive-keyring.gpg
setup_deb822_repo \
"netbird" \
"https://pkgs.netbird.io/debian/public.key" \
"https://pkgs.netbird.io/debian" \
"stable" \
"main"
apt-get install -y netbird-ui &>/dev/null
if systemctl list-unit-files docker.service &>/dev/null; then
mkdir -p /etc/systemd/system/netbird.service.d
cat <<OVERRIDE >/etc/systemd/system/netbird.service.d/after-docker.conf
+14 -13
View File
@@ -22,11 +22,7 @@ trap 'error_handler' ERR
load_functions
header_info
if ! command -v pveversion &>/dev/null; then
msg_error "This script must be run on the Proxmox VE host (not inside an LXC container)"
exit 232
fi
require_pve_host
while true; do
read -rp "This will add Tailscale to an existing LXC Container ONLY. Proceed (y/n)? " yn
@@ -67,7 +63,7 @@ grep -q "lxc.mount.entry: /dev/net/tun" "$CTID_CONFIG_PATH" || echo "lxc.mount.e
msg_info "Installing Tailscale in CT $CTID"
pct exec "$CTID" -- sh -c '
pct exec "$CTID" -- bash -c '
set -e
# Detect OS inside container
@@ -135,16 +131,21 @@ else
apt-get install -y curl >/dev/null
fi
# Ensure keyrings directory exists
mkdir -p /usr/share/keyrings
# Reuse the shared repository helper instead of hand-rolling the sources entry
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/core.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/tools.func)
load_functions
curl -fsSL "https://pkgs.tailscale.com/stable/${ID}/${VERSION_CODENAME}.noarmor.gpg" \
| tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
# Drop the legacy keyring from the pre-deb822 layout
rm -f /usr/share/keyrings/tailscale-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/tailscale-archive-keyring.gpg] https://pkgs.tailscale.com/stable/${ID} ${VERSION_CODENAME} main" \
>/etc/apt/sources.list.d/tailscale.list
setup_deb822_repo \
"tailscale" \
"https://pkgs.tailscale.com/stable/${ID}/${VERSION_CODENAME}.noarmor.gpg" \
"https://pkgs.tailscale.com/stable/${ID}" \
"${VERSION_CODENAME}" \
"main"
apt-get update -qq
apt-get install -y tailscale >/dev/null
if [ -f /tmp/resolv.conf.backup ]; then
+3 -1
View File
@@ -57,11 +57,13 @@ function cleanup_ctid() {
fi
}
header_info
require_pve_host
# Stop Proxmox VE Monitor-All if running
if systemctl is-active -q ping-instances.service; then
systemctl stop ping-instances.service
fi
header_info
msg_info "Loading"
pveam update >/dev/null 2>&1
whiptail --backtitle "Proxmox VE Helper Scripts" --title "All Templates" --yesno "This will allow for the creation of one of the many Template LXC Containers. Proceed?" 10 68
+2 -57
View File
@@ -66,66 +66,11 @@ function update() {
exit
}
# ==============================================================================
# PROXMOX HOST CHECK
# ==============================================================================
function check_proxmox_host() {
if command -v pveversion &>/dev/null; then
msg_error "Running on the Proxmox host is NOT recommended!"
msg_error "This should be executed inside an LXC container."
echo ""
echo -n "${TAB}Continue anyway? (y/N): "
read -r confirm
if [[ ! "${confirm,,}" =~ ^(y|yes)$ ]]; then
msg_warn "Aborted. Please run this inside an LXC container."
exit 0
fi
msg_warn "Proceeding on Proxmox host at your own risk!"
fi
}
# ==============================================================================
# CHECK / INSTALL DOCKER
# ==============================================================================
function check_or_install_docker() {
if command -v docker &>/dev/null; then
msg_ok "Docker $(docker --version | cut -d' ' -f3 | tr -d ',') is available"
if docker compose version &>/dev/null; then
msg_ok "Docker Compose is available"
else
msg_error "Docker Compose plugin is not available. Please install it."
exit 10
fi
return
fi
msg_warn "Docker is not installed."
echo -n "${TAB}Install Docker now? (y/N): "
read -r install_docker_prompt
if [[ ! "${install_docker_prompt,,}" =~ ^(y|yes)$ ]]; then
msg_error "Docker is required for ${APP}. Exiting."
exit 10
fi
msg_info "Installing Docker"
if [[ -f /etc/alpine-release ]]; then
$STD apk add docker docker-cli-compose
$STD rc-service docker start
$STD rc-update add docker default
else
DOCKER_CONFIG_PATH='/etc/docker/daemon.json'
mkdir -p "$(dirname "$DOCKER_CONFIG_PATH")"
echo -e '{\n "log-driver": "journald"\n}' >"$DOCKER_CONFIG_PATH"
$STD sh <(curl -fsSL https://get.docker.com)
fi
msg_ok "Installed Docker"
}
# ==============================================================================
# INSTALL
# ==============================================================================
function install() {
check_or_install_docker
ensure_docker
msg_info "Installing dependencies"
if [[ -f /etc/alpine-release ]]; then
@@ -172,7 +117,7 @@ if [[ "${type:-}" == "update" ]]; then
fi
header_info
check_proxmox_host
confirm_not_pve_host
get_lxc_ip
# Check if already installed
+1 -8
View File
@@ -20,6 +20,7 @@ declare -f init_tool_telemetry &>/dev/null && init_tool_telemetry "cronmaster" "
set -Eeuo pipefail
trap 'error_handler' ERR
load_functions
require_debian_like
# ==============================================================================
# CONFIGURATION
@@ -31,14 +32,6 @@ CONFIG_PATH="/opt/cronmaster/.env"
SERVICE_PATH="/etc/systemd/system/cronmaster.service"
DEFAULT_PORT=3000
# ==============================================================================
# OS DETECTION
# ==============================================================================
if ! grep -qE 'ID=debian|ID=ubuntu' /etc/os-release 2>/dev/null; then
echo -e "${CROSS} Unsupported OS detected. This script only supports Debian and Ubuntu."
exit 238
fi
# ==============================================================================
# UNINSTALL
# ==============================================================================
+2 -57
View File
@@ -72,66 +72,11 @@ function update() {
exit
}
# ==============================================================================
# PROXMOX HOST CHECK
# ==============================================================================
function check_proxmox_host() {
if command -v pveversion &>/dev/null; then
msg_error "Running on the Proxmox host is NOT recommended!"
msg_error "This should be executed inside an LXC container."
echo ""
echo -n "${TAB}Continue anyway? (y/N): "
read -r confirm
if [[ ! "${confirm,,}" =~ ^(y|yes)$ ]]; then
msg_warn "Aborted. Please run this inside an LXC container."
exit 0
fi
msg_warn "Proceeding on Proxmox host at your own risk!"
fi
}
# ==============================================================================
# CHECK / INSTALL DOCKER
# ==============================================================================
function check_or_install_docker() {
if command -v docker &>/dev/null; then
msg_ok "Docker $(docker --version | cut -d' ' -f3 | tr -d ',') is available"
if docker compose version &>/dev/null; then
msg_ok "Docker Compose is available"
else
msg_error "Docker Compose plugin is not available. Please install it."
exit 10
fi
return
fi
msg_warn "Docker is not installed."
echo -n "${TAB}Install Docker now? (y/N): "
read -r install_docker_prompt
if [[ ! "${install_docker_prompt,,}" =~ ^(y|yes)$ ]]; then
msg_error "Docker is required for ${APP}. Exiting."
exit 10
fi
msg_info "Installing Docker"
if [[ -f /etc/alpine-release ]]; then
$STD apk add docker docker-cli-compose
$STD rc-service docker start
$STD rc-update add docker default
else
DOCKER_CONFIG_PATH='/etc/docker/daemon.json'
mkdir -p "$(dirname "$DOCKER_CONFIG_PATH")"
echo -e '{\n "log-driver": "journald"\n}' >"$DOCKER_CONFIG_PATH"
$STD sh <(curl -fsSL https://get.docker.com)
fi
msg_ok "Installed Docker"
}
# ==============================================================================
# INSTALL
# ==============================================================================
function install() {
check_or_install_docker
ensure_docker
msg_info "Creating install directories"
mkdir -p "$INSTALL_PATH" "$STACKS_PATH"
@@ -167,7 +112,7 @@ if [[ "${type:-}" == "update" ]]; then
fi
header_info
check_proxmox_host
confirm_not_pve_host
get_lxc_ip
# Check if already installed
+2 -57
View File
@@ -65,66 +65,11 @@ function update() {
exit
}
# ==============================================================================
# PROXMOX HOST CHECK
# ==============================================================================
function check_proxmox_host() {
if command -v pveversion &>/dev/null; then
msg_error "Running on the Proxmox host is NOT recommended!"
msg_error "This should be executed inside an LXC container."
echo ""
echo -n "${TAB}Continue anyway? (y/N): "
read -r confirm
if [[ ! "${confirm,,}" =~ ^(y|yes)$ ]]; then
msg_warn "Aborted. Please run this inside an LXC container."
exit 0
fi
msg_warn "Proceeding on Proxmox host at your own risk!"
fi
}
# ==============================================================================
# CHECK / INSTALL DOCKER
# ==============================================================================
function check_or_install_docker() {
if command -v docker &>/dev/null; then
msg_ok "Docker $(docker --version | cut -d' ' -f3 | tr -d ',') is available"
if docker compose version &>/dev/null; then
msg_ok "Docker Compose is available"
else
msg_error "Docker Compose plugin is not available. Please install it."
exit 10
fi
return
fi
msg_warn "Docker is not installed."
echo -n "${TAB}Install Docker now? (y/N): "
read -r install_docker_prompt
if [[ ! "${install_docker_prompt,,}" =~ ^(y|yes)$ ]]; then
msg_error "Docker is required for ${APP}. Exiting."
exit 10
fi
msg_info "Installing Docker"
if [[ -f /etc/alpine-release ]]; then
$STD apk add docker docker-cli-compose
$STD rc-service docker start
$STD rc-update add docker default
else
DOCKER_CONFIG_PATH='/etc/docker/daemon.json'
mkdir -p "$(dirname "$DOCKER_CONFIG_PATH")"
echo -e '{\n "log-driver": "journald"\n}' >"$DOCKER_CONFIG_PATH"
$STD sh <(curl -fsSL https://get.docker.com)
fi
msg_ok "Installed Docker"
}
# ==============================================================================
# INSTALL
# ==============================================================================
function install() {
check_or_install_docker
ensure_docker
msg_info "Installing dependencies"
if [[ -f /etc/alpine-release ]]; then
@@ -170,7 +115,7 @@ if [[ "${type:-}" == "update" ]]; then
fi
header_info
check_proxmox_host
confirm_not_pve_host
get_lxc_ip
# Check if already installed
+4 -58
View File
@@ -131,25 +131,7 @@ function update() {
}
# ==============================================================================
# PROXMOX HOST CHECK
# ==============================================================================
function check_proxmox_host() {
if command -v pveversion &>/dev/null; then
msg_error "Running on the Proxmox host is NOT recommended!"
msg_error "This should be executed inside an LXC container."
echo ""
echo -n "${TAB}Continue anyway? (y/N): "
read -r confirm
if [[ ! "${confirm,,}" =~ ^(y|yes)$ ]]; then
msg_warn "Aborted. Please run this inside an LXC container."
exit 0
fi
msg_warn "Proceeding on Proxmox host at your own risk!"
fi
}
# ==============================================================================
# CHECK / INSTALL DOCKER
# DEPENDENCIES
# ==============================================================================
function ensure_openssl() {
if command -v openssl &>/dev/null; then
@@ -168,48 +150,12 @@ function ensure_openssl() {
msg_ok "Installed openssl"
}
function check_or_install_docker() {
if command -v docker &>/dev/null; then
msg_ok "Docker $(docker --version | cut -d' ' -f3 | tr -d ',') is available"
if docker compose version &>/dev/null; then
msg_ok "Docker Compose is available"
else
msg_error "Docker Compose plugin is not available. Please install it."
exit 10
fi
ensure_openssl
return
fi
msg_warn "Docker is not installed."
echo -n "${TAB}Install Docker now? (y/N): "
read -r install_docker_prompt
if [[ ! "${install_docker_prompt,,}" =~ ^(y|yes)$ ]]; then
msg_error "Docker is required for ${APP}. Exiting."
exit 10
fi
msg_info "Installing Docker"
if [[ -f /etc/alpine-release ]]; then
$STD apk add docker docker-cli-compose
$STD rc-service docker start
$STD rc-update add docker default
else
DOCKER_CONFIG_PATH='/etc/docker/daemon.json'
mkdir -p "$(dirname "$DOCKER_CONFIG_PATH")"
echo -e '{\n "log-driver": "journald"\n}' >"$DOCKER_CONFIG_PATH"
$STD sh <(curl -fsSL https://get.docker.com)
fi
msg_ok "Installed Docker"
ensure_openssl
}
# ==============================================================================
# INSTALL
# ==============================================================================
function install() {
check_or_install_docker
ensure_docker
ensure_openssl
echo -e "${TAB}Choose the database for Komodo:"
echo -e "${TAB} 1) MongoDB (recommended)"
@@ -292,7 +238,7 @@ if [[ "${type:-}" == "update" ]]; then
fi
header_info
check_proxmox_host
confirm_not_pve_host
get_lxc_ip
# Declare variables used by find_compose_file
+1 -1
View File
@@ -92,7 +92,7 @@ uninstall() {
}
header_info
pve_check
require_pve_host
OPTIONS=(Install "Install ${APP} on Proxmox VE"
Uninstall "Uninstall ${APP} from Proxmox VE")
+1 -8
View File
@@ -20,6 +20,7 @@ declare -f init_tool_telemetry &>/dev/null && init_tool_telemetry "nextcloud-exp
set -Eeuo pipefail
trap 'error_handler' ERR
load_functions
require_debian_like
# ==============================================================================
# CONFIGURATION
@@ -31,14 +32,6 @@ BINARY_PATH="/usr/bin/nextcloud-exporter"
CONFIG_PATH="/etc/nextcloud-exporter.env"
SERVICE_PATH="/etc/systemd/system/nextcloud-exporter.service"
# ==============================================================================
# OS DETECTION
# ==============================================================================
if ! grep -qE 'ID=debian|ID=ubuntu' /etc/os-release 2>/dev/null; then
echo -e "${CROSS} Unsupported OS detected. This script only supports Debian and Ubuntu."
exit 238
fi
# ==============================================================================
# UNINSTALL
# ==============================================================================
@@ -15,6 +15,7 @@ declare -f init_tool_telemetry &>/dev/null && init_tool_telemetry "prometheus-pa
set -Eeuo pipefail
trap 'error_handler' ERR
load_functions
require_debian_like
# ==============================================================================
# CONFIGURATION
@@ -27,14 +28,6 @@ CONFIG_PATH="/etc/prometheus-paperless-ngx-exporter/config.env"
SERVICE_PATH="/etc/systemd/system/prometheus-paperless-ngx-exporter.service"
AUTH_TOKEN_FILE="/etc/prometheus-paperless-ngx-exporter/paperless_auth_token_file"
# ==============================================================================
# OS DETECTION
# ==============================================================================
if ! grep -qE 'ID=debian|ID=ubuntu' /etc/os-release 2>/dev/null; then
echo -e "${CROSS} Unsupported OS detected. This script only supports Debian and Ubuntu."
exit 238
fi
# ==============================================================================
# UNINSTALL
# ==============================================================================
+3 -56
View File
@@ -35,55 +35,6 @@ DEFAULT_PORT=80
# Initialize all core functions (colors, formatting, icons, STD mode)
load_functions
# ==============================================================================
# PROXMOX HOST CHECK
# ==============================================================================
function check_proxmox_host() {
if command -v pveversion &>/dev/null; then
msg_error "Running on the Proxmox host is NOT recommended!"
msg_error "This should be executed inside an LXC container."
echo ""
echo -n "${TAB}Continue anyway? (y/N): "
read -r confirm
if [[ ! "${confirm,,}" =~ ^(y|yes)$ ]]; then
msg_warn "Aborted. Please run this inside an LXC container."
exit 0
fi
msg_warn "Proceeding on Proxmox host at your own risk!"
fi
}
# ==============================================================================
# CHECK / INSTALL DOCKER
# ==============================================================================
function check_or_install_docker() {
if command -v docker &>/dev/null; then
msg_ok "Docker $(docker --version | cut -d' ' -f3 | tr -d ',') is available"
if docker compose version &>/dev/null; then
msg_ok "Docker Compose is available"
else
msg_error "Docker Compose plugin is not available. Please install it."
exit 10
fi
return
fi
msg_warn "Docker is not installed."
echo -n "${TAB}Install Docker now? (y/N): "
read -r install_docker_prompt
if [[ ! "${install_docker_prompt,,}" =~ ^(y|yes)$ ]]; then
msg_error "Docker is required for ${APP}. Exiting."
exit 10
fi
msg_info "Installing Docker"
DOCKER_CONFIG_PATH='/etc/docker/daemon.json'
mkdir -p "$(dirname "$DOCKER_CONFIG_PATH")"
echo -e '{\n "log-driver": "journald"\n}' >"$DOCKER_CONFIG_PATH"
$STD sh <(curl -fsSL https://get.docker.com)
msg_ok "Installed Docker"
}
# ==============================================================================
# UNINSTALL
# ==============================================================================
@@ -124,7 +75,7 @@ function update() {
# INSTALL
# ==============================================================================
function install() {
check_or_install_docker
ensure_docker
msg_info "Installing dependencies"
$STD apt-get update
@@ -174,13 +125,9 @@ if [[ "${type:-}" == "update" ]]; then
exit 0
fi
if [[ -f /etc/alpine-release ]]; then
msg_error "${APP} does not support Alpine Linux. Please use a Debian or Ubuntu based LXC."
exit 238
fi
header_info
check_proxmox_host
require_debian_like
confirm_not_pve_host
get_lxc_ip
# Check if already installed
+1 -8
View File
@@ -20,6 +20,7 @@ declare -f init_tool_telemetry &>/dev/null && init_tool_telemetry "sparkyfitness
set -Eeuo pipefail
trap 'error_handler' ERR
load_functions
require_debian_like
# ==============================================================================
# CONFIGURATION
@@ -31,14 +32,6 @@ CONFIG_PATH="/etc/sparkyfitness-garmin/.env"
SERVICE_PATH="/etc/systemd/system/sparkyfitness-garmin.service"
DEFAULT_PORT=8000
# ==============================================================================
# OS DETECTION
# ==============================================================================
if ! grep -qE 'ID=debian|ID=ubuntu' /etc/os-release 2>/dev/null; then
echo -e "${CROSS} Unsupported OS detected. This script only supports Debian and Ubuntu."
exit 238
fi
# ==============================================================================
# SparkyFitness LXC DETECTION
# ==============================================================================