mirror of
https://github.com/community-scripts/ProxmoxVE
synced 2025-02-12 18:59:17 +00:00
Compare commits
13 Commits
8032372eb0
...
036fc274c6
Author | SHA1 | Date | |
---|---|---|---|
|
036fc274c6 | ||
|
47307be181 | ||
|
a6f3771214 | ||
|
7261affcc2 | ||
|
c60b16229b | ||
|
b18b49ef6f | ||
|
870313cc58 | ||
|
e9c0ca8579 | ||
|
73d5794086 | ||
|
a46e66fd9a | ||
|
79d597297c | ||
|
f511d88502 | ||
|
fad540cf4c |
6
.github/pull_request_template.md
vendored
6
.github/pull_request_template.md
vendored
@ -7,13 +7,13 @@
|
|||||||
## ✍️ Description
|
## ✍️ Description
|
||||||
Provide a summary of the changes made and/or reference the issue being addressed.
|
Provide a summary of the changes made and/or reference the issue being addressed.
|
||||||
|
|
||||||
-
|
|
||||||
|
|
||||||
- - -
|
- - -
|
||||||
|
**_Please remove unneeded lines!_**
|
||||||
- Related Issue: # (issue number, if applicable)
|
- Related Issue: # (issue number, if applicable)
|
||||||
- Related PR: # (if applicable)
|
- Related PR: # (if applicable)
|
||||||
- Related Discussion: [Link](https://github.com/community-scripts/ProxmoxVE/discussions)
|
- Related Discussion: []()(if applicable)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
19
CHANGELOG.md
19
CHANGELOG.md
@ -16,6 +16,25 @@ All LXC instances created using this repository come pre-installed with Midnight
|
|||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
Do not break established syntax in this file, as it is automatically updated by a Github Workflow
|
Do not break established syntax in this file, as it is automatically updated by a Github Workflow
|
||||||
|
|
||||||
|
## 2024-12-17
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- fix spinner on lxc-ip-tag [@MickLesk](https://github.com/MickLesk) ([#876](https://github.com/community-scripts/ProxmoxVE/pull/876))
|
||||||
|
- Fix Keycloak Installation [@MickLesk](https://github.com/MickLesk) ([#874](https://github.com/community-scripts/ProxmoxVE/pull/874))
|
||||||
|
- Fix ports ressources [@MickLesk](https://github.com/MickLesk) ([#867](https://github.com/community-scripts/ProxmoxVE/pull/867))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- Small Changes to the PR Template [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#862](https://github.com/community-scripts/ProxmoxVE/pull/862))
|
||||||
|
|
||||||
|
### ❔ Unlabelled
|
||||||
|
|
||||||
|
- calculate terminal size for header_info [@MickLesk](https://github.com/MickLesk) ([#879](https://github.com/community-scripts/ProxmoxVE/pull/879))
|
||||||
|
- Fix header creation with figlet for alpine [@MickLesk](https://github.com/MickLesk) ([#869](https://github.com/community-scripts/ProxmoxVE/pull/869))
|
||||||
|
|
||||||
## 2024-12-16
|
## 2024-12-16
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
@ -8,9 +8,9 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
|
|||||||
# App Default Values
|
# App Default Values
|
||||||
APP="Adguard"
|
APP="Adguard"
|
||||||
var_tags="adblock"
|
var_tags="adblock"
|
||||||
var_cpu="2"
|
var_cpu="1"
|
||||||
var_ram="2048"
|
var_ram="512"
|
||||||
var_disk="4"
|
var_disk="2"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
var_unprivileged="1"
|
var_unprivileged="1"
|
||||||
|
@ -41,13 +41,13 @@ function update_script() {
|
|||||||
rm -rf kepubify-linux-64bit
|
rm -rf kepubify-linux-64bit
|
||||||
curl -fsSLO https://github.com/pgaskin/kepubify/releases/latest/download/kepubify-linux-64bit
|
curl -fsSLO https://github.com/pgaskin/kepubify/releases/latest/download/kepubify-linux-64bit
|
||||||
chmod +x kepubify-linux-64bit
|
chmod +x kepubify-linux-64bit
|
||||||
menu_array=("1" "Enables gdrive as storage backend for your ebooks" OFF
|
menu_array=("1" "Enables gdrive as storage backend for your ebooks" OFF \
|
||||||
"2" "Enables sending emails via a googlemail account without enabling insecure apps" OFF
|
"2" "Enables sending emails via a googlemail account without enabling insecure apps" OFF \
|
||||||
"3" "Enables displaying of additional author infos on the authors page" OFF
|
"3" "Enables displaying of additional author infos on the authors page" OFF \
|
||||||
"4" "Enables login via LDAP server" OFF
|
"4" "Enables login via LDAP server" OFF \
|
||||||
"5" "Enables login via google or github oauth" OFF
|
"5" "Enables login via google or github oauth" OFF \
|
||||||
"6" "Enables extracting of metadata from epub, fb2, pdf files, and also extraction of covers from cbr, cbz, cbt files" OFF
|
"6" "Enables extracting of metadata from epub, fb2, pdf files, and also extraction of covers from cbr, cbz, cbt files" OFF \
|
||||||
"7" "Enables extracting of metadata from cbr, cbz, cbt files" OFF
|
"7" "Enables extracting of metadata from cbr, cbz, cbt files" OFF \
|
||||||
"8" "Enables syncing with your kobo reader" OFF)
|
"8" "Enables syncing with your kobo reader" OFF)
|
||||||
if [ -f "/opt/calibre-web/options.txt" ]; then
|
if [ -f "/opt/calibre-web/options.txt" ]; then
|
||||||
cps_options="$(cat /opt/calibre-web/options.txt)"
|
cps_options="$(cat /opt/calibre-web/options.txt)"
|
||||||
|
@ -7,7 +7,7 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
|
|||||||
|
|
||||||
# App Default Values
|
# App Default Values
|
||||||
APP="Keycloak"
|
APP="Keycloak"
|
||||||
var_tags="access management"
|
var_tags="access-management"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
var_disk="4"
|
var_disk="4"
|
||||||
|
@ -57,4 +57,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:23400/web${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:32400/web${CL}"
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
"script": "ct/photoprism.sh",
|
"script": "ct/photoprism.sh",
|
||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 2,
|
"cpu": 2,
|
||||||
"ram": 2048,
|
"ram": 3072,
|
||||||
"hdd": 8,
|
"hdd": 8,
|
||||||
"os": "debian",
|
"os": "debian",
|
||||||
"version": "12"
|
"version": "12"
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
# Source: https://github.com/gitsang/lxc-iptag
|
# Source: https://github.com/gitsang/lxc-iptag
|
||||||
|
|
||||||
function header_info {
|
function header_info {
|
||||||
clear
|
clear
|
||||||
cat <<"EOF"
|
cat <<"EOF"
|
||||||
__ _ ________ ________ ______
|
__ _ ________ ________ ______
|
||||||
/ / | |/ / ____/ / _/ __ \ /_ __/___ _____ _
|
/ / | |/ / ____/ / _/ __ \ /_ __/___ _____ _
|
||||||
/ / | / / / // /_/ /_____/ / / __ `/ __ `/
|
/ / | / / / // /_/ /_____/ / / __ `/ __ `/
|
||||||
@ -41,7 +41,7 @@ catch_errors() {
|
|||||||
|
|
||||||
# This function is called when an error occurs. It receives the exit code, line number, and command that caused the error, and displays an error message.
|
# This function is called when an error occurs. It receives the exit code, line number, and command that caused the error, and displays an error message.
|
||||||
error_handler() {
|
error_handler() {
|
||||||
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID > /dev/null; fi
|
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID >/dev/null; then kill $SPINNER_PID >/dev/null; fi
|
||||||
printf "\e[?25h"
|
printf "\e[?25h"
|
||||||
local exit_code="$?"
|
local exit_code="$?"
|
||||||
local line_number="$1"
|
local line_number="$1"
|
||||||
@ -50,16 +50,18 @@ error_handler() {
|
|||||||
echo -e "\n$error_message\n"
|
echo -e "\n$error_message\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# This function displays a spinner.
|
||||||
spinner() {
|
spinner() {
|
||||||
local frames=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
|
local frames=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
|
||||||
local spin_i=0
|
local spin_i=0
|
||||||
local interval=0.1
|
local interval=0.1
|
||||||
printf "\e[?25l"
|
printf "\e[?25l"
|
||||||
local orange="\e[38;5;214m"
|
|
||||||
|
local color="${YWB}"
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
printf "\r ${orange}%s\e[0m " "${frames[spin_i]}"
|
printf "\r ${color}%s${CL}" "${frames[spin_i]}"
|
||||||
spin_i=$(( (spin_i + 1) % ${#frames[@]} ))
|
spin_i=$(((spin_i + 1) % ${#frames[@]}))
|
||||||
sleep "$interval"
|
sleep "$interval"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@ -67,33 +69,36 @@ spinner() {
|
|||||||
# This function displays an informational message with a yellow color.
|
# This function displays an informational message with a yellow color.
|
||||||
msg_info() {
|
msg_info() {
|
||||||
local msg="$1"
|
local msg="$1"
|
||||||
echo -ne " ${HOLD} ${YW}${msg} "
|
echo -ne "${TAB}${YW}${HOLD}${msg}${HOLD}"
|
||||||
spinner &
|
spinner &
|
||||||
SPINNER_PID=$!
|
SPINNER_PID=$!
|
||||||
}
|
}
|
||||||
|
|
||||||
# This function displays a success message with a green color.
|
# This function displays a success message with a green color.
|
||||||
msg_ok() {
|
msg_ok() {
|
||||||
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID > /dev/null; fi
|
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID >/dev/null; then kill $SPINNER_PID >/dev/null; fi
|
||||||
printf "\e[?25h"
|
printf "\e[?25h"
|
||||||
local msg="$1"
|
local msg="$1"
|
||||||
echo -e "${BFR}${CM} ${GN}${msg}${CL}"
|
echo -e "${BFR}${CM}${GN}${msg}${CL}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# This function displays a error message with a red color.
|
# This function displays a error message with a red color.
|
||||||
msg_error() {
|
msg_error() {
|
||||||
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID > /dev/null; fi
|
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID >/dev/null; then kill $SPINNER_PID >/dev/null; fi
|
||||||
printf "\e[?25h"
|
printf "\e[?25h"
|
||||||
local msg="$1"
|
local msg="$1"
|
||||||
echo -e "${BFR}${CROSS} ${RD}${msg}${CL}"
|
echo -e "${BFR}${CROSS}${RD}${msg}${CL}"
|
||||||
}
|
}
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
read -p "This will install ${APP} on ${hostname}. Proceed? (y/n): " yn
|
read -p "This will install ${APP} on ${hostname}. Proceed? (y/n): " yn
|
||||||
case $yn in
|
case $yn in
|
||||||
[Yy]*) break ;;
|
[Yy]*) break ;;
|
||||||
[Nn]*) msg_info "Installation cancelled."; exit ;;
|
[Nn]*)
|
||||||
*) msg_info "Please answer yes or no." ;;
|
msg_error "Installation cancelled."
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
*) msg_error "Please answer yes or no." ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -118,10 +123,11 @@ msg_ok "Installed Dependencies"
|
|||||||
|
|
||||||
msg_info "Setting up IP-Tag Scripts"
|
msg_info "Setting up IP-Tag Scripts"
|
||||||
mkdir -p /opt/lxc-iptag
|
mkdir -p /opt/lxc-iptag
|
||||||
|
msg_ok "Setup IP-Tag Scripts"
|
||||||
|
|
||||||
msg_info "Setup Default Config"
|
msg_info "Setup Default Config"
|
||||||
if [[ ! -f /opt/lxc-iptag/iptag.conf ]]; then
|
if [[ ! -f /opt/lxc-iptag/iptag.conf ]]; then
|
||||||
cat <<EOF > /opt/lxc-iptag/iptag.conf
|
cat <<EOF >/opt/lxc-iptag/iptag.conf
|
||||||
# Configuration file for LXC IP tagging
|
# Configuration file for LXC IP tagging
|
||||||
|
|
||||||
# List of allowed CIDRs
|
# List of allowed CIDRs
|
||||||
@ -144,7 +150,7 @@ fi
|
|||||||
|
|
||||||
msg_info "Setup Main Function"
|
msg_info "Setup Main Function"
|
||||||
if [[ ! -f /opt/lxc-iptag/iptag ]]; then
|
if [[ ! -f /opt/lxc-iptag/iptag ]]; then
|
||||||
cat <<'EOF' > /opt/lxc-iptag/iptag
|
cat <<'EOF' >/opt/lxc-iptag/iptag
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# =============== CONFIGURATION =============== #
|
# =============== CONFIGURATION =============== #
|
||||||
@ -322,8 +328,7 @@ chmod +x /opt/lxc-iptag/iptag
|
|||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
if [[ ! -f /lib/systemd/system/iptag.service ]]; then
|
if [[ ! -f /lib/systemd/system/iptag.service ]]; then
|
||||||
echo "Systemd service file not found. Creating it now..."
|
cat <<EOF >/lib/systemd/system/iptag.service
|
||||||
cat <<EOF > /lib/systemd/system/iptag.service
|
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=LXC IP-Tag service
|
Description=LXC IP-Tag service
|
||||||
After=network.target
|
After=network.target
|
||||||
@ -347,5 +352,5 @@ msg_info "Starting Service"
|
|||||||
systemctl daemon-reload &>/dev/null
|
systemctl daemon-reload &>/dev/null
|
||||||
systemctl enable -q --now iptag.service &>/dev/null
|
systemctl enable -q --now iptag.service &>/dev/null
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
SPINNER_PID=""
|
||||||
echo -e "\n${APP} installation completed successfully! ${CL}\n"
|
echo -e "\n${APP} installation completed successfully! ${CL}\n"
|
||||||
|
@ -158,8 +158,19 @@ arch_check() {
|
|||||||
|
|
||||||
# This function sets the APP-Name into an ASCII Header in Slant, figlet needed on proxmox main node.
|
# This function sets the APP-Name into an ASCII Header in Slant, figlet needed on proxmox main node.
|
||||||
header_info() {
|
header_info() {
|
||||||
|
if [ -f /etc/debian_version ]; then
|
||||||
|
# Debian/Ubuntu
|
||||||
apt-get install -y figlet &> /dev/null
|
apt-get install -y figlet &> /dev/null
|
||||||
ascii_art=$(figlet -f slant "$APP")
|
elif [ -f /etc/alpine-release ]; then
|
||||||
|
# Alpine Linux
|
||||||
|
apk add --no-cache figlet &> /dev/null
|
||||||
|
else
|
||||||
|
echo "Unsupported OS"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
term_width=$(tput cols)
|
||||||
|
ascii_art=$(figlet -f slant -w "$term_width" "$APP")
|
||||||
clear
|
clear
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
$ascii_art
|
$ascii_art
|
||||||
|
Loading…
Reference in New Issue
Block a user