mirror of https://github.com/tteck/Proxmox.git
Merge remote-tracking branch 'origin/main'
# Conflicts: # ct/mafl.sh
This commit is contained in:
commit
94da462585
28
CHANGELOG.md
28
CHANGELOG.md
|
@ -10,6 +10,34 @@
|
|||
- All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
|
||||
- 🚨 **The scripts in the repository will no longer provide support for Proxmox VE 7 starting from July 2024 (scripts will not execute on PVE7). Subsequent <a href='https://forum.proxmox.com/threads/proxmox-ve-support-lifecycle.35755/' target='_blank' rel='noopener noreferrer'>Proxmox VE - Support Lifecycle</a>**
|
||||
|
||||
## 2024-03-13
|
||||
|
||||
### Changed
|
||||
|
||||
- **FlowiseAI LXC**
|
||||
- NEW Script
|
||||
|
||||
## 2024-03-11
|
||||
|
||||
### Changed
|
||||
|
||||
- **Wastebin LXC**
|
||||
- NEW Script
|
||||
|
||||
## 2024-03-08
|
||||
|
||||
### Changed
|
||||
|
||||
- **Proxmox VE Post Install**
|
||||
- Requires Proxmox Virtual Environment Version 8.1.1 or later.
|
||||
|
||||
## 2024-02-26
|
||||
|
||||
### Changed
|
||||
|
||||
- **Mafl LXC**
|
||||
- NEW Script
|
||||
|
||||
## 2024-02-23
|
||||
|
||||
### Changed
|
||||
|
|
|
@ -34,3 +34,5 @@
|
|||
[iGPU Transcoding In Proxmox with Jellyfin](https://www.youtube.com/watch?v=XAa_qpNmzZs)
|
||||
|
||||
[Proxmox + NetData](<https://dbt3ch.com/books/proxmox-netdata-for-better-insights-and-notifications/page/proxmox-netdata-for-better-insights-and-notifications>)
|
||||
|
||||
[Proxmox Homelab Series](<https://blog.kye.dev/proxmox-series>)
|
||||
|
|
|
@ -56,8 +56,13 @@ function update_script() {
|
|||
header_info
|
||||
if [[ ! -f /etc/systemd/system/changedetection.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
msg_info "Updating ${APP} LXC"
|
||||
if ! dpkg -s libjpeg-dev >/dev/null 2>&1; then
|
||||
apt-get update
|
||||
apt-get install -y libjpeg-dev
|
||||
fi
|
||||
pip3 install changedetection.io --upgrade &>/dev/null
|
||||
pip3 install playwright --upgrade &>/dev/null
|
||||
systemctl restart changedetection
|
||||
msg_ok "Updated Successfully"
|
||||
exit
|
||||
}
|
||||
|
|
10
ct/dashy.sh
10
ct/dashy.sh
|
@ -54,18 +54,20 @@ function default_settings() {
|
|||
|
||||
function update_script() {
|
||||
header_info
|
||||
if [[ ! -d /dashy/public/ ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
if [[ ! -d /opt/dashy/public/ ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
msg_error "There is currently no update path available."
|
||||
exit
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop dashy
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
msg_info "Backing up conf.yml"
|
||||
cd ~
|
||||
cp -R /dashy/public/conf.yml conf.yml
|
||||
cp -R /opt/dashy/public/conf.yml conf.yml
|
||||
msg_ok "Backed up conf.yml"
|
||||
|
||||
msg_info "Updating Dashy"
|
||||
cd /dashy
|
||||
cd /opt/dashy
|
||||
git merge &>/dev/null
|
||||
git pull origin master &>/dev/null
|
||||
yarn &>/dev/null
|
||||
|
@ -74,7 +76,7 @@ msg_ok "Updated Dashy"
|
|||
|
||||
msg_info "Restoring conf.yml"
|
||||
cd ~
|
||||
cp -R conf.yml /dashy/public
|
||||
cp -R conf.yml /opt/dashy/public
|
||||
msg_ok "Restored conf.yml"
|
||||
|
||||
msg_info "Cleaning"
|
||||
|
|
|
@ -0,0 +1,72 @@
|
|||
#!/usr/bin/env bash
|
||||
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
|
||||
# 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
|
||||
echo -e "Loading..."
|
||||
APP="FlowiseAI"
|
||||
var_disk="10"
|
||||
var_cpu="2"
|
||||
var_ram="2048"
|
||||
var_os="debian"
|
||||
var_version="12"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function default_settings() {
|
||||
CT_TYPE="1"
|
||||
PW=""
|
||||
CT_ID=$NEXTID
|
||||
HN=$NSAPP
|
||||
DISK_SIZE="$var_disk"
|
||||
CORE_COUNT="$var_cpu"
|
||||
RAM_SIZE="$var_ram"
|
||||
BRG="vmbr0"
|
||||
NET="dhcp"
|
||||
GATE=""
|
||||
APT_CACHER=""
|
||||
APT_CACHER_IP=""
|
||||
DISABLEIP6="no"
|
||||
MTU=""
|
||||
SD=""
|
||||
NS=""
|
||||
MAC=""
|
||||
VLAN=""
|
||||
SSH="no"
|
||||
VERB="no"
|
||||
echo_default
|
||||
}
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
if [[ ! -f /etc/systemd/system/flowise.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
msg_info "Updating ${APP}"
|
||||
systemctl stop flowise
|
||||
npm install -g flowise --upgrade
|
||||
systemctl start flowise
|
||||
msg_ok "Updated ${APP}"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${APP} should be reachable by going to the following URL.
|
||||
${BL}http://${IP}:3000${CL} \n"
|
|
@ -56,9 +56,6 @@ function update_script() {
|
|||
header_info
|
||||
if [[ ! -f /etc/apt/sources.list.d/grafana.list ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
msg_info "Updating ${APP}"
|
||||
apt-key del 4E40DDF6D76E284A4A6780E48C8C34C524098CB6
|
||||
wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
|
||||
echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | tee /etc/apt/sources.list.d/grafana.list
|
||||
apt-get update &>/dev/null
|
||||
apt-get -y upgrade &>/dev/null
|
||||
msg_ok "Updated Successfully"
|
||||
|
|
14
ct/mafl.sh
14
ct/mafl.sh
|
@ -55,19 +55,7 @@ function default_settings() {
|
|||
function update_script() {
|
||||
header_info
|
||||
if [[ ! -d /opt/mafl ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
|
||||
RELEASE=$(curl -s https://api.github.com/repos/hywax/mafl/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
msg_info "Updating Mafl to v${RELEASE} (Patience)"
|
||||
systemctl stop mafl
|
||||
wget -q https://github.com/hywax/mafl/archive/refs/tags/v${RELEASE}.tar.gz
|
||||
tar -xzf v${RELEASE}.tar.gz
|
||||
cp -r mafl-${RELEASE}/* /opt/mafl/
|
||||
rm -rf mafl-${RELEASE}
|
||||
cd /opt/mafl
|
||||
yarn install
|
||||
yarn build
|
||||
systemctl start mafl
|
||||
msg_ok "Updated Mafl to v${RELEASE}"
|
||||
msg_error "There is currently no update path available."
|
||||
exit
|
||||
}
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ EOF
|
|||
header_info
|
||||
echo -e "Loading..."
|
||||
APP="n8n"
|
||||
var_disk="3"
|
||||
var_disk="6"
|
||||
var_cpu="2"
|
||||
var_ram="2048"
|
||||
var_os="debian"
|
||||
|
|
|
@ -55,7 +55,7 @@ function default_settings() {
|
|||
function update_script() {
|
||||
header_info
|
||||
if [[ ! -d /opt/tplink ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
latest_url=$(curl -fsSL "https://www.tp-link.com/us/support/download/omada-software-controller/" | grep -o 'https://.*x64.deb' | head -n1)
|
||||
latest_url=$(curl -fsSL "https://www.tp-link.com/en/support/download/omada-software-controller/" | grep -o 'https://.*x64.deb' | head -n1)
|
||||
latest_version=$(basename "${latest_url}")
|
||||
if [ -z "${latest_version}" ]; then
|
||||
msg_error "It seems that the server (tp-link.com) might be down. Please try again at a later time."
|
||||
|
|
|
@ -55,10 +55,7 @@ function default_settings() {
|
|||
function update_script() {
|
||||
header_info
|
||||
if [[ ! -f /etc/systemd/system/prometheus.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
msg_info "Updating ${APP} LXC"
|
||||
apt-get update &>/dev/null
|
||||
apt-get -y upgrade &>/dev/null
|
||||
msg_ok "Updated Successfully"
|
||||
msg_error "There is currently no update path available."
|
||||
exit
|
||||
}
|
||||
|
||||
|
|
|
@ -54,26 +54,25 @@ function default_settings() {
|
|||
}
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
if [[ ! -d /opt/tandoor ]]; then
|
||||
msg_error "No ${APP} Installation Found!";
|
||||
exit;
|
||||
fi
|
||||
msg_info "Updating ${APP} LXC"
|
||||
if cd /opt/tandoor && git pull | grep -q 'Already up to date'; then
|
||||
msg_error "There is currently no update path available."
|
||||
else
|
||||
header_info
|
||||
if [[ ! -d /opt/tandoor ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
if cd /opt/tandoor && git pull | grep -q 'Already up to date'; then
|
||||
msg_ok "There is currently no update available."
|
||||
else
|
||||
msg_info "Updating ${APP} (Patience)"
|
||||
export $(cat /opt/tandoor/.env | grep "^[^#]" | xargs)
|
||||
/opt/tandoor/bin/pip3 install -r requirements.txt >/dev/null 2>&1
|
||||
/opt/tandoor/bin/python3 manage.py migrate >/dev/null 2>&1
|
||||
/opt/tandoor/bin/python3 manage.py collectstatic --no-input >/dev/null 2>&1
|
||||
/opt/tandoor/bin/python3 manage.py collectstatic_js_reverse >/dev/null 2>&1
|
||||
cd /opt/tandoor/
|
||||
pip3 install -r requirements.txt >/dev/null 2>&1
|
||||
/usr/bin/python3 /opt/tandoor/manage.py migrate >/dev/null 2>&1
|
||||
/usr/bin/python3 /opt/tandoor/manage.py collectstatic --no-input >/dev/null 2>&1
|
||||
/usr/bin/python3 /opt/tandoor/manage.py collectstatic_js_reverse >/dev/null 2>&1
|
||||
cd /opt/tandoor/vue
|
||||
yarn install >/dev/null 2>&1
|
||||
yarn build >/dev/null 2>&1
|
||||
sudo systemctl restart gunicorn_tandoor
|
||||
fi
|
||||
exit
|
||||
systemctl restart gunicorn_tandoor
|
||||
msg_ok "Updated ${APP}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
|
|
|
@ -0,0 +1,107 @@
|
|||
#!/usr/bin/env bash
|
||||
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
|
||||
# Copyright (c) 2021-2024 tteck
|
||||
# Author: tteck
|
||||
# Co-Author: MickLesk (Canbiz)
|
||||
# License: MIT
|
||||
# https://github.com/tteck/Proxmox/raw/main/LICENSE
|
||||
# Source: https://github.com/matze/wastebin
|
||||
|
||||
|
||||
function header_info {
|
||||
clear
|
||||
cat <<"EOF"
|
||||
_ __ __ __ _
|
||||
| | / /___ ______/ /____ / /_ (_)___
|
||||
| | /| / / __ `/ ___/ __/ _ \/ __ \/ / __ \
|
||||
| |/ |/ / /_/ (__ ) /_/ __/ /_/ / / / / /
|
||||
|__/|__/\__,_/____/\__/\___/_.___/_/_/ /_/
|
||||
|
||||
EOF
|
||||
}
|
||||
header_info
|
||||
echo -e "Loading..."
|
||||
APP="Wastebin"
|
||||
var_disk="4"
|
||||
var_cpu="4"
|
||||
var_ram="2048"
|
||||
var_os="debian"
|
||||
var_version="12"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function default_settings() {
|
||||
CT_TYPE="1"
|
||||
PW=""
|
||||
CT_ID=$NEXTID
|
||||
HN=$NSAPP
|
||||
DISK_SIZE="$var_disk"
|
||||
CORE_COUNT="$var_cpu"
|
||||
RAM_SIZE="$var_ram"
|
||||
BRG="vmbr0"
|
||||
NET="dhcp"
|
||||
GATE=""
|
||||
APT_CACHER=""
|
||||
APT_CACHER_IP=""
|
||||
DISABLEIP6="no"
|
||||
MTU=""
|
||||
SD=""
|
||||
NS=""
|
||||
MAC=""
|
||||
VLAN=""
|
||||
SSH="no"
|
||||
VERB="no"
|
||||
echo_default
|
||||
}
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
if [[ ! -d /opt/wastebin ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||
if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then
|
||||
read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt
|
||||
[[ ${prompt,,} =~ ^(y|yes)$ ]] || exit
|
||||
fi
|
||||
msg_info "Stopping Wastebin"
|
||||
systemctl stop wastebin
|
||||
msg_ok "Wastebin Stopped"
|
||||
|
||||
msg_info "Updating Wastebin"
|
||||
RELEASE=$(curl -s https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
cd /opt
|
||||
if [ -d wastebin_bak ]; then
|
||||
rm -rf wastebin_bak
|
||||
fi
|
||||
mv wastebin wastebin_bak
|
||||
wget -q "https://github.com/matze/wastebin/archive/refs/tags/${RELEASE}.zip"
|
||||
unzip -q ${RELEASE}.zip
|
||||
mv wastebin-${RELEASE} /opt/wastebin
|
||||
cd /opt/wastebin
|
||||
cargo update -q
|
||||
cargo build -q --release
|
||||
msg_ok "Updated Wastebin"
|
||||
|
||||
msg_info "Starting Wastebin"
|
||||
systemctl start wastebin
|
||||
msg_ok "Started Wastebin"
|
||||
|
||||
msg_info "Cleaning Up"
|
||||
cd /opt
|
||||
rm -R ${RELEASE}.zip
|
||||
rm -R wastebin_bak
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_info "Setting Container to Normal Resources"
|
||||
pct set $CTID -cores 2
|
||||
msg_ok "Set Container to Normal Resources"
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${APP} Setup should be reachable by going to the following URL.
|
||||
${BL}http://${IP}:8088${CL} \n"
|
|
@ -22,6 +22,7 @@ $STD apt-get install -y \
|
|||
build-essential \
|
||||
dumb-init \
|
||||
gconf-service \
|
||||
libjpeg-dev \
|
||||
libatk-bridge2.0-0 \
|
||||
libasound2 \
|
||||
libatk1.0-0 \
|
||||
|
|
|
@ -17,7 +17,6 @@ msg_info "Installing Dependencies"
|
|||
$STD apt-get install -y curl
|
||||
$STD apt-get install -y sudo
|
||||
$STD apt-get install -y mc
|
||||
$STD apt-get install -y git
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Node.js (Patience)"
|
||||
|
@ -35,10 +34,12 @@ ln -sf /usr/local/bin/yarn /usr/bin/yarn
|
|||
msg_ok "Installed Yarn"
|
||||
|
||||
msg_info "Installing Dashy (Patience)"
|
||||
$STD git clone https://github.com/Lissy93/dashy.git
|
||||
cd /dashy
|
||||
mkdir -p /opt/dashy
|
||||
#RELEASE=$(curl -s https://api.github.com/repos/Lissy93/dashy/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
#wget -qO- https://github.com/Lissy93/dashy/archive/refs/tags/${RELEASE}.tar.gz | tar -xz -C /opt/dashy --strip-components=1
|
||||
wget -qO- https://github.com/Lissy93/dashy/archive/refs/tags/2.1.1.tar.gz | tar -xz -C /opt/dashy --strip-components=1
|
||||
cd /opt/dashy
|
||||
$STD yarn
|
||||
export NODE_OPTIONS=--max-old-space-size=1000
|
||||
$STD yarn build
|
||||
msg_ok "Installed Dashy"
|
||||
|
||||
|
@ -49,7 +50,7 @@ Description=dashy
|
|||
|
||||
[Service]
|
||||
Type=simple
|
||||
WorkingDirectory=/dashy
|
||||
WorkingDirectory=/opt/dashy
|
||||
ExecStart=/usr/bin/yarn start
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
|
|
@ -26,8 +26,9 @@ echo "deb [arch=amd64] http://phoscon.de/apt/deconz $VERSION main" >/etc/apt/sou
|
|||
msg_ok "Setup Phoscon Repository"
|
||||
|
||||
msg_info "Installing deConz"
|
||||
wget -qL http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.21_amd64.deb
|
||||
$STD dpkg -i libssl1.1_1.1.1f-1ubuntu2.21_amd64.deb
|
||||
libssl=$(curl -fsSL "http://security.ubuntu.com/ubuntu/pool/main/o/openssl/" | grep -o 'libssl1\.1_1\.1\.1f-1ubuntu2\.2[^"]*amd64\.deb' | head -n1)
|
||||
wget -qL http://security.ubuntu.com/ubuntu/pool/main/o/openssl/$libssl
|
||||
$STD dpkg -i $libssl
|
||||
$STD apt-get update
|
||||
$STD apt-get install -y deconz
|
||||
msg_ok "Installed deConz"
|
||||
|
@ -56,7 +57,7 @@ motd_ssh
|
|||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf libssl1.1_1.1.1f-1ubuntu2.21_amd64.deb
|
||||
rm -rf $libssl
|
||||
$STD apt-get autoremove
|
||||
$STD apt-get autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2024 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT
|
||||
# https://github.com/tteck/Proxmox/raw/main/LICENSE
|
||||
|
||||
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y curl
|
||||
$STD apt-get install -y sudo
|
||||
$STD apt-get install -y mc
|
||||
$STD apt-get install -y gpg
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Node.js"
|
||||
mkdir -p /etc/apt/keyrings
|
||||
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
|
||||
$STD apt-get update
|
||||
$STD apt-get install -y nodejs
|
||||
msg_ok "Installed Node.js"
|
||||
|
||||
msg_info "Installing FlowiseAI (Patience)"
|
||||
$STD npm install -g flowise
|
||||
mkdir -p /opt/flowiseai
|
||||
wget -q https://raw.githubusercontent.com/FlowiseAI/Flowise/main/packages/server/.env.example -O /opt/flowiseai/.env
|
||||
msg_ok "Installed FlowiseAI"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/flowise.service
|
||||
[Unit]
|
||||
Description=FlowiseAI
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=/opt/flowiseai/.env
|
||||
ExecStart=npx flowise start
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now flowise.service
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get autoremove
|
||||
$STD apt-get autoclean
|
||||
msg_ok "Cleaned"
|
|
@ -42,9 +42,9 @@ $STD apt-get install -y \
|
|||
libatlas-base-dev
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
RELEASE=$(curl -s https://www.python.org/downloads/ | grep -oP 'Download Python \K\d+\.\d+\.\d+' | head -1)
|
||||
#RELEASE=$(curl -s https://www.python.org/downloads/ | grep -oP 'Download Python \K\d+\.\d+\.\d+' | head -1)
|
||||
|
||||
msg_info "Compiling Python ${RELEASE} from its source (Additional Patience)"
|
||||
msg_info "Compiling Python 3.12 from its source (Additional Patience)"
|
||||
$STD apt-get remove -y python3
|
||||
$STD apt-get install -y \
|
||||
checkinstall \
|
||||
|
@ -57,15 +57,16 @@ $STD apt-get install -y \
|
|||
libc6-dev \
|
||||
libbz2-dev
|
||||
|
||||
wget -qO- https://www.python.org/ftp/python/${RELEASE}/Python-${RELEASE}.tar.xz | tar -xJ
|
||||
cd Python-${RELEASE}
|
||||
#wget -qO- https://www.python.org/ftp/python/${RELEASE}/Python-${RELEASE}.tar.xz | tar -xJ
|
||||
wget -qO- https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tar.xz | tar -xJ
|
||||
cd Python-3.12.2
|
||||
$STD ./configure --enable-optimizations
|
||||
$STD make -j $(nproc)
|
||||
$STD make altinstall
|
||||
$STD update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.12 1
|
||||
cd ~
|
||||
rm -rf Python-${RELEASE}
|
||||
msg_ok "Installed Python ${RELEASE}"
|
||||
rm -rf Python-3.12.2
|
||||
msg_ok "Installed Python 3.12"
|
||||
|
||||
msg_info "Installing Home Assistant-Core"
|
||||
mkdir /srv/homeassistant
|
||||
|
|
|
@ -27,15 +27,6 @@ sed -i 's/^# *\(port *=.*\)/\1/' /etc/mysql/my.cnf
|
|||
sed -i 's/^bind-address/#bind-address/g' /etc/mysql/mariadb.conf.d/50-server.cnf
|
||||
msg_ok "Installed MariaDB"
|
||||
|
||||
read -r -p "Would you like to add Adminer? <y/N> " prompt
|
||||
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||
msg_info "Installing Adminer"
|
||||
$STD apt install -y adminer
|
||||
$STD a2enconf adminer
|
||||
systemctl reload apache2
|
||||
msg_ok "Installed Adminer"
|
||||
fi
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
|
|
|
@ -17,15 +17,10 @@ msg_info "Installing Dependencies"
|
|||
$STD apt-get install -y curl
|
||||
$STD apt-get install -y sudo
|
||||
$STD apt-get install -y mc
|
||||
$STD apt-get install -y gpg
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Mosquitto MQTT Broker"
|
||||
if [ "$PCT_OSTYPE" == "debian" ]; then
|
||||
VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)"
|
||||
wget -qO- http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key >/etc/apt/trusted.gpg.d/mosquitto-repo.asc
|
||||
wget -qO /etc/apt/sources.list.d/mosquitto-${VERSION}.list http://repo.mosquitto.org/debian/mosquitto-${VERSION}.list
|
||||
$STD apt-get update
|
||||
fi
|
||||
$STD apt-get -y install mosquitto
|
||||
$STD apt-get -y install mosquitto-clients
|
||||
cat <<EOF >/etc/mosquitto/conf.d/default.conf
|
||||
|
|
|
@ -44,6 +44,7 @@ Description=n8n
|
|||
|
||||
[Service]
|
||||
Type=simple
|
||||
Environment="N8N_SECURE_COOKIE=false"
|
||||
ExecStart=n8n start
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
|
|
@ -61,7 +61,7 @@ ln -sf /root/.nvm/versions/node/v16.20.2/bin/node /usr/bin/node
|
|||
msg_ok "Installed Node.js"
|
||||
|
||||
msg_info "Installing pnpm"
|
||||
$STD npm install -g pnpm
|
||||
$STD npm install -g pnpm@8.15
|
||||
msg_ok "Installed pnpm"
|
||||
|
||||
RELEASE=$(curl -s https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest |
|
||||
|
|
|
@ -30,13 +30,14 @@ $STD apt-get -y install zulu8-jdk
|
|||
msg_ok "Installed Azul Zulu"
|
||||
|
||||
msg_info "Installing MongoDB"
|
||||
wget -qL http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.21_amd64.deb
|
||||
$STD dpkg -i libssl1.1_1.1.1f-1ubuntu2.21_amd64.deb
|
||||
libssl=$(curl -fsSL "http://security.ubuntu.com/ubuntu/pool/main/o/openssl/" | grep -o 'libssl1\.1_1\.1\.1f-1ubuntu2\.2[^"]*amd64\.deb' | head -n1)
|
||||
wget -qL http://security.ubuntu.com/ubuntu/pool/main/o/openssl/$libssl
|
||||
$STD dpkg -i $libssl
|
||||
wget -qL https://repo.mongodb.org/apt/ubuntu/dists/bionic/mongodb-org/3.6/multiverse/binary-amd64/mongodb-org-server_3.6.23_amd64.deb
|
||||
$STD dpkg -i mongodb-org-server_3.6.23_amd64.deb
|
||||
msg_ok "Installed MongoDB"
|
||||
|
||||
latest_url=$(curl -fsSL "https://www.tp-link.com/us/support/download/omada-software-controller/" | grep -o 'https://.*x64.deb' | head -n1)
|
||||
latest_url=$(curl -fsSL "https://www.tp-link.com/en/support/download/omada-software-controller/" | grep -o 'https://.*x64.deb' | head -n1)
|
||||
latest_version=$(basename "$latest_url")
|
||||
|
||||
msg_info "Installing Omada Controller"
|
||||
|
@ -48,7 +49,7 @@ motd_ssh
|
|||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf ${latest_version} mongodb-org-server_3.6.23_amd64.deb zulu-repo_1.0.0-3_all.deb libssl1.1_1.1.1f-1ubuntu2.21_amd64.deb
|
||||
rm -rf ${latest_version} mongodb-org-server_3.6.23_amd64.deb zulu-repo_1.0.0-3_all.deb $libssl
|
||||
$STD apt-get autoremove
|
||||
$STD apt-get autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
|
|
@ -25,7 +25,10 @@ $STD apt-get install -y libjpeg-dev
|
|||
$STD apt-get install -y libtiff-dev
|
||||
$STD apt-get install -y imagemagick
|
||||
$STD apt-get install -y darktable
|
||||
$STD apt-get install -y rawtherapee
|
||||
|
||||
echo 'export PATH=/usr/local:$PATH' >>~/.bashrc
|
||||
export PATH=/usr/local:$PATH
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing PhotoPrism (Patience)"
|
||||
|
|
|
@ -127,7 +127,6 @@ server {
|
|||
location / {
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_pass http://unix:/opt/tandoor/tandoor.sock;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
|
|
@ -29,8 +29,9 @@ $STD apt-get install -y temurin-17-jre
|
|||
msg_ok "Installed OpenJDK"
|
||||
|
||||
msg_info "Installing MongoDB"
|
||||
wget -qL http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.21_amd64.deb
|
||||
$STD dpkg -i libssl1.1_1.1.1f-1ubuntu2.21_amd64.deb
|
||||
libssl=$(curl -fsSL "http://security.ubuntu.com/ubuntu/pool/main/o/openssl/" | grep -o 'libssl1\.1_1\.1\.1f-1ubuntu2\.2[^"]*amd64\.deb' | head -n1)
|
||||
wget -qL http://security.ubuntu.com/ubuntu/pool/main/o/openssl/$libssl
|
||||
$STD dpkg -i $libssl
|
||||
wget -qO- https://pgp.mongodb.com/server-4.4.asc | gpg --dearmor >/etc/apt/trusted.gpg.d/mongodb-server-4.4.gpg
|
||||
echo 'deb [ arch=amd64 signed-by=/etc/apt/trusted.gpg.d/mongodb-server-4.4.gpg ] https://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main' >/etc/apt/sources.list.d/mongodb-org-4.4.list
|
||||
$STD apt-get update
|
||||
|
@ -48,7 +49,7 @@ motd_ssh
|
|||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf libssl1.1_1.1.1f-1ubuntu2.21_amd64.deb
|
||||
rm -rf $libssl
|
||||
$STD apt-get autoremove
|
||||
$STD apt-get autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
|
|
@ -0,0 +1,67 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2024 tteck
|
||||
# Author: tteck
|
||||
# Co-Author: MickLesk (Canbiz)
|
||||
# License: MIT
|
||||
# https://github.com/tteck/Proxmox/raw/main/LICENSE
|
||||
# Source: https://github.com/matze/wastebin
|
||||
|
||||
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies (Patience)"
|
||||
$STD apt-get install -y --no-install-recommends \
|
||||
build-essential \
|
||||
unzip \
|
||||
curl \
|
||||
sudo \
|
||||
git \
|
||||
make \
|
||||
mc
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Rust (Patience)"
|
||||
$STD bash <(curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs) -y
|
||||
source ~/.cargo/env
|
||||
msg_ok "Installed Rust"
|
||||
|
||||
msg_info "Installing Wastebin (Patience)"
|
||||
RELEASE=$(curl -s https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
wget -q "https://github.com/matze/wastebin/archive/refs/tags/${RELEASE}.zip"
|
||||
unzip -q ${RELEASE}.zip
|
||||
mv wastebin-${RELEASE} /opt/wastebin
|
||||
rm -R ${RELEASE}.zip
|
||||
cd /opt/wastebin
|
||||
cargo build -q --release
|
||||
msg_ok "Installed Wastebin"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/wastebin.service
|
||||
[Unit]
|
||||
Description=Start Wastebin Service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
User=root
|
||||
WorkingDirectory=/opt/wastebin
|
||||
ExecStart=/root/.cargo/bin/cargo run --release --quiet
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now wastebin.service
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get autoremove
|
||||
$STD apt-get autoclean
|
||||
msg_ok "Cleaned"
|
|
@ -205,7 +205,7 @@ advanced_settings() {
|
|||
if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UBUNTU VERSION" --radiolist "Choose Version" 10 58 3 \
|
||||
"20.04" "Focal" OFF \
|
||||
"22.04" "Jammy" OFF \
|
||||
"23.04" "Lunar" OFF \
|
||||
"23.10" "Mantic" OFF \
|
||||
3>&1 1>&2 2>&3); then
|
||||
if [ -n "$var_version" ]; then
|
||||
echo -e "${DGN}Using $var_os Version: ${BGN}$var_version${CL}"
|
||||
|
|
|
@ -47,6 +47,7 @@ function error_exit() {
|
|||
clear
|
||||
header_info
|
||||
if command -v pveversion >/dev/null 2>&1; then echo -e "⚠️ Can't Install on Proxmox "; exit; fi
|
||||
if [ -e /etc/alpine-release ]; then echo -e "⚠️ Can't Install on Alpine"; exit; fi
|
||||
while true; do
|
||||
read -p "This will Install ${APP} on $hostname. Proceed(y/n)?" yn
|
||||
case $yn in
|
||||
|
|
|
@ -83,6 +83,10 @@ whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --
|
|||
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
||||
Version: 2022.10.03" 13 50 || exit
|
||||
info "Home Assistant Data from '$CTID_FROM' to '$CTID_TO'"
|
||||
if [ $(pct status $CTID_FROM | sed 's/.* //') == 'running' ]; then
|
||||
msg "Stopping '$CTID_FROM'..."
|
||||
pct stop $CTID_FROM
|
||||
fi
|
||||
if [ $(pct status $CTID_TO | sed 's/.* //') == 'running' ]; then
|
||||
msg "Stopping '$CTID_TO'..."
|
||||
pct stop $CTID_TO
|
||||
|
|
|
@ -46,7 +46,6 @@ msg_error() {
|
|||
|
||||
start_routines() {
|
||||
header_info
|
||||
VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)"
|
||||
|
||||
CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SOURCES" --menu "The package manager will use the correct sources to update and install packages on your Proxmox VE server.\n \nCorrect Proxmox VE sources?" 14 58 2 \
|
||||
"yes" " " \
|
||||
|
@ -55,10 +54,11 @@ start_routines() {
|
|||
yes)
|
||||
msg_info "Correcting Proxmox VE Sources"
|
||||
cat <<EOF >/etc/apt/sources.list
|
||||
deb http://ftp.debian.org/debian ${VERSION} main contrib
|
||||
deb http://ftp.debian.org/debian ${VERSION}-updates main contrib
|
||||
deb http://security.debian.org/debian-security ${VERSION}-security main contrib
|
||||
deb http://deb.debian.org/debian bookworm main contrib
|
||||
deb http://deb.debian.org/debian bookworm-updates main contrib
|
||||
deb http://security.debian.org/debian-security bookworm-security main contrib
|
||||
EOF
|
||||
echo 'APT::Get::Update::SourceListWarnings::NonFreeFirmware "false";' >/etc/apt/apt.conf.d/no-bookworm-firmware.conf
|
||||
msg_ok "Corrected Proxmox VE Sources"
|
||||
;;
|
||||
no)
|
||||
|
@ -73,7 +73,7 @@ EOF
|
|||
yes)
|
||||
msg_info "Disabling 'pve-enterprise' repository"
|
||||
cat <<EOF >/etc/apt/sources.list.d/pve-enterprise.list
|
||||
# deb https://enterprise.proxmox.com/debian/pve ${VERSION} pve-enterprise
|
||||
# deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise
|
||||
EOF
|
||||
msg_ok "Disabled 'pve-enterprise' repository"
|
||||
;;
|
||||
|
@ -89,7 +89,7 @@ EOF
|
|||
yes)
|
||||
msg_info "Enabling 'pve-no-subscription' repository"
|
||||
cat <<EOF >/etc/apt/sources.list.d/pve-install-repo.list
|
||||
deb http://download.proxmox.com/debian/pve ${VERSION} pve-no-subscription
|
||||
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription
|
||||
EOF
|
||||
msg_ok "Enabled 'pve-no-subscription' repository"
|
||||
;;
|
||||
|
@ -98,7 +98,6 @@ EOF
|
|||
;;
|
||||
esac
|
||||
|
||||
if [[ "${VERSION}" == "bookworm" ]]; then
|
||||
CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "CEPH PACKAGE REPOSITORIES" --menu "The 'Ceph Package Repositories' provides access to both the 'no-subscription' and 'enterprise' repositories (initially disabled).\n \nCorrect 'ceph package sources?" 14 58 2 \
|
||||
"yes" " " \
|
||||
"no" " " 3>&2 2>&1 1>&3)
|
||||
|
@ -117,7 +116,6 @@ EOF
|
|||
msg_error "Selected no to Correcting 'ceph package repositories'"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "PVETEST" --menu "The 'pvetest' repository can give advanced users access to new features and updates before they are officially released.\n \nAdd (Disabled) 'pvetest' repository?" 14 58 2 \
|
||||
"yes" " " \
|
||||
|
@ -126,7 +124,7 @@ EOF
|
|||
yes)
|
||||
msg_info "Adding 'pvetest' repository and set disabled"
|
||||
cat <<EOF >/etc/apt/sources.list.d/pvetest-for-beta.list
|
||||
# deb http://download.proxmox.com/debian/pve ${VERSION} pvetest
|
||||
# deb http://download.proxmox.com/debian/pve bookworm pvetest
|
||||
EOF
|
||||
msg_ok "Added 'pvetest' repository"
|
||||
;;
|
||||
|
@ -233,9 +231,11 @@ while true; do
|
|||
esac
|
||||
done
|
||||
|
||||
if ! command -v pveversion >/dev/null 2>&1; then
|
||||
header_info
|
||||
msg_error "\n No PVE Detected!\n"
|
||||
if ! pveversion | grep -Eq "pve-manager/(8.1.[1-9])"; then
|
||||
msg_error "This version of Proxmox Virtual Environment is not supported"
|
||||
echo -e "Requires Proxmox Virtual Environment Version 8.1.1 or later."
|
||||
echo -e "Exiting..."
|
||||
sleep 2
|
||||
exit
|
||||
fi
|
||||
|
||||
|
|
Loading…
Reference in New Issue