mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-07-27 08:17:36 +00:00
Compare commits
78 Commits
add-json-t
...
update_ver
Author | SHA1 | Date | |
---|---|---|---|
ac539aee95 | |||
67973ada07 | |||
ac6cf2af7b | |||
8900d12a9d | |||
3e2d9bdd97 | |||
07da06cb75 | |||
e176779d49 | |||
44cee5f303 | |||
22ccd36e55 | |||
c688887f43 | |||
6afa25b06b | |||
02ad46585e | |||
2c57cd815b | |||
72fc8a1880 | |||
72cf24fef4 | |||
a7a6a81596 | |||
470a2593a2 | |||
7efdc02bc4 | |||
c1ebb07416 | |||
9cf83f0ef4 | |||
57a299fe03 | |||
7272c8dd50 | |||
aa9373402e | |||
ff429ded15 | |||
5b6b55d37a | |||
e8e90ce5b5 | |||
1ae40a929b | |||
0484259f39 | |||
cadd0a53bd | |||
c82c185e4e | |||
89b2b21761 | |||
0a722a242f | |||
01be7acf10 | |||
2d66d09de2 | |||
67069cfb21 | |||
e78c590772 | |||
d956763642 | |||
af4aedf15a | |||
e25f3dce52 | |||
eda1b1aea8 | |||
16e2d2206c | |||
33a03f4b0e | |||
5867ef3288 | |||
8ef59b590a | |||
72d6fb40dc | |||
7e9d786202 | |||
ed934a21ff | |||
c9015cca20 | |||
b52e958623 | |||
1f51e96cb1 | |||
de1a93bf6d | |||
8bfb78e001 | |||
4fa4ed35cc | |||
4a050f3723 | |||
9304835775 | |||
a2fa104176 | |||
3c0888abdd | |||
d6af60f0c0 | |||
0a83090ad2 | |||
035419b4b9 | |||
d19130d8f1 | |||
b36f982fc2 | |||
d67fa6cf38 | |||
4201ab58ab | |||
0f3b95b3ff | |||
feea82e0ba | |||
0e0c954f0c | |||
6b74f6247f | |||
4159ba3970 | |||
a53daa3559 | |||
4b3233d6a8 | |||
ff51b1e5dc | |||
1aab127bdf | |||
baf7dff759 | |||
b4ec04a54f | |||
2ee8269684 | |||
84860a9893 | |||
ebb7da43c1 |
75
CHANGELOG.md
75
CHANGELOG.md
@ -10,20 +10,81 @@
|
||||
> [!CAUTION]
|
||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
||||
|
||||
## 2025-07-22
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- LinkStack ([#6137](https://github.com/community-scripts/ProxmoxVE/pull/6137))
|
||||
## 2025-07-26
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- PiAlert: Update dependencies [@leiweibau](https://github.com/leiweibau) ([#6251](https://github.com/community-scripts/ProxmoxVE/pull/6251))
|
||||
|
||||
## 2025-07-25
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Cleanuparr ([#6238](https://github.com/community-scripts/ProxmoxVE/pull/6238))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Immich: fix #6236 [@vhsdream](https://github.com/vhsdream) ([#6243](https://github.com/community-scripts/ProxmoxVE/pull/6243))
|
||||
- Wizarr: use absolute path to uv [@vhsdream](https://github.com/vhsdream) ([#6221](https://github.com/community-scripts/ProxmoxVE/pull/6221))
|
||||
- Immich v1.136.0 [@vhsdream](https://github.com/vhsdream) ([#6219](https://github.com/community-scripts/ProxmoxVE/pull/6219))
|
||||
|
||||
## 2025-07-24
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Alpine TeamSpeak Server [@tremor021](https://github.com/tremor021) ([#6201](https://github.com/community-scripts/ProxmoxVE/pull/6201))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Immich: Pin Version to v1.135.3 [@MickLesk](https://github.com/MickLesk) ([#6212](https://github.com/community-scripts/ProxmoxVE/pull/6212))
|
||||
- Habitica: force npm to 10 [@MickLesk](https://github.com/MickLesk) ([#6192](https://github.com/community-scripts/ProxmoxVE/pull/6192))
|
||||
- sabnzbd: add uv setup in update [@MickLesk](https://github.com/MickLesk) ([#6191](https://github.com/community-scripts/ProxmoxVE/pull/6191))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- SnipeIT - Update dependencies [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#6217](https://github.com/community-scripts/ProxmoxVE/pull/6217))
|
||||
- Refactor: VictoriaMetrics [@tremor021](https://github.com/tremor021) ([#6210](https://github.com/community-scripts/ProxmoxVE/pull/6210))
|
||||
- Headscale: Add headscale-admin UI as option [@tremor021](https://github.com/tremor021) ([#6205](https://github.com/community-scripts/ProxmoxVE/pull/6205))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: Gokapi [@tremor021](https://github.com/tremor021) ([#6197](https://github.com/community-scripts/ProxmoxVE/pull/6197))
|
||||
- Refactor: duplicati [@tremor021](https://github.com/tremor021) ([#6202](https://github.com/community-scripts/ProxmoxVE/pull/6202))
|
||||
- Refactor: go2rtc [@tremor021](https://github.com/tremor021) ([#6198](https://github.com/community-scripts/ProxmoxVE/pull/6198))
|
||||
- Refactor: Headscale [@tremor021](https://github.com/tremor021) ([#6180](https://github.com/community-scripts/ProxmoxVE/pull/6180))
|
||||
|
||||
## 2025-07-23
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- documenso: remove customerId by creating initial user [@MickLesk](https://github.com/MickLesk) ([#6171](https://github.com/community-scripts/ProxmoxVE/pull/6171))
|
||||
|
||||
## 2025-07-22
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Salt ([#6116](https://github.com/community-scripts/ProxmoxVE/pull/6116))
|
||||
- LinkStack ([#6137](https://github.com/community-scripts/ProxmoxVE/pull/6137))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- tools.func - fix typo for target_file [@tjcomserv](https://github.com/tjcomserv) ([#6156](https://github.com/community-scripts/ProxmoxVE/pull/6156))
|
||||
- fix(nginxproxymanager.sh): Set the version number before build. [@JMarcosHP](https://github.com/JMarcosHP) ([#6139](https://github.com/community-scripts/ProxmoxVE/pull/6139))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Fixed the previous fix of the anti-nag hook and propagated fixes everywhere [@imcrazytwkr](https://github.com/imcrazytwkr) ([#6162](https://github.com/community-scripts/ProxmoxVE/pull/6162))
|
||||
- [core]: Improved LXC Container Startup Handling [@MickLesk](https://github.com/MickLesk) ([#6142](https://github.com/community-scripts/ProxmoxVE/pull/6142))
|
||||
- wallos: add cron in installer for yearly cost [@CrazyWolf13](https://github.com/CrazyWolf13) ([#6133](https://github.com/community-scripts/ProxmoxVE/pull/6133))
|
||||
|
||||
- #### 💥 Breaking Changes
|
||||
@ -34,6 +95,10 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
- [core]: tools.func: increase setup_php function [@MickLesk](https://github.com/MickLesk) ([#6141](https://github.com/community-scripts/ProxmoxVE/pull/6141))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- Bump form-data from 4.0.3 to 4.0.4 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#6150](https://github.com/community-scripts/ProxmoxVE/pull/6150))
|
||||
|
||||
## 2025-07-21
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
58
ct/alpine-teamspeak-server.sh
Normal file
58
ct/alpine-teamspeak-server.sh
Normal file
@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: tremor021 (Slaviša Arežina)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://teamspeak.com/en/
|
||||
|
||||
APP="Alpine-TeamSpeak-Server"
|
||||
var_tags="${var_tags:-alpine;communication}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-256}"
|
||||
var_disk="${var_disk:-2}"
|
||||
var_os="${var_os:-alpine}"
|
||||
var_version="${var_version:-3.22}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
|
||||
if [[ ! -d /opt/teamspeak-server ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set +o pipefail && RELEASE=$(curl -fsSL https://teamspeak.com/en/downloads/#server | sed -n 's/.teamspeak3-server_linux_amd64-([0-9]+.[0-9]+.[0-9]+)./\1/p' | head -1) && set -o pipefail
|
||||
|
||||
if [ "${RELEASE}" != "$(cat ~/.teamspeak-server)" ] || [ ! -f ~/.teamspeak-server ]; then
|
||||
msg_info "Updating ${APP} LXC"
|
||||
$STD apk -U upgrade
|
||||
$STD service teamspeak stop
|
||||
curl -fsSL "https://files.teamspeak-services.com/releases/server/${RELEASE}/teamspeak3-server_linux_amd64-${RELEASE}.tar.bz2" -o ts3server.tar.bz2
|
||||
tar -xf ./ts3server.tar.bz2
|
||||
cp -ru teamspeak3-server_linux_amd64/* /opt/teamspeak-server/
|
||||
rm -f ~/ts3server.tar.bz*
|
||||
rm -rf teamspeak3-server_linux_amd64
|
||||
echo "${RELEASE}" >~/.teamspeak-server
|
||||
$STD service teamspeak start
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following IP:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}${IP}:9987${CL}"
|
56
ct/cleanuparr.sh
Executable file
56
ct/cleanuparr.sh
Executable file
@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: Lucas Zampieri (zampierilucas) | MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/Cleanuparr/Cleanuparr
|
||||
|
||||
APP="Cleanuparr"
|
||||
var_tags="${var_tags:-arr}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-1024}"
|
||||
var_disk="${var_disk:-4}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-12}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -f /opt/cleanuparr/Cleanuparr ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Cleanuparr/Cleanuparr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.Cleanuparr 2>/dev/null)" ]] || [[ ! -f ~/.Cleanuparr ]]; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop cleanuparr
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "$RELEASE" "/opt/cleanuparr" "*linux-amd64.zip"
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start cleanuparr
|
||||
msg_ok "Started ${APP}"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:11011${CL}"
|
@ -27,25 +27,19 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/duplicati/duplicati/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
|
||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||
if [[ "${RELEASE}" != "$(cat ~/.duplicati)" ]] || [[ ! -f ~/.duplicati ]]; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop duplicati
|
||||
msg_ok "Stopped $APP"
|
||||
msg_info "Updating $APP to v${RELEASE}"
|
||||
curl -fsSL "https://github.com/duplicati/duplicati/releases/download/v${RELEASE}/duplicati-${RELEASE}-linux-x64-gui.deb" -o $(basename "https://github.com/duplicati/duplicati/releases/download/v${RELEASE}/duplicati-${RELEASE}-linux-x64-gui.deb")
|
||||
$STD dpkg -i duplicati-${RELEASE}-linux-x64-gui.deb
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
|
||||
fetch_and_deploy_gh_release "duplicati" "duplicati/duplicati" "binary" "latest" "/opt/duplicati" "linux-x64-gui.deb"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start duplicati
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_info "Cleaning Up"
|
||||
rm -rf ~/duplicati-${RELEASE}-linux-x64-gui.deb
|
||||
msg_ok "Cleanup Completed"
|
||||
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
|
25
ct/go2rtc.sh
25
ct/go2rtc.sh
@ -27,14 +27,23 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating $APP"
|
||||
systemctl stop go2rtc
|
||||
cd /opt/go2rtc
|
||||
rm go2rtc_linux_amd64
|
||||
curl -fsSL "https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64" -o $(basename "https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64")
|
||||
chmod +x go2rtc_linux_amd64
|
||||
systemctl start go2rtc
|
||||
msg_ok "Updated $APP"
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/AlexxIT/go2rtc/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.go2rtc 2>/dev/null)" ]] || [[ ! -f ~/.go2rtc ]]; then
|
||||
msg_info "Stopping service"
|
||||
systemctl stop go2rtc
|
||||
msg_ok "Stopped service"
|
||||
|
||||
fetch_and_deploy_gh_release "go2rtc" "AlexxIT/go2rtc" "singlefile" "latest" "/opt/go2rtc" "go2rtc_linux_amd64"
|
||||
|
||||
msg_info "Starting service"
|
||||
systemctl start go2rtc
|
||||
msg_ok "Started service"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
|
25
ct/gokapi.sh
25
ct/gokapi.sh
@ -27,8 +27,27 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_error "Currently we don't provide an update function for this ${APP}."
|
||||
exit
|
||||
if [[ -f /opt/${APP}_version.txt ]]; then
|
||||
mv /opt/${APP}_version ~/.gokapi
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Forceu/Gokapi/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.gokapi 2>/dev/null)" ]] || [[ ! -f ~/.gokapi ]]; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop gokapi
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
fetch_and_deploy_gh_release "gokapi" "Forceu/Gokapi" "prebuild" "latest" "/opt/gokapi" "gokapi-linux_amd64.zip"
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start gokapi
|
||||
msg_ok "Started ${APP}"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
@ -38,4 +57,4 @@ description
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:53842/setup${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:53842/setup${CL}"
|
||||
|
6
ct/headers/alpine-teamspeak-server
Normal file
6
ct/headers/alpine-teamspeak-server
Normal file
@ -0,0 +1,6 @@
|
||||
___ __ _ ______ _____ __ _____
|
||||
/ | / /___ (_)___ ___ /_ __/__ ____ _____ ___ / ___/____ ___ ____ _/ /__ / ___/___ ______ _____ _____
|
||||
/ /| | / / __ \/ / __ \/ _ \______/ / / _ \/ __ `/ __ `__ \\__ \/ __ \/ _ \/ __ `/ //_/_____\__ \/ _ \/ ___/ | / / _ \/ ___/
|
||||
/ ___ |/ / /_/ / / / / / __/_____/ / / __/ /_/ / / / / / /__/ / /_/ / __/ /_/ / ,< /_____/__/ / __/ / | |/ / __/ /
|
||||
/_/ |_/_/ .___/_/_/ /_/\___/ /_/ \___/\__,_/_/ /_/ /_/____/ .___/\___/\__,_/_/|_| /____/\___/_/ |___/\___/_/
|
||||
/_/ /_/
|
6
ct/headers/cleanuparr
Normal file
6
ct/headers/cleanuparr
Normal file
@ -0,0 +1,6 @@
|
||||
________
|
||||
/ ____/ /__ ____ _____ __ ______ ____ ___________
|
||||
/ / / / _ \/ __ `/ __ \/ / / / __ \/ __ `/ ___/ ___/
|
||||
/ /___/ / __/ /_/ / / / / /_/ / /_/ / /_/ / / / /
|
||||
\____/_/\___/\__,_/_/ /_/\__,_/ .___/\__,_/_/ /_/
|
||||
/_/
|
6
ct/headers/salt
Normal file
6
ct/headers/salt
Normal file
@ -0,0 +1,6 @@
|
||||
_____ ____
|
||||
/ ___/____ _/ / /_
|
||||
\__ \/ __ `/ / __/
|
||||
___/ / /_/ / / /_
|
||||
/____/\__,_/_/\__/
|
||||
|
@ -27,18 +27,18 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if [[ -f /opt/${APP}_version.txt ]]; then
|
||||
mv /opt/"${APP}_version.txt" ~/.headscale
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/juanfont/headscale/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||
if [[ "${RELEASE}" != "$(cat ~/.headscale 2>/dev/null)" ]] || [[ ! -f ~/.headscale ]]; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop headscale
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
msg_info "Updating $APP to v${RELEASE}"
|
||||
curl -fsSL "https://github.com/juanfont/headscale/releases/download/v${RELEASE}/headscale_${RELEASE}_linux_amd64.deb" -o $(basename "https://github.com/juanfont/headscale/releases/download/v${RELEASE}/headscale_${RELEASE}_linux_amd64.deb")
|
||||
dpkg -i headscale_${RELEASE}_linux_amd64.deb
|
||||
rm headscale_${RELEASE}_linux_amd64.deb
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated $APP to ${RELEASE}"
|
||||
fetch_and_deploy_gh_release "headscale" "juanfont/headscale" "binary"
|
||||
fetch_and_deploy_gh_release "headscale-admin" "GoodiesHQ/headscale-admin" "prebuild" "latest" "/opt/headscale-admin" "admin.zip"
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
# Temporary fix until headscale project resolves service getting disabled on updates.
|
||||
|
@ -58,7 +58,8 @@ function update_script() {
|
||||
done
|
||||
msg_ok "Image-processing libraries updated"
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/immich-app/immich/releases?per_page=1 | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
RELEASE="1.136.0"
|
||||
#RELEASE=$(curl -fsSL https://api.github.com/repos/immich-app/immich/releases?per_page=1 | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ -f ~/.immich && "$RELEASE" == "$(cat ~/.immich)" ]]; then
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
exit
|
||||
@ -102,7 +103,7 @@ function update_script() {
|
||||
mkdir -p "$ML_DIR"
|
||||
rm -rf "$SRC_DIR"
|
||||
|
||||
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "latest" "$SRC_DIR"
|
||||
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.136.0" "$SRC_DIR"
|
||||
|
||||
msg_info "Updating ${APP} web and microservices"
|
||||
cd "$SRC_DIR"/server
|
||||
@ -120,7 +121,7 @@ function update_script() {
|
||||
$STD npm ci
|
||||
$STD npm run build
|
||||
cd "$SRC_DIR"
|
||||
cp -a server/{node_modules,dist,bin,resources,package.json,package-lock.json,start*.sh} "$APP_DIR"/
|
||||
cp -a server/{node_modules,dist,bin,resources,package.json,package-lock.json,bin/start.sh} "$APP_DIR"/
|
||||
cp -a web/build "$APP_DIR"/www
|
||||
cp LICENSE "$APP_DIR"
|
||||
cd "$APP_DIR"
|
||||
|
@ -34,6 +34,7 @@ function update_script() {
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
exit
|
||||
fi
|
||||
setup_uv
|
||||
msg_info "Updating $APP to ${RELEASE}"
|
||||
systemctl stop sabnzbd
|
||||
cp -r /opt/sabnzbd /opt/sabnzbd_backup_$(date +%s)
|
||||
|
50
ct/salt.sh
Normal file
50
ct/salt.sh
Normal file
@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: bvdberg01
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/saltstack/salt
|
||||
|
||||
APP="Salt"
|
||||
var_tags="${var_tags:-automations}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-1024}"
|
||||
var_disk="${var_disk:-3}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-12}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -d /etc/salt ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/saltstack/salt/releases/latest | jq -r .tag_name | sed 's/^v//')
|
||||
if [[ ! -f /~.salt ]] || [[ "${RELEASE}" != "$(cat /~.salt)" ]]; then
|
||||
msg_info "Updating $APP to ${RELEASE}"
|
||||
sed -i "s/^\(Pin: version \).*/\1${RELEASE}/" /etc/apt/preferences.d/salt-pin-1001
|
||||
$STD apt-get update
|
||||
$STD apt-get upgrade -y
|
||||
echo "${RELEASE}" >/~.salt
|
||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||
else
|
||||
msg_ok "${APP} is already up to date (${RELEASE})"
|
||||
fi
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
@ -27,31 +27,25 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/VictoriaMetrics/VictoriaMetrics/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
if [[ ! -f ~/.victoriametrics ]] || [[ "${RELEASE}" != "$(cat ~/.victoriametrics)" ]]; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop victoriametrics
|
||||
[[ -f /etc/systemd/system/victoriametrics-logs.service ]] && systemctl stop victoriametrics-logs
|
||||
msg_ok "Stopped $APP"
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
temp_dir=$(mktemp -d)
|
||||
cd $temp_dir
|
||||
curl -fsSL "https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v${RELEASE}/victoria-metrics-linux-amd64-v${RELEASE}.tar.gz" -o $(basename "https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v${RELEASE}/victoria-metrics-linux-amd64-v${RELEASE}.tar.gz")
|
||||
curl -fsSL "https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v${RELEASE}/vmutils-linux-amd64-v${RELEASE}.tar.gz" -o $(basename "https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v${RELEASE}/vmutils-linux-amd64-v${RELEASE}.tar.gz")
|
||||
find /opt/victoriametrics -maxdepth 1 -type f -executable -delete
|
||||
tar -xf victoria-metrics-linux-amd64-v${RELEASE}.tar.gz -C /opt/victoriametrics
|
||||
tar -xf vmutils-linux-amd64-v${RELEASE}.tar.gz -C /opt/victoriametrics
|
||||
fetch_and_deploy_gh_release "victoriametrics" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "victoria-metrics-linux-amd64-v+([0-9.]).tar.gz"
|
||||
fetch_and_deploy_gh_release "vmutils" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "vmutils-linux-amd64-v+([0-9.]).tar.gz"
|
||||
fetch_and_deploy_gh_release "victorialogs" "VictoriaMetrics/VictoriaLogs" "prebuild" "latest" "/opt/victoriametrics" "victoria-logs-linux-amd64*.tar.gz"
|
||||
fetch_and_deploy_gh_release "vlutils" "VictoriaMetrics/VictoriaLogs" "prebuild" "latest" "/opt/victoriametrics" "vlutils-linux-amd64*.tar.gz"
|
||||
chmod +x /opt/victoriametrics/*
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start victoriametrics
|
||||
[[ -f /etc/systemd/system/victoriametrics-logs.service ]] && systemctl start victoriametrics-logs
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_info "Cleaning Up"
|
||||
rm -rf $temp_dir
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
|
@ -45,13 +45,13 @@ function update_script() {
|
||||
|
||||
msg_info "Updating $APP to v${RELEASE}"
|
||||
cd /opt/wizarr
|
||||
uv -q sync --locked
|
||||
$STD uv -q run pybabel compile -d app/translations
|
||||
/usr/local/bin/uv -q sync --locked
|
||||
$STD /usr/local/bin/uv -q run pybabel compile -d app/translations
|
||||
$STD npm --prefix app/static install
|
||||
$STD npm --prefix app/static run build:css
|
||||
mkdir -p ./.cache
|
||||
$STD tar -xf "$BACKUP_FILE" --directory=/
|
||||
$STD uv -q run flask db upgrade
|
||||
$STD /usr/local/bin/uv -q run flask db upgrade
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
|
6
frontend/package-lock.json
generated
6
frontend/package-lock.json
generated
@ -7749,9 +7749,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/form-data": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz",
|
||||
"integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==",
|
||||
"version": "4.0.4",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
|
||||
"integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
@ -1,40 +0,0 @@
|
||||
{
|
||||
"name": "Calibre-Web",
|
||||
"slug": "calibre-web",
|
||||
"categories": [
|
||||
11
|
||||
],
|
||||
"date_created": "2024-05-02",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 8083,
|
||||
"documentation": "https://github.com/janeczku/calibre-web/wiki",
|
||||
"website": "https://github.com/janeczku/calibre-web",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/calibre-web.webp",
|
||||
"config_path": "",
|
||||
"description": "Calibre-Web is a web app for browsing, reading and downloading eBooks stored in a Calibre database.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/calibre-web.sh",
|
||||
"resources": {
|
||||
"cpu": 2,
|
||||
"ram": 2048,
|
||||
"hdd": 4,
|
||||
"os": "debian",
|
||||
"version": "12"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": "admin",
|
||||
"password": "admin123"
|
||||
},
|
||||
"notes": [
|
||||
{
|
||||
"text": "Add Calibre-Web Extras via `update`",
|
||||
"type": "info"
|
||||
}
|
||||
]
|
||||
}
|
35
frontend/public/json/cleanuparr.json
Normal file
35
frontend/public/json/cleanuparr.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"name": "Cleanuparr",
|
||||
"slug": "cleanuparr",
|
||||
"categories": [
|
||||
14
|
||||
],
|
||||
"date_created": "2025-07-25",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 11011,
|
||||
"documentation": "https://cleanuparr.github.io/Cleanuparr/docs/",
|
||||
"website": "https://github.com/Cleanuparr/Cleanuparr",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/cleanuparr.webp",
|
||||
"config_path": "/opt/cleanuparr/config",
|
||||
"description": "Cleanuparr is a tool for automating the cleanup of unwanted or blocked files in Sonarr, Radarr, and supported download clients like qBittorrent, Transmission, and Deluge. It removes incomplete, blocked, or malicious downloads and can trigger replacement searches to ensure your media library stays complete and up-to-date.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/cleanuparr.sh",
|
||||
"resources": {
|
||||
"cpu": 2,
|
||||
"ram": 1024,
|
||||
"hdd": 4,
|
||||
"os": "debian",
|
||||
"version": "12"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": []
|
||||
}
|
@ -35,6 +35,10 @@
|
||||
{
|
||||
"text": "Configuration settings: `/etc/headscale/config.yaml`",
|
||||
"type": "info"
|
||||
},
|
||||
{
|
||||
"text": "Access headscale-admin UI via `http://<LXC-IP>/admin/`",
|
||||
"type": "info"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
"name": "ONLYOFFICE Docs",
|
||||
"slug": "onlyoffice",
|
||||
"categories": [
|
||||
9
|
||||
12
|
||||
],
|
||||
"date_created": "2025-06-24",
|
||||
"type": "ct",
|
||||
|
@ -33,7 +33,7 @@
|
||||
},
|
||||
"notes": [
|
||||
{
|
||||
"text": "Create Proxmox-API-Token first: `https://github.com/rcourtman/Pulse?tab=readme-ov-file#creating-a-proxmox-api-token`",
|
||||
"text": "Create Proxmox-API-Token first: `https://github.com/rcourtman/Pulse?tab=readme-ov-file#creating-api-token`",
|
||||
"type": "Info"
|
||||
},
|
||||
{
|
||||
|
35
frontend/public/json/salt.json
Normal file
35
frontend/public/json/salt.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"name": "Salt",
|
||||
"slug": "salt",
|
||||
"categories": [
|
||||
19
|
||||
],
|
||||
"date_created": "2025-07-22",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"config_path": "/opt/salt/.env",
|
||||
"interface_port": 3000,
|
||||
"documentation": "https://docs.saltproject.io/salt/install-guide/en/latest/",
|
||||
"website": "https://saltproject.io/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/salt.webp",
|
||||
"description": "SaltStack Salt is a software for automating the management and configuration of IT infrastructure and applications. It is an event-driven automation tool and framework used to deploy, configure, and manage complex IT systems. Its primary functions include configuration management, where it ensures consistent configurations and manages operating system deployment and software installation. It also automates and orchestrates routine IT processes and can create self-aware, self-healing systems.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/salt.sh",
|
||||
"resources": {
|
||||
"cpu": 1,
|
||||
"ram": 1024,
|
||||
"hdd": 3,
|
||||
"os": "Debian",
|
||||
"version": "12"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": []
|
||||
}
|
@ -1,40 +1,55 @@
|
||||
{
|
||||
"name": "Teamspeak-Server",
|
||||
"slug": "teamspeak-server",
|
||||
"categories": [
|
||||
24
|
||||
],
|
||||
"date_created": "2025-07-21",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 9987,
|
||||
"documentation": "https://support.teamspeak.com/hc/en-us/categories/360000302017-TeamSpeak-3",
|
||||
"website": "https://teamspeak.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/teamspeak-light.webp",
|
||||
"config_path": "",
|
||||
"description": "TeamSpeak is a voice over IP (VoIP) application, primarily used by gamers and teams to chat in real time on dedicated servers. It delivers crystal‑clear, low‑latency voice communication.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/teamspeak-server.sh",
|
||||
"resources": {
|
||||
"cpu": 1,
|
||||
"ram": 512,
|
||||
"hdd": 2,
|
||||
"os": "debian",
|
||||
"version": "12"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
"name": "Teamspeak-Server",
|
||||
"slug": "teamspeak-server",
|
||||
"categories": [
|
||||
24
|
||||
],
|
||||
"date_created": "2025-07-21",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 9987,
|
||||
"documentation": "https://support.teamspeak.com/hc/en-us/categories/360000302017-TeamSpeak-3",
|
||||
"website": "https://teamspeak.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/teamspeak-light.webp",
|
||||
"config_path": "",
|
||||
"description": "TeamSpeak is a voice over IP (VoIP) application, primarily used by gamers and teams to chat in real time on dedicated servers. It delivers crystal‑clear, low‑latency voice communication.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/teamspeak-server.sh",
|
||||
"resources": {
|
||||
"cpu": 1,
|
||||
"ram": 512,
|
||||
"hdd": 2,
|
||||
"os": "debian",
|
||||
"version": "12"
|
||||
}
|
||||
},
|
||||
"notes": [
|
||||
{
|
||||
"text": "Use `journalctl -u teamspeak-server.service` inside LXC console to check for admin credentials!",
|
||||
"type": "info"
|
||||
}
|
||||
]
|
||||
{
|
||||
"type": "alpine",
|
||||
"script": "ct/alpine-teamspeak-server.sh",
|
||||
"resources": {
|
||||
"cpu": 1,
|
||||
"ram": 256,
|
||||
"hdd": 2,
|
||||
"os": "alpine",
|
||||
"version": "3.22"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": [
|
||||
{
|
||||
"text": "Use `journalctl -u teamspeak-server.service` inside Debian LXC console to check for admin credentials!",
|
||||
"type": "info"
|
||||
},
|
||||
{
|
||||
"text": "Use `cat /var/log/teamspeak.err.log` inside Alpine LXC console to check for admin credentials!",
|
||||
"type": "info"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -1,19 +1,289 @@
|
||||
[
|
||||
{
|
||||
"name": "aceberg/WatchYourLAN",
|
||||
"version": "2.1.3",
|
||||
"date": "2025-07-26T14:19:00Z"
|
||||
},
|
||||
{
|
||||
"name": "blakeblackshear/frigate",
|
||||
"version": "v0.14.1",
|
||||
"date": "2024-08-29T22:32:51Z"
|
||||
},
|
||||
{
|
||||
"name": "MediaBrowser/Emby.Releases",
|
||||
"version": "4.9.1.2",
|
||||
"date": "2025-06-26T22:08:00Z"
|
||||
},
|
||||
{
|
||||
"name": "Jackett/Jackett",
|
||||
"version": "v0.22.2196",
|
||||
"date": "2025-07-26T05:57:45Z"
|
||||
},
|
||||
{
|
||||
"name": "steveiliop56/tinyauth",
|
||||
"version": "v3.6.2",
|
||||
"date": "2025-07-17T12:08:03Z"
|
||||
},
|
||||
{
|
||||
"name": "henrygd/beszel",
|
||||
"version": "v0.12.1",
|
||||
"date": "2025-07-25T23:53:12Z"
|
||||
},
|
||||
{
|
||||
"name": "gtsteffaniak/filebrowser",
|
||||
"version": "v0.7.17-beta",
|
||||
"date": "2025-07-25T22:03:43Z"
|
||||
},
|
||||
{
|
||||
"name": "ollama/ollama",
|
||||
"version": "v0.10.0-rc2",
|
||||
"date": "2025-07-25T21:24:06Z"
|
||||
},
|
||||
{
|
||||
"name": "homarr-labs/homarr",
|
||||
"version": "v1.30.1",
|
||||
"date": "2025-07-25T19:18:09Z"
|
||||
},
|
||||
{
|
||||
"name": "keycloak/keycloak",
|
||||
"version": "26.3.2",
|
||||
"date": "2025-07-24T10:14:27Z"
|
||||
},
|
||||
{
|
||||
"name": "tailscale/tailscale",
|
||||
"version": "v1.86.1",
|
||||
"date": "2025-07-25T17:55:38Z"
|
||||
},
|
||||
{
|
||||
"name": "openobserve/openobserve",
|
||||
"version": "v0.15.0-rc4",
|
||||
"date": "2025-07-25T16:50:34Z"
|
||||
},
|
||||
{
|
||||
"name": "fuma-nama/fumadocs",
|
||||
"version": "fumadocs-openapi@9.1.5",
|
||||
"date": "2025-07-25T16:20:20Z"
|
||||
},
|
||||
{
|
||||
"name": "heiher/hev-socks5-server",
|
||||
"version": "2.9.0",
|
||||
"date": "2025-07-25T14:20:25Z"
|
||||
},
|
||||
{
|
||||
"name": "forgejo/forgejo",
|
||||
"version": "v12.0.1",
|
||||
"date": "2025-07-25T11:54:30Z"
|
||||
},
|
||||
{
|
||||
"name": "Luligu/matterbridge",
|
||||
"version": "3.1.7",
|
||||
"date": "2025-07-25T10:19:56Z"
|
||||
},
|
||||
{
|
||||
"name": "morpheus65535/bazarr",
|
||||
"version": "v1.5.3-beta.10",
|
||||
"date": "2025-07-15T06:07:03Z"
|
||||
},
|
||||
{
|
||||
"name": "ErsatzTV/ErsatzTV",
|
||||
"version": "v25.3.1",
|
||||
"date": "2025-07-25T03:39:31Z"
|
||||
},
|
||||
{
|
||||
"name": "TryGhost/Ghost-CLI",
|
||||
"version": "v1.28.0",
|
||||
"date": "2025-07-25T01:21:13Z"
|
||||
},
|
||||
{
|
||||
"name": "Brandawg93/PeaNUT",
|
||||
"version": "v5.10.0",
|
||||
"date": "2025-07-24T23:33:09Z"
|
||||
},
|
||||
{
|
||||
"name": "coder/code-server",
|
||||
"version": "v4.102.2",
|
||||
"date": "2025-07-24T22:42:01Z"
|
||||
},
|
||||
{
|
||||
"name": "linuxserver/Heimdall",
|
||||
"version": "v2.7.3",
|
||||
"date": "2025-07-24T18:07:21Z"
|
||||
},
|
||||
{
|
||||
"name": "docker/compose",
|
||||
"version": "v2.39.1",
|
||||
"date": "2025-07-24T17:02:01Z"
|
||||
},
|
||||
{
|
||||
"name": "wizarrrr/wizarr",
|
||||
"version": "2025.7.7",
|
||||
"date": "2025-07-24T16:44:19Z"
|
||||
},
|
||||
{
|
||||
"name": "immich-app/immich",
|
||||
"version": "v1.136.0",
|
||||
"date": "2025-07-24T16:42:30Z"
|
||||
},
|
||||
{
|
||||
"name": "meilisearch/meilisearch",
|
||||
"version": "prototype-cellulite-1",
|
||||
"date": "2025-07-24T16:32:57Z"
|
||||
},
|
||||
{
|
||||
"name": "grokability/snipe-it",
|
||||
"version": "v8.2.1",
|
||||
"date": "2025-07-24T14:37:54Z"
|
||||
},
|
||||
{
|
||||
"name": "Stirling-Tools/Stirling-PDF",
|
||||
"version": "v1.1.0",
|
||||
"date": "2025-07-24T14:08:58Z"
|
||||
},
|
||||
{
|
||||
"name": "glpi-project/glpi",
|
||||
"version": "10.0.19",
|
||||
"date": "2025-07-16T09:45:14Z"
|
||||
},
|
||||
{
|
||||
"name": "Paymenter/Paymenter",
|
||||
"version": "v1.2.5",
|
||||
"date": "2025-07-24T11:52:16Z"
|
||||
},
|
||||
{
|
||||
"name": "Checkmk/checkmk",
|
||||
"version": "v2.3.0p35-rc2",
|
||||
"date": "2025-07-24T07:00:54Z"
|
||||
},
|
||||
{
|
||||
"name": "zwave-js/zwave-js-ui",
|
||||
"version": "v10.10.0",
|
||||
"date": "2025-07-24T06:15:19Z"
|
||||
},
|
||||
{
|
||||
"name": "firefly-iii/firefly-iii",
|
||||
"version": "v6.2.21",
|
||||
"date": "2025-07-17T04:46:25Z"
|
||||
},
|
||||
{
|
||||
"name": "advplyr/audiobookshelf",
|
||||
"version": "v2.26.3",
|
||||
"date": "2025-07-23T23:16:46Z"
|
||||
},
|
||||
{
|
||||
"name": "minio/minio",
|
||||
"version": "RELEASE.2025-07-23T15-54-02Z",
|
||||
"date": "2025-07-23T20:35:39Z"
|
||||
},
|
||||
{
|
||||
"name": "grafana/grafana",
|
||||
"version": "v12.1.0",
|
||||
"date": "2025-07-23T19:35:52Z"
|
||||
},
|
||||
{
|
||||
"name": "semaphoreui/semaphore",
|
||||
"version": "v2.16.0-beta6",
|
||||
"date": "2025-07-23T19:18:14Z"
|
||||
},
|
||||
{
|
||||
"name": "fallenbagel/jellyseerr",
|
||||
"version": "preview-plex-home-profile",
|
||||
"date": "2025-07-23T16:40:31Z"
|
||||
},
|
||||
{
|
||||
"name": "jenkinsci/jenkins",
|
||||
"version": "jenkins-2.516.1",
|
||||
"date": "2025-07-23T14:16:23Z"
|
||||
},
|
||||
{
|
||||
"name": "traefik/traefik",
|
||||
"version": "v3.5.0",
|
||||
"date": "2025-07-23T14:06:54Z"
|
||||
},
|
||||
{
|
||||
"name": "Radarr/Radarr",
|
||||
"version": "v5.26.2.10099",
|
||||
"date": "2025-06-11T20:10:39Z"
|
||||
},
|
||||
{
|
||||
"name": "Prowlarr/Prowlarr",
|
||||
"version": "v1.37.0.5076",
|
||||
"date": "2025-06-04T11:04:53Z"
|
||||
},
|
||||
{
|
||||
"name": "n8n-io/n8n",
|
||||
"version": "n8n@1.103.2",
|
||||
"date": "2025-07-22T11:22:26Z"
|
||||
},
|
||||
{
|
||||
"name": "zabbix/zabbix",
|
||||
"version": "7.4.1rc1",
|
||||
"date": "2025-07-23T11:54:39Z"
|
||||
},
|
||||
{
|
||||
"name": "cockpit-project/cockpit",
|
||||
"version": "343",
|
||||
"date": "2025-07-23T11:21:34Z"
|
||||
},
|
||||
{
|
||||
"name": "jhuckaby/Cronicle",
|
||||
"version": "v0.9.85",
|
||||
"date": "2025-07-22T23:49:53Z"
|
||||
},
|
||||
{
|
||||
"name": "raydak-labs/configarr",
|
||||
"version": "v1.13.7",
|
||||
"date": "2025-07-22T20:41:45Z"
|
||||
},
|
||||
{
|
||||
"name": "TasmoAdmin/TasmoAdmin",
|
||||
"version": "v4.3.1",
|
||||
"date": "2025-07-22T20:10:08Z"
|
||||
},
|
||||
{
|
||||
"name": "esphome/esphome",
|
||||
"version": "2025.7.3",
|
||||
"date": "2025-07-22T20:09:49Z"
|
||||
},
|
||||
{
|
||||
"name": "rcourtman/Pulse",
|
||||
"version": "v3.42.0",
|
||||
"date": "2025-07-14T22:07:28Z"
|
||||
},
|
||||
{
|
||||
"name": "msgbyte/tianji",
|
||||
"version": "v1.24.6",
|
||||
"date": "2025-07-22T17:14:21Z"
|
||||
},
|
||||
{
|
||||
"name": "Dolibarr/dolibarr",
|
||||
"version": "21.0.2",
|
||||
"date": "2025-07-22T16:58:05Z"
|
||||
},
|
||||
{
|
||||
"name": "PCJones/UmlautAdaptarr",
|
||||
"version": "v0.7.3",
|
||||
"date": "2025-07-22T14:39:54Z"
|
||||
},
|
||||
{
|
||||
"name": "element-hq/synapse",
|
||||
"version": "v1.134.0",
|
||||
"date": "2025-07-15T13:43:39Z"
|
||||
},
|
||||
{
|
||||
"name": "goauthentik/authentik",
|
||||
"version": "version/2025.4.4",
|
||||
"date": "2025-07-22T13:08:15Z"
|
||||
},
|
||||
{
|
||||
"name": "crowdsecurity/crowdsec",
|
||||
"version": "v1.6.11",
|
||||
"date": "2025-07-22T12:11:38Z"
|
||||
},
|
||||
{
|
||||
"name": "home-assistant/core",
|
||||
"version": "2025.7.3",
|
||||
"date": "2025-07-22T08:30:59Z"
|
||||
},
|
||||
{
|
||||
"name": "Checkmk/checkmk",
|
||||
"version": "v2.3.0p35-rc1",
|
||||
"date": "2025-07-22T07:29:21Z"
|
||||
},
|
||||
{
|
||||
"name": "zabbix/zabbix",
|
||||
"version": "7.2.11",
|
||||
"date": "2025-07-22T07:05:26Z"
|
||||
},
|
||||
{
|
||||
"name": "mattermost/mattermost",
|
||||
"version": "v9.11.18",
|
||||
@ -24,76 +294,31 @@
|
||||
"version": "v0.34.1",
|
||||
"date": "2025-07-22T05:57:50Z"
|
||||
},
|
||||
{
|
||||
"name": "Jackett/Jackett",
|
||||
"version": "v0.22.2182",
|
||||
"date": "2025-07-22T05:55:20Z"
|
||||
},
|
||||
{
|
||||
"name": "lazy-media/Reactive-Resume",
|
||||
"version": "v1.2.2",
|
||||
"date": "2025-07-22T03:12:54Z"
|
||||
},
|
||||
{
|
||||
"name": "steveiliop56/tinyauth",
|
||||
"version": "v3.6.2",
|
||||
"date": "2025-07-17T12:08:03Z"
|
||||
},
|
||||
{
|
||||
"name": "MediaBrowser/Emby.Releases",
|
||||
"version": "4.9.1.2",
|
||||
"date": "2025-06-26T22:08:00Z"
|
||||
},
|
||||
{
|
||||
"name": "advplyr/audiobookshelf",
|
||||
"version": "v2.26.2",
|
||||
"date": "2025-07-21T22:47:38Z"
|
||||
},
|
||||
{
|
||||
"name": "ellite/Wallos",
|
||||
"version": "v4.0.0",
|
||||
"date": "2025-07-21T21:05:02Z"
|
||||
},
|
||||
{
|
||||
"name": "gtsteffaniak/filebrowser",
|
||||
"version": "v0.7.16-beta",
|
||||
"date": "2025-07-21T20:58:02Z"
|
||||
},
|
||||
{
|
||||
"name": "autobrr/autobrr",
|
||||
"version": "v1.64.0",
|
||||
"date": "2025-07-21T20:56:33Z"
|
||||
},
|
||||
{
|
||||
"name": "keycloak/keycloak",
|
||||
"version": "26.2.6",
|
||||
"date": "2025-07-17T11:16:34Z"
|
||||
},
|
||||
{
|
||||
"name": "mongodb/mongo",
|
||||
"version": "r8.2.0-rc0",
|
||||
"date": "2025-07-21T19:07:52Z"
|
||||
},
|
||||
{
|
||||
"name": "fallenbagel/jellyseerr",
|
||||
"version": "v2.7.2",
|
||||
"date": "2025-07-21T18:19:05Z"
|
||||
},
|
||||
{
|
||||
"name": "msgbyte/tianji",
|
||||
"version": "v1.24.5",
|
||||
"date": "2025-07-21T17:04:25Z"
|
||||
},
|
||||
{
|
||||
"name": "HabitRPG/habitica",
|
||||
"version": "v5.37.2",
|
||||
"date": "2025-07-21T14:08:35Z"
|
||||
},
|
||||
{
|
||||
"name": "n8n-io/n8n",
|
||||
"version": "n8n@1.102.4",
|
||||
"date": "2025-07-17T11:27:58Z"
|
||||
},
|
||||
{
|
||||
"name": "tobychui/zoraxy",
|
||||
"version": "v3.2.5r2",
|
||||
@ -114,16 +339,6 @@
|
||||
"version": "pmm-6401-v1.122.0",
|
||||
"date": "2025-07-21T10:40:07Z"
|
||||
},
|
||||
{
|
||||
"name": "linuxserver/Heimdall",
|
||||
"version": "v2.7.1",
|
||||
"date": "2025-07-21T09:13:14Z"
|
||||
},
|
||||
{
|
||||
"name": "homarr-labs/homarr",
|
||||
"version": "v1.30.0",
|
||||
"date": "2025-07-21T08:43:19Z"
|
||||
},
|
||||
{
|
||||
"name": "nzbgetcom/nzbget",
|
||||
"version": "v25.2",
|
||||
@ -139,61 +354,26 @@
|
||||
"version": "v1.6.4",
|
||||
"date": "2025-07-21T05:53:30Z"
|
||||
},
|
||||
{
|
||||
"name": "firefly-iii/firefly-iii",
|
||||
"version": "v6.2.21",
|
||||
"date": "2025-07-17T04:46:25Z"
|
||||
},
|
||||
{
|
||||
"name": "Dolibarr/dolibarr",
|
||||
"version": "21.0.2",
|
||||
"date": "2025-07-20T17:02:07Z"
|
||||
},
|
||||
{
|
||||
"name": "fuma-nama/fumadocs",
|
||||
"version": "fumadocs-openapi@9.1.4",
|
||||
"date": "2025-07-20T13:38:10Z"
|
||||
},
|
||||
{
|
||||
"name": "karakeep-app/karakeep",
|
||||
"version": "sdk/v0.26.0",
|
||||
"date": "2025-07-20T13:26:30Z"
|
||||
},
|
||||
{
|
||||
"name": "wizarrrr/wizarr",
|
||||
"version": "2025.7.6",
|
||||
"date": "2025-07-20T13:02:43Z"
|
||||
},
|
||||
{
|
||||
"name": "OliveTin/OliveTin",
|
||||
"version": "2025.7.19",
|
||||
"date": "2025-07-20T09:44:35Z"
|
||||
},
|
||||
{
|
||||
"name": "semaphoreui/semaphore",
|
||||
"version": "v2.16.0-beta1",
|
||||
"date": "2025-07-20T09:43:36Z"
|
||||
},
|
||||
{
|
||||
"name": "documenso/documenso",
|
||||
"version": "v1.12.2-rc.2",
|
||||
"date": "2025-07-20T07:05:19Z"
|
||||
},
|
||||
{
|
||||
"name": "morpheus65535/bazarr",
|
||||
"version": "v1.5.3-beta.10",
|
||||
"date": "2025-07-15T06:07:03Z"
|
||||
},
|
||||
{
|
||||
"name": "linkwarden/linkwarden",
|
||||
"version": "v2.11.5",
|
||||
"date": "2025-07-20T03:14:42Z"
|
||||
},
|
||||
{
|
||||
"name": "Luligu/matterbridge",
|
||||
"version": "3.1.5",
|
||||
"date": "2025-07-19T21:50:47Z"
|
||||
},
|
||||
{
|
||||
"name": "pelican-dev/panel",
|
||||
"version": "v1.0.0-beta23",
|
||||
@ -224,31 +404,6 @@
|
||||
"version": "v0.29.0",
|
||||
"date": "2025-07-19T08:54:54Z"
|
||||
},
|
||||
{
|
||||
"name": "Paymenter/Paymenter",
|
||||
"version": "v1.2.4",
|
||||
"date": "2025-07-19T07:42:25Z"
|
||||
},
|
||||
{
|
||||
"name": "esphome/esphome",
|
||||
"version": "2025.7.2",
|
||||
"date": "2025-07-19T00:05:00Z"
|
||||
},
|
||||
{
|
||||
"name": "minio/minio",
|
||||
"version": "RELEASE.2025-07-18T21-56-31Z",
|
||||
"date": "2025-07-18T23:56:46Z"
|
||||
},
|
||||
{
|
||||
"name": "Brandawg93/PeaNUT",
|
||||
"version": "v5.9.4",
|
||||
"date": "2025-07-18T21:50:31Z"
|
||||
},
|
||||
{
|
||||
"name": "rcourtman/Pulse",
|
||||
"version": "v3.42.0",
|
||||
"date": "2025-07-14T22:07:28Z"
|
||||
},
|
||||
{
|
||||
"name": "theonedev/onedev",
|
||||
"version": "v12.0.1",
|
||||
@ -269,51 +424,21 @@
|
||||
"version": "e6.0.0-M1.202507-rc.1",
|
||||
"date": "2025-07-18T07:48:52Z"
|
||||
},
|
||||
{
|
||||
"name": "meilisearch/meilisearch",
|
||||
"version": "prototype-chat-completions-with-filters-0",
|
||||
"date": "2025-07-16T08:54:57Z"
|
||||
},
|
||||
{
|
||||
"name": "ollama/ollama",
|
||||
"version": "v0.9.7-rc1",
|
||||
"date": "2025-07-11T22:15:00Z"
|
||||
},
|
||||
{
|
||||
"name": "cross-seed/cross-seed",
|
||||
"version": "v6.13.1",
|
||||
"date": "2025-07-17T21:36:42Z"
|
||||
},
|
||||
{
|
||||
"name": "coder/code-server",
|
||||
"version": "v4.102.1",
|
||||
"date": "2025-07-17T21:20:36Z"
|
||||
},
|
||||
{
|
||||
"name": "duplicati/duplicati",
|
||||
"version": "v2.1.1.0-2.1.1.0_experimental_2025-07-17",
|
||||
"date": "2025-07-17T20:11:33Z"
|
||||
},
|
||||
{
|
||||
"name": "grafana/grafana",
|
||||
"version": "v12.0.2+security-01",
|
||||
"date": "2025-07-17T19:13:19Z"
|
||||
},
|
||||
{
|
||||
"name": "jhuckaby/Cronicle",
|
||||
"version": "v0.9.83",
|
||||
"date": "2025-07-17T17:48:01Z"
|
||||
},
|
||||
{
|
||||
"name": "wavelog/wavelog",
|
||||
"version": "2.0.7",
|
||||
"date": "2025-07-17T15:33:14Z"
|
||||
},
|
||||
{
|
||||
"name": "forgejo/forgejo",
|
||||
"version": "v12.0.0",
|
||||
"date": "2025-07-17T14:38:30Z"
|
||||
},
|
||||
{
|
||||
"name": "oauth2-proxy/oauth2-proxy",
|
||||
"version": "v7.10.0",
|
||||
@ -339,16 +464,6 @@
|
||||
"version": "v0.25.0",
|
||||
"date": "2025-07-16T14:57:02Z"
|
||||
},
|
||||
{
|
||||
"name": "TryGhost/Ghost-CLI",
|
||||
"version": "v1.27.1",
|
||||
"date": "2025-07-16T13:29:00Z"
|
||||
},
|
||||
{
|
||||
"name": "glpi-project/glpi",
|
||||
"version": "10.0.19",
|
||||
"date": "2025-07-16T09:45:14Z"
|
||||
},
|
||||
{
|
||||
"name": "NLnetLabs/unbound",
|
||||
"version": "release-1.23.1",
|
||||
@ -379,16 +494,6 @@
|
||||
"version": "6.8.2",
|
||||
"date": "2025-07-15T15:14:16Z"
|
||||
},
|
||||
{
|
||||
"name": "jenkinsci/jenkins",
|
||||
"version": "jenkins-2.519",
|
||||
"date": "2025-07-15T14:43:59Z"
|
||||
},
|
||||
{
|
||||
"name": "element-hq/synapse",
|
||||
"version": "v1.134.0",
|
||||
"date": "2025-07-15T13:43:39Z"
|
||||
},
|
||||
{
|
||||
"name": "dgtlmoon/changedetection.io",
|
||||
"version": "0.50.7",
|
||||
@ -449,11 +554,6 @@
|
||||
"version": "v4.39.5",
|
||||
"date": "2025-07-13T06:12:47Z"
|
||||
},
|
||||
{
|
||||
"name": "henrygd/beszel",
|
||||
"version": "v0.11.1",
|
||||
"date": "2025-04-29T01:14:35Z"
|
||||
},
|
||||
{
|
||||
"name": "Ombi-app/Ombi",
|
||||
"version": "v4.47.1",
|
||||
@ -464,11 +564,6 @@
|
||||
"version": "v10.10.7",
|
||||
"date": "2025-04-05T19:14:59Z"
|
||||
},
|
||||
{
|
||||
"name": "blakeblackshear/frigate",
|
||||
"version": "v0.14.1",
|
||||
"date": "2024-08-29T22:32:51Z"
|
||||
},
|
||||
{
|
||||
"name": "leiweibau/Pi.Alert",
|
||||
"version": "v2025-07-12",
|
||||
@ -489,16 +584,6 @@
|
||||
"version": "flowise@3.0.4",
|
||||
"date": "2025-07-11T13:26:54Z"
|
||||
},
|
||||
{
|
||||
"name": "zwave-js/zwave-js-ui",
|
||||
"version": "v10.9.0",
|
||||
"date": "2025-07-11T12:57:54Z"
|
||||
},
|
||||
{
|
||||
"name": "traefik/traefik",
|
||||
"version": "v3.4.4",
|
||||
"date": "2025-07-11T08:41:34Z"
|
||||
},
|
||||
{
|
||||
"name": "outline/outline",
|
||||
"version": "v0.85.1",
|
||||
@ -514,11 +599,6 @@
|
||||
"version": "v2.13.0",
|
||||
"date": "2025-07-10T19:27:54Z"
|
||||
},
|
||||
{
|
||||
"name": "crowdsecurity/crowdsec",
|
||||
"version": "v1.6.10",
|
||||
"date": "2025-07-10T12:04:30Z"
|
||||
},
|
||||
{
|
||||
"name": "NginxProxyManager/nginx-proxy-manager",
|
||||
"version": "v2.12.6",
|
||||
@ -534,11 +614,6 @@
|
||||
"version": "4.5.2",
|
||||
"date": "2025-07-09T19:08:28Z"
|
||||
},
|
||||
{
|
||||
"name": "raydak-labs/configarr",
|
||||
"version": "v1.13.6",
|
||||
"date": "2025-07-09T17:23:01Z"
|
||||
},
|
||||
{
|
||||
"name": "hargata/lubelog",
|
||||
"version": "v1.4.9",
|
||||
@ -564,46 +639,16 @@
|
||||
"version": "v0.107.63",
|
||||
"date": "2025-06-26T14:34:19Z"
|
||||
},
|
||||
{
|
||||
"name": "cockpit-project/cockpit",
|
||||
"version": "342",
|
||||
"date": "2025-07-09T08:48:21Z"
|
||||
},
|
||||
{
|
||||
"name": "mysql/mysql-server",
|
||||
"version": "mysql-cluster-9.4.0",
|
||||
"date": "2025-07-09T08:35:30Z"
|
||||
},
|
||||
{
|
||||
"name": "Prowlarr/Prowlarr",
|
||||
"version": "v1.37.0.5076",
|
||||
"date": "2025-06-04T11:04:53Z"
|
||||
},
|
||||
{
|
||||
"name": "Radarr/Radarr",
|
||||
"version": "v5.26.2.10099",
|
||||
"date": "2025-06-11T20:10:39Z"
|
||||
},
|
||||
{
|
||||
"name": "grokability/snipe-it",
|
||||
"version": "v8.1.18",
|
||||
"date": "2025-07-08T20:36:37Z"
|
||||
},
|
||||
{
|
||||
"name": "Stirling-Tools/Stirling-PDF",
|
||||
"version": "v1.0.2",
|
||||
"date": "2025-07-08T19:14:31Z"
|
||||
},
|
||||
{
|
||||
"name": "TwiN/gatus",
|
||||
"version": "v5.20.0",
|
||||
"date": "2025-07-08T16:27:11Z"
|
||||
},
|
||||
{
|
||||
"name": "docker/compose",
|
||||
"version": "v2.38.2",
|
||||
"date": "2025-07-08T09:35:14Z"
|
||||
},
|
||||
{
|
||||
"name": "photoprism/photoprism",
|
||||
"version": "250707-d28b3101e",
|
||||
@ -724,11 +769,6 @@
|
||||
"version": "v0.57.0",
|
||||
"date": "2025-07-01T16:47:46Z"
|
||||
},
|
||||
{
|
||||
"name": "openobserve/openobserve",
|
||||
"version": "v0.15.0-rc3",
|
||||
"date": "2025-07-01T04:09:37Z"
|
||||
},
|
||||
{
|
||||
"name": "MagicMirrorOrg/MagicMirror",
|
||||
"version": "v2.32.0",
|
||||
@ -754,16 +794,6 @@
|
||||
"version": "v1.3.8",
|
||||
"date": "2025-06-29T07:41:53Z"
|
||||
},
|
||||
{
|
||||
"name": "goauthentik/authentik",
|
||||
"version": "version/2025.6.3",
|
||||
"date": "2025-06-27T14:01:06Z"
|
||||
},
|
||||
{
|
||||
"name": "tailscale/tailscale",
|
||||
"version": "v1.84.3",
|
||||
"date": "2025-06-26T16:31:57Z"
|
||||
},
|
||||
{
|
||||
"name": "node-red/node-red",
|
||||
"version": "4.1.0-beta.2",
|
||||
@ -779,11 +809,6 @@
|
||||
"version": "v1.18.4",
|
||||
"date": "2025-06-25T00:06:56Z"
|
||||
},
|
||||
{
|
||||
"name": "ErsatzTV/ErsatzTV",
|
||||
"version": "v25.2.0",
|
||||
"date": "2025-06-24T17:06:31Z"
|
||||
},
|
||||
{
|
||||
"name": "arunavo4/gitea-mirror",
|
||||
"version": "v2.18.0",
|
||||
@ -809,11 +834,6 @@
|
||||
"version": "v2.0.114",
|
||||
"date": "2025-06-21T11:20:21Z"
|
||||
},
|
||||
{
|
||||
"name": "immich-app/immich",
|
||||
"version": "v1.135.3",
|
||||
"date": "2025-06-20T20:19:20Z"
|
||||
},
|
||||
{
|
||||
"name": "Sonarr/Sonarr",
|
||||
"version": "v4.0.15.2941",
|
||||
@ -1104,11 +1124,6 @@
|
||||
"version": "v2.0.1727",
|
||||
"date": "2025-04-21T17:53:05Z"
|
||||
},
|
||||
{
|
||||
"name": "TasmoAdmin/TasmoAdmin",
|
||||
"version": "v4.3.0",
|
||||
"date": "2025-04-21T17:44:40Z"
|
||||
},
|
||||
{
|
||||
"name": "caddyserver/caddy",
|
||||
"version": "v2.10.0",
|
||||
@ -1159,11 +1174,6 @@
|
||||
"version": "1.5.0",
|
||||
"date": "2025-03-30T17:42:59Z"
|
||||
},
|
||||
{
|
||||
"name": "aceberg/WatchYourLAN",
|
||||
"version": "2.1.2-alpine",
|
||||
"date": "2025-03-30T06:25:22Z"
|
||||
},
|
||||
{
|
||||
"name": "inspircd/inspircd",
|
||||
"version": "v4.7.0",
|
||||
@ -1244,11 +1254,6 @@
|
||||
"version": "v0.10.0",
|
||||
"date": "2025-03-02T15:13:47Z"
|
||||
},
|
||||
{
|
||||
"name": "heiher/hev-socks5-server",
|
||||
"version": "2.8.0",
|
||||
"date": "2025-03-02T04:30:50Z"
|
||||
},
|
||||
{
|
||||
"name": "schlagmichdoch/PairDrop",
|
||||
"version": "v1.11.2",
|
||||
@ -1289,11 +1294,6 @@
|
||||
"version": "v0.5.7",
|
||||
"date": "2025-01-17T15:57:17Z"
|
||||
},
|
||||
{
|
||||
"name": "PCJones/UmlautAdaptarr",
|
||||
"version": "0.7.2",
|
||||
"date": "2025-01-13T22:17:18Z"
|
||||
},
|
||||
{
|
||||
"name": "go-vikunja/vikunja",
|
||||
"version": "v0.24.6",
|
||||
|
68
install/alpine-teamspeak-server-install.sh
Normal file
68
install/alpine-teamspeak-server-install.sh
Normal file
@ -0,0 +1,68 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: tremor021 (Slaviša Arežina)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://teamspeak.com/en/
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing dependencies"
|
||||
$STD apk add --no-cache \
|
||||
ca-certificates \
|
||||
libstdc++ \
|
||||
libc6-compat
|
||||
msg_ok "Installed dependencies"
|
||||
|
||||
RELEASE=$(curl -fsSL https://teamspeak.com/en/downloads/#server | sed -n 's/.*teamspeak3-server_linux_amd64-\([0-9.]\+\).*/\1/p' | head -1)
|
||||
msg_info "Installing Teamspeak Server v${RELEASE}"
|
||||
mkdir -p /opt/teamspeak-server
|
||||
cd /opt/teamspeak-server
|
||||
curl -fsSL "https://files.teamspeak-services.com/releases/server/${RELEASE}/teamspeak3-server_linux_amd64-${RELEASE}.tar.bz2" -o ts3server.tar.bz2
|
||||
tar xf ts3server.tar.bz2 --strip-components=1
|
||||
mkdir -p logs data lib
|
||||
mv *.so lib
|
||||
touch data/ts3server.sqlitedb data/query_ip_blacklist.txt data/query_ip_whitelist.txt .ts3server_license_accepted
|
||||
echo "${RELEASE}" >~/.teamspeak-server
|
||||
msg_ok "Installed TeamSpeak Server v${RELEASE}"
|
||||
|
||||
msg_info "Enabling TeamSpeak Server Service"
|
||||
cat <<EOF >/etc/init.d/teamspeak
|
||||
#!/sbin/openrc-run
|
||||
|
||||
name="TeamSpeak Server"
|
||||
description="TeamSpeak 3 Server"
|
||||
command="/opt/teamspeak-server/ts3server_startscript.sh"
|
||||
command_args="start"
|
||||
output_log="/var/log/teamspeak.out.log"
|
||||
error_log="/var/log/teamspeak.err.log"
|
||||
command_background=true
|
||||
pidfile="/run/teamspeak-server.pid"
|
||||
directory="/opt/teamspeak-server"
|
||||
|
||||
depend() {
|
||||
need net
|
||||
use dns
|
||||
}
|
||||
EOF
|
||||
chmod +x /etc/init.d/teamspeak
|
||||
$STD rc-update add teamspeak default
|
||||
msg_ok "Enabled TeamSpeak Server Service"
|
||||
|
||||
msg_info "Starting TeamSpeak Server"
|
||||
$STD service teamspeak start
|
||||
msg_ok "Started TeamSpeak Server"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -r ts3server.tar.bz* LICENSE* CHANGELOG doc serverquerydocs tsdns redist
|
||||
$STD apk cache clean
|
||||
msg_ok "Cleaned"
|
@ -1,67 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# Co-Author: remz1337
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/janeczku/calibre-web
|
||||
|
||||
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 imagemagick
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Python Dependencies"
|
||||
$STD apt-get -y install python3-pip
|
||||
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
|
||||
msg_ok "Installed Python Dependencies"
|
||||
|
||||
msg_info "Installing Kepubify"
|
||||
mkdir -p /opt/kepubify
|
||||
cd /opt/kepubify
|
||||
curl -fsSLO https://github.com/pgaskin/kepubify/releases/latest/download/kepubify-linux-64bit &>/dev/null
|
||||
chmod +x kepubify-linux-64bit
|
||||
msg_ok "Installed Kepubify"
|
||||
|
||||
msg_info "Installing Calibre-Web"
|
||||
mkdir -p /opt/calibre-web
|
||||
$STD apt-get install -y calibre
|
||||
$STD curl -fsSL https://github.com/janeczku/calibre-web/raw/master/library/metadata.db -o /opt/calibre-web/metadata.db
|
||||
$STD pip install calibreweb
|
||||
$STD pip install jsonschema
|
||||
msg_ok "Installed Calibre-Web"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/cps.service
|
||||
[Unit]
|
||||
Description=Calibre-Web Server
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
WorkingDirectory=/opt/calibre-web
|
||||
ExecStart=/usr/local/bin/cps
|
||||
TimeoutStopSec=20
|
||||
KillMode=process
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now cps
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
46
install/cleanuparr-install.sh
Executable file
46
install/cleanuparr-install.sh
Executable file
@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: Lucas Zampieri (zampierilucas) | MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/Cleanuparr/Cleanuparr
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/cleanuparr.service
|
||||
[Unit]
|
||||
Description=Cleanuparr Daemon
|
||||
After=syslog.target network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
WorkingDirectory=/opt/cleanuparr
|
||||
ExecStart=/opt/cleanuparr/Cleanuparr
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
Environment="PORT=11011"
|
||||
Environment="CONFIG_DIR=/opt/cleanuparr/config"
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now cleanuparr
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
@ -79,7 +79,7 @@ msg_ok "Installed Documenso"
|
||||
|
||||
msg_info "Create User"
|
||||
PASSWORD_HASH=$(python3 -c "import bcrypt; print(bcrypt.hashpw(b'helper-scripts', bcrypt.gensalt(rounds=12)).decode())")
|
||||
$STD sudo -u postgres psql -d documenso_db -c "INSERT INTO \"User\" (name, email, \"emailVerified\", password, \"identityProvider\", roles, \"createdAt\", \"lastSignedIn\", \"updatedAt\", \"customerId\") VALUES ('helper-scripts', 'helper-scripts@local.com', '2025-01-20 17:14:45.058', '$PASSWORD_HASH', 'DOCUMENSO', ARRAY['USER', 'ADMIN']::\"Role\"[], '2025-01-20 16:04:05.543', '2025-01-20 16:14:55.249', '2025-01-20 16:14:55.25', NULL) RETURNING id;"
|
||||
$STD sudo -u postgres psql -d documenso_db -c "INSERT INTO \"User\" (name, email, \"emailVerified\", password, \"identityProvider\", roles, \"createdAt\", \"lastSignedIn\", \"updatedAt\") VALUES ('helper-scripts', 'helper-scripts@local.com', '2025-01-20 17:14:45.058', '$PASSWORD_HASH', 'DOCUMENSO', ARRAY['USER', 'ADMIN']::\"Role\"[], '2025-01-20 16:04:05.543', '2025-01-20 16:14:55.249', '2025-01-20 16:14:55.25') RETURNING id;"
|
||||
$STD npm run prisma:migrate-deploy
|
||||
msg_ok "User created"
|
||||
|
||||
|
@ -20,19 +20,16 @@ $STD apt-get install -y \
|
||||
libfontconfig1
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Setting up Duplicati"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/duplicati/duplicati/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
|
||||
curl -fsSL "https://github.com/duplicati/duplicati/releases/download/v${RELEASE}/duplicati-${RELEASE}-linux-x64-gui.deb" -o "duplicati-${RELEASE}-linux-x64-gui.deb"
|
||||
$STD dpkg -i duplicati-${RELEASE}-linux-x64-gui.deb
|
||||
echo "${RELEASE}" >/opt/Duplicati_version.txt
|
||||
msg_ok "Finished setting up Duplicati"
|
||||
fetch_and_deploy_gh_release "duplicati" "duplicati/duplicati" "binary" "latest" "/opt/duplicati" "linux-x64-gui.deb"
|
||||
|
||||
msg_info "Configuring duplicati"
|
||||
DECRYPTKEY=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
||||
ADMINPASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
||||
{
|
||||
echo "Admin password = ${ADMINPASS}"
|
||||
echo "Database encryption key = ${DECRYPTKEY}"
|
||||
} >>~/duplicati.creds
|
||||
msg_ok "Configured duplicati"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/duplicati.service
|
||||
@ -54,10 +51,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -f duplicati-${RELEASE}-linux-x64-gui.deb
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
@ -42,10 +42,7 @@ if [[ "$CTTYPE" == "0" ]]; then
|
||||
fi
|
||||
msg_ok "Set Up Hardware Acceleration"
|
||||
|
||||
#RELEASE=$(curl -fsSL https://api.github.com/repos/blakeblackshear/frigate/releases/latest | jq -r '.tag_name')
|
||||
msg_ok "Stop spinner to prevent segmentation fault"
|
||||
msg_info "Installing Frigate v0.14.1 (Perseverance)"
|
||||
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID >/dev/null; then kill $SPINNER_PID >/dev/null; fi
|
||||
cd ~
|
||||
mkdir -p /opt/frigate/models
|
||||
curl -fsSL "https://github.com/blakeblackshear/frigate/archive/refs/tags/v0.14.1.tar.gz" -o "frigate.tar.gz"
|
||||
|
@ -13,15 +13,10 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing go2rtc"
|
||||
mkdir -p /opt/go2rtc
|
||||
cd /opt/go2rtc
|
||||
curl -fsSL "https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64" -o "go2rtc_linux_amd64"
|
||||
chmod +x go2rtc_linux_amd64
|
||||
msg_ok "Installed go2rtc"
|
||||
fetch_and_deploy_gh_release "go2rtc" "AlexxIT/go2rtc" "singlefile" "latest" "/opt/go2rtc" "go2rtc_linux_amd64"
|
||||
|
||||
msg_info "Creating Service"
|
||||
service_path="/etc/systemd/system/go2rtc.service"
|
||||
cat <<EOF >/etc/systemd/system/go2rtc.service
|
||||
echo "[Unit]
|
||||
Description=go2rtc service
|
||||
After=network.target
|
||||
@ -32,7 +27,8 @@ User=root
|
||||
ExecStart=/opt/go2rtc/go2rtc_linux_amd64
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target" >$service_path
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now go2rtc
|
||||
msg_ok "Created Service"
|
||||
|
||||
|
@ -13,14 +13,12 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Gokapi"
|
||||
LATEST=$(curl -fsSL https://api.github.com/repos/Forceu/Gokapi/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
||||
fetch_and_deploy_gh_release "gokapi" "Forceu/Gokapi" "prebuild" "latest" "/opt/gokapi" "gokapi-linux_amd64.zip"
|
||||
|
||||
msg_info "Configuring Gokapi"
|
||||
mkdir -p /opt/gokapi/{data,config}
|
||||
curl -fsSL "https://github.com/Forceu/Gokapi/releases/download/$LATEST/gokapi-linux_amd64.zip" -o "gokapi-linux_amd64.zip"
|
||||
$STD unzip gokapi-linux_amd64.zip -d /opt/gokapi
|
||||
rm gokapi-linux_amd64.zip
|
||||
chmod +x /opt/gokapi/gokapi-linux_amd64
|
||||
msg_ok "Installed Gokapi"
|
||||
msg_ok "Configured Gokapi"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/gokapi.service
|
||||
|
@ -22,16 +22,17 @@ curl -fsSL "http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1
|
||||
$STD dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="20" NODE_MODULE="gulp-cli,mocha" setup_nodejs
|
||||
NODE_VERSION="20" NODE_MODULE="gulp-cli,mocha,npm@10" setup_nodejs
|
||||
fetch_and_deploy_gh_release "habitica" "HabitRPG/habitica" "tarball" "latest" "/opt/habitica"
|
||||
|
||||
msg_info "Setup ${APPLICATION}"
|
||||
cd /opt/habitica
|
||||
$STD npm i
|
||||
$STD npm run postinstall
|
||||
cp config.json.example config.json
|
||||
$STD npm run client:build
|
||||
$STD gulp build:prod
|
||||
cp config.json.example config.json
|
||||
|
||||
msg_ok "Setup ${APPLICATION}"
|
||||
|
||||
msg_info "Creating Service"
|
||||
|
@ -13,19 +13,53 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/juanfont/headscale/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
msg_info "Installing ${APPLICATION} v${RELEASE}"
|
||||
curl -fsSL "https://github.com/juanfont/headscale/releases/download/v${RELEASE}/headscale_${RELEASE}_linux_amd64.deb" -o "headscale_${RELEASE}_linux_amd64.deb"
|
||||
$STD dpkg -i headscale_${RELEASE}_linux_amd64.deb
|
||||
fetch_and_deploy_gh_release "headscale" "juanfont/headscale" "binary"
|
||||
|
||||
read -r -p "${TAB3}Would you like to add headscale-admin UI? <y/N> " prompt
|
||||
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
||||
fetch_and_deploy_gh_release "headscale-admin" "GoodiesHQ/headscale-admin" "prebuild" "latest" "/opt/headscale-admin" "admin.zip"
|
||||
|
||||
msg_info "Configuring headscale-admin"
|
||||
$STD apt-get install -y caddy
|
||||
$STD caddy stop
|
||||
rm /etc/caddy/Caddyfile
|
||||
cat <<'EOF' >/etc/caddy/Caddyfile
|
||||
:{$PORT:80}
|
||||
|
||||
handle_path /admin* {
|
||||
root * /opt/headscale-admin
|
||||
encode gzip zstd
|
||||
|
||||
# Correct MIME types for JS/WASM
|
||||
header {
|
||||
@js_files path *.js
|
||||
@wasm_files path *.wasm
|
||||
|
||||
Content-Type @js_files application/javascript
|
||||
Content-Type @wasm_files application/wasm
|
||||
|
||||
X-Content-Type-Options nosniff
|
||||
}
|
||||
|
||||
# Fallback for SPA routing
|
||||
try_files {path} {path}/ index.html
|
||||
file_server
|
||||
}
|
||||
|
||||
EOF
|
||||
caddy fmt --overwrite /etc/caddy/Caddyfile
|
||||
systemctl start caddy
|
||||
msg_ok "Configured headscale-admin"
|
||||
fi
|
||||
|
||||
msg_info "Starting service"
|
||||
systemctl enable -q --now headscale
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
msg_ok "Installed ${APPLICATION} v${RELEASE}"
|
||||
msg_ok "Service started"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm headscale_${RELEASE}_linux_amd64.deb
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
@ -283,7 +283,7 @@ GEO_DIR="${INSTALL_DIR}/geodata"
|
||||
mkdir -p "$INSTALL_DIR"
|
||||
mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${ML_DIR}","${INSTALL_DIR}"/cache}
|
||||
|
||||
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "latest" "$SRC_DIR"
|
||||
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.136.0" "$SRC_DIR"
|
||||
|
||||
msg_info "Installing ${APPLICATION} (more patience please)"
|
||||
|
||||
@ -299,7 +299,7 @@ cd "$SRC_DIR"/web
|
||||
$STD npm ci
|
||||
$STD npm run build
|
||||
cd "$SRC_DIR"
|
||||
cp -a server/{node_modules,dist,bin,resources,package.json,package-lock.json,start*.sh} "$APP_DIR"/
|
||||
cp -a server/{node_modules,dist,bin,resources,package.json,package-lock.json,bin/start.sh} "$APP_DIR"/
|
||||
cp -a web/build "$APP_DIR"/www
|
||||
cp LICENSE "$APP_DIR"
|
||||
cd "$APP_DIR"
|
||||
|
@ -27,7 +27,9 @@ $STD apt-get -y install \
|
||||
libwww-perl \
|
||||
nmap \
|
||||
aria2 \
|
||||
wakeonlan
|
||||
wakeonlan \
|
||||
fping \
|
||||
zip
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing PHP Dependencies"
|
||||
@ -47,12 +49,15 @@ $STD apt-get -y install \
|
||||
python3-pip \
|
||||
python3-requests \
|
||||
python3-tz \
|
||||
python3-tzlocal
|
||||
python3-tzlocal \
|
||||
python3-aiohttp
|
||||
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
|
||||
$STD pip3 install mac-vendor-lookup
|
||||
$STD pip3 install fritzconnection
|
||||
$STD pip3 install cryptography
|
||||
$STD pip3 install pyunifi
|
||||
$STD pip3 install openwrt-luci-rpc
|
||||
$STD pip3 install asusrouter
|
||||
msg_ok "Installed Python Dependencies"
|
||||
|
||||
msg_info "Installing Pi.Alert"
|
||||
|
44
install/salt-install.sh
Normal file
44
install/salt-install.sh
Normal file
@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: bvdberg01
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/saltstack/salt
|
||||
|
||||
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 jq
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Setup Salt Repo"
|
||||
mkdir -p /etc/apt/keyrings
|
||||
curl -fsSL https://packages.broadcom.com/artifactory/api/security/keypair/SaltProjectKey/public -o /etc/apt/keyrings/salt-archive-keyring.pgp
|
||||
curl -fsSL https://github.com/saltstack/salt-install-guide/releases/latest/download/salt.sources -o /etc/apt/sources.list.d/salt.sources
|
||||
$STD apt-get update
|
||||
msg_ok "Setup Salt Repo"
|
||||
|
||||
msg_info "Installing Salt"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/saltstack/salt/releases/latest | jq -r .tag_name | sed 's/^v//')
|
||||
cat <<EOF >/etc/apt/preferences.d/salt-pin-1001
|
||||
Package: salt-*
|
||||
Pin: version ${RELEASE}
|
||||
Pin-Priority: 1001
|
||||
EOF
|
||||
$STD apt-get install -y salt-master
|
||||
echo "${RELEASE}" >/~.salt
|
||||
msg_ok "Installed Salt"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
@ -18,7 +18,7 @@ $STD apt-get install -y \
|
||||
composer \
|
||||
git \
|
||||
nginx \
|
||||
php8.2-{bcmath,common,ctype,curl,fileinfo,fpm,gd,iconv,intl,mbstring,mysql,soap,xml,xsl,zip,cli}
|
||||
php8.2-{bcmath,common,ctype,ldap,curl,fileinfo,fpm,gd,iconv,intl,mbstring,mysql,soap,xml,xsl,zip,cli}
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
setup_mariadb
|
||||
|
@ -13,15 +13,13 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
fetch_and_deploy_gh_release "victoriametrics" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "victoria-metrics-linux-amd64-v+([0-9.]).tar.gz"
|
||||
fetch_and_deploy_gh_release "vmutils" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "vmutils-linux-amd64-v+([0-9.]).tar.gz"
|
||||
fetch_and_deploy_gh_release "victorialogs" "VictoriaMetrics/VictoriaLogs" "prebuild" "latest" "/opt/victoriametrics" "victoria-logs-linux-amd64*.tar.gz"
|
||||
fetch_and_deploy_gh_release "vlutils" "VictoriaMetrics/VictoriaLogs" "prebuild" "latest" "/opt/victoriametrics" "vlutils-linux-amd64*.tar.gz"
|
||||
|
||||
msg_info "Setup VictoriaMetrics"
|
||||
temp_dir=$(mktemp -d)
|
||||
cd $temp_dir
|
||||
mkdir -p /opt/victoriametrics/data
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/VictoriaMetrics/VictoriaMetrics/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
curl -fsSL "https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v${RELEASE}/victoria-metrics-linux-amd64-v${RELEASE}.tar.gz" -o "victoria-metrics-linux-amd64-v${RELEASE}.tar.gz"
|
||||
curl -fsSL "https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v${RELEASE}/vmutils-linux-amd64-v${RELEASE}.tar.gz" -o "vmutils-linux-amd64-v${RELEASE}.tar.gz"
|
||||
tar -xf victoria-metrics-linux-amd64-v${RELEASE}.tar.gz -C /opt/victoriametrics
|
||||
tar -xf vmutils-linux-amd64-v${RELEASE}.tar.gz -C /opt/victoriametrics
|
||||
chmod +x /opt/victoriametrics/*
|
||||
msg_ok "Setup VictoriaMetrics"
|
||||
|
||||
@ -37,10 +35,26 @@ User=root
|
||||
WorkingDirectory=/opt/victoriametrics
|
||||
ExecStart=/opt/victoriametrics/victoria-metrics-prod --storageDataPath="/opt/victoriametrics/data"
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
cat <<EOF >/etc/systemd/system/victoriametrics-logs.service
|
||||
[Unit]
|
||||
Description=VictoriaMetrics Service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
Restart=always
|
||||
User=root
|
||||
WorkingDirectory=/opt/victoriametrics
|
||||
ExecStart=/opt/victoriametrics/victoria-logs-prod
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now victoriametrics
|
||||
systemctl enable -q --now victoriametrics-logs
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
|
@ -23,12 +23,12 @@ fetch_and_deploy_gh_release "wizarr" "wizarrrr/wizarr"
|
||||
|
||||
msg_info "Configure ${APPLICATION}"
|
||||
cd /opt/wizarr
|
||||
uv -q sync --locked
|
||||
$STD uv -q run pybabel compile -d app/translations
|
||||
/usr/local/bin/uv -q sync --locked
|
||||
$STD /usr/local/bin/uv -q run pybabel compile -d app/translations
|
||||
$STD npm --prefix app/static install
|
||||
$STD npm --prefix app/static run build:css
|
||||
mkdir -p ./.cache
|
||||
$STD uv -q run flask db upgrade
|
||||
$STD /usr/local/bin/uv -q run flask db upgrade
|
||||
msg_ok "Configure ${APPLICATION}"
|
||||
|
||||
msg_info "Creating env, start script and service"
|
||||
|
@ -1201,7 +1201,52 @@ EOF
|
||||
# This starts the container and executes <app>-install.sh
|
||||
msg_info "Starting LXC Container"
|
||||
pct start "$CTID"
|
||||
msg_ok "Started LXC Container"
|
||||
|
||||
# wait for status 'running'
|
||||
for i in {1..10}; do
|
||||
if pct status "$CTID" | grep -q "status: running"; then
|
||||
msg_ok "Started LXC Container"
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
if [ "$i" -eq 10 ]; then
|
||||
msg_error "LXC Container did not reach running state"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$var_os" != "alpine" ]; then
|
||||
msg_info "Waiting for network in LXC container"
|
||||
for i in {1..10}; do
|
||||
if pct exec "$CTID" -- ping -c1 -W1 deb.debian.org >/dev/null 2>&1; then
|
||||
msg_ok "Network in LXC is reachable"
|
||||
break
|
||||
fi
|
||||
if [ "$i" -lt 10 ]; then
|
||||
msg_warn "No network yet in LXC (try $i/10) – waiting..."
|
||||
sleep 3
|
||||
else
|
||||
msg_error "No network in LXC after waiting."
|
||||
read -r -p "Set fallback DNS (1.1.1.1/8.8.8.8)? [y/N]: " choice
|
||||
case "$choice" in
|
||||
[yY]*)
|
||||
pct set "$CTID" --nameserver 1.1.1.1
|
||||
pct set "$CTID" --nameserver 8.8.8.8
|
||||
if pct exec "$CTID" -- ping -c1 -W1 deb.debian.org >/dev/null 2>&1; then
|
||||
msg_ok "Network reachable after DNS fallback"
|
||||
else
|
||||
msg_error "Still no network/DNS in LXC! Aborting customization."
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
msg_error "Aborted by user – no DNS fallback set."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
msg_info "Customizing LXC Container"
|
||||
: "${tz:=Etc/UTC}"
|
||||
@ -1211,7 +1256,7 @@ EOF
|
||||
http://dl-cdn.alpinelinux.org/alpine/latest-stable/main
|
||||
http://dl-cdn.alpinelinux.org/alpine/latest-stable/community
|
||||
EOF'
|
||||
pct exec "$CTID" -- ash -c "apk add bash newt curl openssh nano mc ncurses >/dev/null"
|
||||
pct exec "$CTID" -- ash -c "apk add bash newt curl openssh nano mc ncurses jq >/dev/null"
|
||||
else
|
||||
sleep 3
|
||||
pct exec "$CTID" -- bash -c "sed -i '/$LANG/ s/^# //' /etc/locale.gen"
|
||||
@ -1229,7 +1274,7 @@ EOF'
|
||||
msg_warn "Skipping timezone setup – zone '$tz' not found in container"
|
||||
fi
|
||||
|
||||
pct exec "$CTID" -- bash -c "apt-get update >/dev/null && apt-get install -y sudo curl mc gnupg2 >/dev/null"
|
||||
pct exec "$CTID" -- bash -c "apt-get update >/dev/null && apt-get install -y sudo curl mc gnupg2 jq >/dev/null"
|
||||
fi
|
||||
msg_ok "Customized LXC Container"
|
||||
|
||||
|
@ -438,14 +438,15 @@ function setup_php() {
|
||||
# install apache2 with PHP support if requested
|
||||
if [[ "$PHP_APACHE" == "YES" ]]; then
|
||||
if ! dpkg -l | grep -q "libapache2-mod-php${PHP_VERSION}"; then
|
||||
$STD msg_info "Installing Apache with PHP${PHP_VERSION} support"
|
||||
$STD apt-get install -y apache2 libapache2-mod-php"${PHP_VERSION}"
|
||||
$STD msg_ok "Setup Apache with PHP${PHP_VERSION}"
|
||||
msg_info "Installing Apache with PHP${PHP_VERSION} support"
|
||||
$STD apt-get install -y apache2 libapache2-mod-php${PHP_VERSION}
|
||||
else
|
||||
msg_info "Apache with PHP${PHP_VERSION} already installed – skipping install"
|
||||
fi
|
||||
fi
|
||||
|
||||
# setup / update PHP modules
|
||||
$STD apt-get install -y "$MODULE_LIST"
|
||||
$STD apt-get install -y $MODULE_LIST
|
||||
msg_ok "Setup PHP $PHP_VERSION"
|
||||
|
||||
# optional stop old PHP-FPM service
|
||||
@ -484,14 +485,13 @@ function setup_php() {
|
||||
# enable and restart PHP-FPM if requested
|
||||
if [[ "$PHP_FPM" == "YES" ]]; then
|
||||
if systemctl list-unit-files | grep -q "php${PHP_VERSION}-fpm.service"; then
|
||||
$STD systemctl enable php"${PHP_VERSION}"-fpm
|
||||
$STD systemctl restart php"${PHP_VERSION}"-fpm
|
||||
$STD systemctl enable php${PHP_VERSION}-fpm
|
||||
$STD systemctl restart php${PHP_VERSION}-fpm
|
||||
else
|
||||
msg_warn "FPM requested but service php${PHP_VERSION}-fpm not found"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Installs or updates Composer globally.
|
||||
#
|
||||
@ -807,7 +807,7 @@ function fetch_and_deploy_gh_release() {
|
||||
local max_retries=3 retry_delay=2 attempt=1 success=false resp http_code
|
||||
|
||||
while ((attempt <= max_retries)); do
|
||||
resp=$(curl "$api_timeout" -fsSL -w "%{http_code}" -o /tmp/gh_rel.json "${header[@]}" "$api_url") && success=true && break
|
||||
resp=$(curl $api_timeout -fsSL -w "%{http_code}" -o /tmp/gh_rel.json "${header[@]}" "$api_url") && success=true && break
|
||||
sleep "$retry_delay"
|
||||
((attempt++))
|
||||
done
|
||||
@ -845,7 +845,7 @@ function fetch_and_deploy_gh_release() {
|
||||
[[ -z "$url" ]] && url="https://github.com/$repo/archive/refs/tags/v$version.tar.gz"
|
||||
filename="${app_lc}-${version}.tar.gz"
|
||||
|
||||
curl "$download_timeout" -fsSL -o "$tmpdir/$filename" "$url" || {
|
||||
curl $download_timeout -fsSL -o "$tmpdir/$filename" "$url" || {
|
||||
msg_error "Download failed: $url"
|
||||
rm -rf "$tmpdir"
|
||||
return 1
|
||||
@ -901,7 +901,7 @@ function fetch_and_deploy_gh_release() {
|
||||
fi
|
||||
|
||||
filename="${url_match##*/}"
|
||||
curl "$download_timeout" -fsSL -o "$tmpdir/$filename" "$url_match" || {
|
||||
curl $download_timeout -fsSL -o "$tmpdir/$filename" "$url_match" || {
|
||||
msg_error "Download failed: $url_match"
|
||||
rm -rf "$tmpdir"
|
||||
return 1
|
||||
@ -944,7 +944,7 @@ function fetch_and_deploy_gh_release() {
|
||||
}
|
||||
|
||||
filename="${asset_url##*/}"
|
||||
curl "$download_timeout" -fsSL -o "$tmpdir/$filename" "$asset_url" || {
|
||||
curl $download_timeout -fsSL -o "$tmpdir/$filename" "$asset_url" || {
|
||||
msg_error "Download failed: $asset_url"
|
||||
rm -rf "$tmpdir"
|
||||
return 1
|
||||
@ -1020,7 +1020,7 @@ function fetch_and_deploy_gh_release() {
|
||||
local target_file="$app"
|
||||
[[ "$use_filename" == "true" ]] && target_file="$filename"
|
||||
|
||||
curl "$download_timeout" -fsSL -o "$target/$target_file" "$asset_url" || {
|
||||
curl $download_timeout -fsSL -o "$target/$target_file" "$asset_url" || {
|
||||
msg_error "Download failed: $asset_url"
|
||||
rm -rf "$tmpdir"
|
||||
return 1
|
||||
|
@ -113,24 +113,22 @@ EOF
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ ! -f /etc/apt/apt.conf.d/no-nag-script ]]; then
|
||||
CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUBSCRIPTION NAG" --menu "This will disable the nag message reminding you to purchase a subscription every time you log in to the web interface.\n \nDisable subscription nag?" 14 58 2 \
|
||||
"yes" " " \
|
||||
"no" " " 3>&2 2>&1 1>&3)
|
||||
case $CHOICE in
|
||||
yes)
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "Support Subscriptions" "Supporting the software's development team is essential. Check their official website's Support Subscriptions for pricing. Without their dedicated work, we wouldn't have this exceptional software." 10 58
|
||||
msg_info "Disabling subscription nag"
|
||||
echo "DPkg::Post-Invoke { \"dpkg -V proxmox-widget-toolkit | grep -q '/proxmoxlib\.js$'; if [ \$? -eq 1 ]; then { echo 'Removing subscription nag from UI...'; sed -i '/data\.status.*{/{s/\!//;s/active/NoMoreNagging/}' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; }; fi\"; };" >/etc/apt/apt.conf.d/no-nag-script
|
||||
apt --reinstall install proxmox-widget-toolkit &>/dev/null
|
||||
msg_ok "Disabled subscription nag (Delete browser cache)"
|
||||
;;
|
||||
no)
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "Support Subscriptions" "Supporting the software's development team is essential. Check their official website's Support Subscriptions for pricing. Without their dedicated work, we wouldn't have this exceptional software." 10 58
|
||||
msg_error "Selected no to Disabling subscription nag"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUBSCRIPTION NAG" --menu "This will disable the nag message reminding you to purchase a subscription every time you log in to the web interface.\n \nDisable subscription nag?" 14 58 2 \
|
||||
"yes" " " \
|
||||
"no" " " 3>&2 2>&1 1>&3)
|
||||
case $CHOICE in
|
||||
yes)
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "Support Subscriptions" "Supporting the software's development team is essential. Check their official website's Support Subscriptions for pricing. Without their dedicated work, we wouldn't have this exceptional software." 10 58
|
||||
msg_info "Disabling subscription nag"
|
||||
echo "DPkg::Post-Invoke { \"if [ -s /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js ] && ! grep -q -F 'NoMoreNagging' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; then echo 'Removing subscription nag from UI...'; sed -i '/data\.status/{s/\!//;s/active/NoMoreNagging/}' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; fi\" };" >/etc/apt/apt.conf.d/no-nag-script
|
||||
msg_ok "Disabled subscription nag (Delete browser cache)"
|
||||
;;
|
||||
no)
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "Support Subscriptions" "Supporting the software's development team is essential. Check their official website's Support Subscriptions for pricing. Without their dedicated work, we wouldn't have this exceptional software." 10 58
|
||||
msg_error "Selected no to Disabling subscription nag"
|
||||
;;
|
||||
esac
|
||||
apt --reinstall install proxmox-widget-toolkit &>/dev/null
|
||||
|
||||
CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UPDATE" --menu "\nUpdate Proxmox Backup Server now?" 11 58 2 \
|
||||
"yes" " " \
|
||||
|
@ -9,10 +9,10 @@ header_info() {
|
||||
cat <<"EOF"
|
||||
____ __ _________ ____ __ ____ __ ____
|
||||
/ __ \/ |/ / ____/ / __ \____ _____/ /_ / _/___ _____/ /_____ _/ / /
|
||||
/ /_/ / /|_/ / / __ / /_/ / __ \/ ___/ __/ / // __ \/ ___/ __/ __ `/ / /
|
||||
/ ____/ / / / /_/ / / ____/ /_/ (__ ) /_ _/ // / / (__ ) /_/ /_/ / / /
|
||||
/_/ /_/ /_/\____/ /_/ \____/____/\__/ /___/_/ /_/____/\__/\__,_/_/_/
|
||||
|
||||
/ /_/ / /|_/ / / __ / /_/ / __ \/ ___/ __/ / // __ \/ ___/ __/ __ `/ / /
|
||||
/ ____/ / / / /_/ / / ____/ /_/ (__ ) /_ _/ // / / (__ ) /_/ /_/ / / /
|
||||
/_/ /_/ /_/\____/ /_/ \____/____/\__/ /___/_/ /_/____/\__/\__,_/_/_/
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
@ -112,27 +112,25 @@ EOF
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ ! -f /etc/apt/apt.conf.d/no-nag-script ]]; then
|
||||
CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUBSCRIPTION NAG" --menu "This will disable the nag message reminding you to purchase a subscription every time you log in to the web interface.\n \nDisable subscription nag?" 14 58 2 \
|
||||
"yes" " " \
|
||||
"no" " " 3>&2 2>&1 1>&3)
|
||||
case $CHOICE in
|
||||
yes)
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "Support Subscriptions" "Supporting the software's development team is essential. Check their official website's Support Subscriptions for pricing. Without their dedicated work, we wouldn't have this exceptional software." 10 58
|
||||
msg_info "Disabling subscription nag"
|
||||
# Normal GUI:
|
||||
echo "DPkg::Post-Invoke { \"dpkg -V proxmox-widget-toolkit | grep -q '/proxmoxlib\.js$'; if [ \$? -eq 1 ]; then { echo 'Removing subscription nag from UI...'; sed -i '/.*data\.status.*{/{s/\!//;s/active/NoMoreNagging/}' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; }; fi\"; };" >/etc/apt/apt.conf.d/no-nag-script
|
||||
# JS-Library used when accessing via mobile device browser
|
||||
echo "DPkg::Post-Invoke { \"dpkg -V pmg-gui | grep -q '/pmgmanagerlib-mobile\.js$'; if [ \$? -eq 1 ]; then { echo 'Removing subscription nag from Mobile UI...'; sed -i '/data\.status.*{/{s/\!//;s/active/NoMoreNagging/}' /usr/share/javascript/pmg-gui/js/pmgmanagerlib-mobile.js; }; fi\"; };" >>/etc/apt/apt.conf.d/no-nag-script
|
||||
apt --reinstall install proxmox-widget-toolkit pmg-gui &>/dev/null
|
||||
msg_ok "Disabled subscription nag (Delete browser cache)"
|
||||
;;
|
||||
no)
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "Support Subscriptions" "Supporting the software's development team is essential. Check their official website's Support Subscriptions for pricing. Without their dedicated work, we wouldn't have this exceptional software." 10 58
|
||||
msg_error "Selected no to disabling subscription nag"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUBSCRIPTION NAG" --menu "This will disable the nag message reminding you to purchase a subscription every time you log in to the web interface.\n \nDisable subscription nag?" 14 58 2 \
|
||||
"yes" " " \
|
||||
"no" " " 3>&2 2>&1 1>&3)
|
||||
case $CHOICE in
|
||||
yes)
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "Support Subscriptions" "Supporting the software's development team is essential. Check their official website's Support Subscriptions for pricing. Without their dedicated work, we wouldn't have this exceptional software." 10 58
|
||||
msg_info "Disabling subscription nag"
|
||||
# Normal GUI (proxmox-widget-toolkit)
|
||||
echo "DPkg::Post-Invoke { \"if [ -s /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js ] && ! grep -q -F 'NoMoreNagging' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; then echo 'Removing subscription nag from UI...'; sed -i '/data\.status/{s/\!//;s/active/NoMoreNagging/}' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; fi\" };" >/etc/apt/apt.conf.d/no-nag-script
|
||||
# JS library used when accessing via mobile device browser
|
||||
echo "DPkg::Post-Invoke { \"if [ -s /usr/share/javascript/pmg-gui/js/pmgmanagerlib-mobile.js ] && ! grep -q -F 'NoMoreNagging' /usr/share/javascript/pmg-gui/js/pmgmanagerlib-mobile.js; then echo 'Removing subscription nag from mobile UI...'; sed -i '/data\.status/{s/\!//;s/active/NoMoreNagging/}' /usr/share/javascript/pmg-gui/js/pmgmanagerlib-mobile.js; fi\" };" >/etc/apt/apt.conf.d/no-nag-script-pmgmanagerlib-mobile
|
||||
msg_ok "Disabled subscription nag (Delete browser cache)"
|
||||
;;
|
||||
no)
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "Support Subscriptions" "Supporting the software's development team is essential. Check their official website's Support Subscriptions for pricing. Without their dedicated work, we wouldn't have this exceptional software." 10 58
|
||||
msg_error "Selected no to disabling subscription nag"
|
||||
;;
|
||||
esac
|
||||
apt --reinstall install proxmox-widget-toolkit pmg-gui &>/dev/null
|
||||
|
||||
CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UPDATE" --menu "\nUpdate Proxmox Mail Gateway now?" 11 58 2 \
|
||||
"yes" " " \
|
||||
|
@ -140,7 +140,7 @@ EOF
|
||||
yes)
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "Support Subscriptions" "Supporting the software's development team is essential. Check their official website's Support Subscriptions for pricing. Without their dedicated work, we wouldn't have this exceptional software." 10 58
|
||||
msg_info "Disabling subscription nag"
|
||||
echo "DPkg::Post-Invoke { \"dpkg -V proxmox-widget-toolkit 2>/dev/null && [ -f /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js ] && echo 'Removing subscription nag from UI...' && sed -i '/data\.status/{s/\!/=/;s/active/NoMoreNagging/}' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js\"; };" >/etc/apt/apt.conf.d/no-nag-script
|
||||
echo "DPkg::Post-Invoke { \"if [ -s /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js ] && ! grep -q -F 'NoMoreNagging' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; then echo 'Removing subscription nag from UI...'; sed -i '/data\.status/{s/\!//;s/active/NoMoreNagging/}' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; fi\" };" >/etc/apt/apt.conf.d/no-nag-script
|
||||
msg_ok "Disabled subscription nag (Delete browser cache)"
|
||||
;;
|
||||
no)
|
||||
|
Reference in New Issue
Block a user