Compare commits

..

22 Commits

Author SHA1 Message Date
github-actions[bot]
44b59550ac Update CHANGELOG.md 2025-11-05 16:36:14 +00:00
Chris
72391a96a8 Immich: Pin version to 2.2.3 (#8861) 2025-11-05 17:36:00 +01:00
community-scripts-pr-app[bot]
890ef7a4a1 Update CHANGELOG.md (#8888)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-05 16:25:38 +00:00
Chris
0f16576ea6 Jotty: increase RAM to 4GB (#8887) 2025-11-05 17:25:15 +01:00
community-scripts-pr-app[bot]
b61756f259 Update CHANGELOG.md (#8884)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-05 14:38:50 +00:00
CanbiZ
3fa9a2add6 Refactor agent service control in zabbix.sh (#8881)
Replaces conditional logic for stopping and starting Zabbix agent services with a variable ($AGENT_SERVICE), simplifying service management.
2025-11-05 15:38:24 +01:00
community-scripts-pr-app[bot]
4eedff17b6 Update CHANGELOG.md (#8883)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-05 14:14:02 +00:00
CanbiZ
cad5b3e059 npm: Increase RAM and HDD, update Certbot notes (#8882) 2025-11-05 15:13:30 +01:00
community-scripts-pr-app[bot]
a3199be759 Update CHANGELOG.md (#8879)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-05 13:42:12 +00:00
Tobias
4c374e50dc fix: npm: refactor for v2.13.x (#8870) 2025-11-05 14:41:52 +01:00
community-scripts-pr-app[bot]
258b2c817e Update CHANGELOG.md (#8878)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-05 13:21:02 +00:00
Slaviša Arežina
fb1a558dc6 Refactor (#8874) 2025-11-05 14:20:33 +01:00
community-scripts-pr-app[bot]
b2ee06d8cb Update CHANGELOG.md (#8877)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-05 13:20:03 +00:00
CanbiZ
1f261a382c Refactor(tools.func): Add Retry Logic, OS-Upgrade Safety, Smart Version Detection + 10 Critical Bugfixes (#8871)
* Add robust package and repository management helpers

Introduces unified helper functions for package installation, repository management, and legacy cleanup across Debian/Ubuntu upgrades. Adds retry logic for APT operations, keyring cleanup, service management, version checks, and tool-specific repository setup. Refactors setup functions for Composer, FFmpeg, Go, Ghostscript, ImageMagick, Java, hardware acceleration, and MariaDB to use new helpers, improving reliability and upgrade safety.

* english comment
2025-11-05 14:19:35 +01:00
community-scripts-pr-app[bot]
b60aef556a Update versions.json (#8875)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-05 13:06:01 +01:00
community-scripts-pr-app[bot]
179f4d5504 Update CHANGELOG.md (#8873)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-05 11:09:41 +00:00
Quinten van Buul
eacff384e2 Update config_path in donetick.json (#8872)
Edited config path to proper location
2025-11-05 12:09:19 +01:00
community-scripts-pr-app[bot]
55d80d2e03 Update CHANGELOG.md (#8866)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-05 00:13:37 +00:00
community-scripts-pr-app[bot]
1dce163ada Update versions.json (#8865)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-05 01:13:11 +01:00
community-scripts-pr-app[bot]
c3c4564798 Update versions.json (#8860)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-04 13:07:47 +01:00
community-scripts-pr-app[bot]
d099b5bd23 Update CHANGELOG.md (#8859)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-04 11:40:49 +00:00
CanbiZ
f8ac8e677e stirling-pdf: add native jbig2 dep to installation script (#8858) 2025-11-04 12:40:21 +01:00
15 changed files with 1998 additions and 1190 deletions

View File

@@ -10,8 +10,40 @@
> [!CAUTION] > [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes. Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
## 2025-11-05
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Immich: Pin version to 2.2.3 [@vhsdream](https://github.com/vhsdream) ([#8861](https://github.com/community-scripts/ProxmoxVE/pull/8861))
- Jotty: increase RAM to 4GB [@vhsdream](https://github.com/vhsdream) ([#8887](https://github.com/community-scripts/ProxmoxVE/pull/8887))
- Zabbix: fix agent service recognition in update [@MickLesk](https://github.com/MickLesk) ([#8881](https://github.com/community-scripts/ProxmoxVE/pull/8881))
- #### 💥 Breaking Changes
- fix: npm: refactor for v2.13.x [@CrazyWolf13](https://github.com/CrazyWolf13) ([#8870](https://github.com/community-scripts/ProxmoxVE/pull/8870))
- #### 🔧 Refactor
- Refactor: Open WebUI [@tremor021](https://github.com/tremor021) ([#8874](https://github.com/community-scripts/ProxmoxVE/pull/8874))
- Refactor(tools.func): Add Retry Logic, OS-Upgrade Safety, Smart Version Detection + 10 Critical Bugfixes [@MickLesk](https://github.com/MickLesk) ([#8871](https://github.com/community-scripts/ProxmoxVE/pull/8871))
### 🌐 Website
- #### 📝 Script Information
- npm: Increase RAM and HDD, update Certbot notes [@MickLesk](https://github.com/MickLesk) ([#8882](https://github.com/community-scripts/ProxmoxVE/pull/8882))
- Update config_path in donetick.json [@fyxtro](https://github.com/fyxtro) ([#8872](https://github.com/community-scripts/ProxmoxVE/pull/8872))
## 2025-11-04 ## 2025-11-04
### 🚀 Updated Scripts
- #### ✨ New Features
- stirling-pdf: add native jbig2 dep to installation script [@MickLesk](https://github.com/MickLesk) ([#8858](https://github.com/community-scripts/ProxmoxVE/pull/8858))
## 2025-11-03 ## 2025-11-03
### 🆕 New Scripts ### 🆕 New Scripts

View File

@@ -93,7 +93,7 @@ EOF
msg_ok "Image-processing libraries up to date" msg_ok "Image-processing libraries up to date"
fi fi
RELEASE="2.2.2" RELEASE="2.2.3"
if check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then if check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then
msg_info "Stopping Services" msg_info "Stopping Services"
systemctl stop immich-web systemctl stop immich-web

View File

@@ -8,7 +8,7 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
APP="jotty" APP="jotty"
var_tags="${var_tags:-tasks;notes}" var_tags="${var_tags:-tasks;notes}"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-3072}" var_ram="${var_ram:-4096}"
var_disk="${var_disk:-6}" var_disk="${var_disk:-6}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-13}"

View File

@@ -1,15 +1,15 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2025 Community-Script ORG
# Author: tteck (tteckster) # Author: tteck (tteckster) | Co-Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://nginxproxymanager.com/ # Source: https://nginxproxymanager.com/
APP="Nginx Proxy Manager" APP="Nginx Proxy Manager"
var_tags="${var_tags:-proxy}" var_tags="${var_tags:-proxy}"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-2048}"
var_disk="${var_disk:-4}" var_disk="${var_disk:-8}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
@@ -42,60 +42,47 @@ function update_script() {
fi fi
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
export NODE_OPTIONS="--openssl-legacy-provider"
RELEASE=$(curl -fsSL https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest | RELEASE=$(curl -fsSL https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest |
grep "tag_name" | grep "tag_name" |
awk '{print substr($2, 3, length($2)-4) }') awk '{print substr($2, 3, length($2)-4) }')
msg_info "Downloading NPM v${RELEASE}" fetch_and_deploy_gh_release "nginxproxymanager" "NginxProxyManager/nginx-proxy-manager"
curl -fsSL "https://codeload.github.com/NginxProxyManager/nginx-proxy-manager/tar.gz/v${RELEASE}" | tar -xz
cd nginx-proxy-manager-"${RELEASE}" || exit
msg_ok "Downloaded NPM v${RELEASE}"
msg_info "Building Frontend"
(
sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" backend/package.json
sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" frontend/package.json
cd ./frontend || exit
# Replace node-sass with sass in package.json before installation
sed -i 's/"node-sass".*$/"sass": "^1.92.1",/g' package.json
$STD yarn install --network-timeout 600000
$STD yarn build
)
msg_ok "Built Frontend"
msg_info "Stopping Services" msg_info "Stopping Services"
systemctl stop openresty systemctl stop openresty
systemctl stop npm systemctl stop npm
msg_ok "Stopped Services" msg_ok "Stopped Services"
msg_info "Cleaning Old Files" msg_info "Cleaning old files"
rm -rf /app \ $STD rm -rf /app \
/var/www/html \ /var/www/html \
/etc/nginx \ /etc/nginx \
/var/log/nginx \ /var/log/nginx \
/var/lib/nginx \ /var/lib/nginx \
"$STD" /var/cache/nginx /var/cache/nginx
msg_ok "Cleaned Old Files" msg_ok "Cleaned old files"
msg_info "Setting up Environment" msg_info "Setting up Environment"
ln -sf /usr/bin/python3 /usr/bin/python ln -sf /usr/bin/python3 /usr/bin/python
ln -sf /opt/certbot/bin/certbot /usr/local/bin/certbot
ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx
ln -sf /usr/local/openresty/nginx/ /etc/nginx ln -sf /usr/local/openresty/nginx/ /etc/nginx
sed -i 's+^daemon+#daemon+g' docker/rootfs/etc/nginx/nginx.conf sed -i "s|\"version\": \"2.0.0\"|\"version\": \"$RELEASE\"|" /opt/nginxproxymanager/backend/package.json
NGINX_CONFS=$(find "$(pwd)" -type f -name "*.conf") sed -i "s|\"version\": \"2.0.0\"|\"version\": \"$RELEASE\"|" /opt/nginxproxymanager/frontend/package.json
sed -i 's+^daemon+#daemon+g' /opt/nginxproxymanager/docker/rootfs/etc/nginx/nginx.conf
NGINX_CONFS=$(find /opt/nginxproxymanager -type f -name "*.conf")
for NGINX_CONF in $NGINX_CONFS; do for NGINX_CONF in $NGINX_CONFS; do
sed -i 's+include conf.d+include /etc/nginx/conf.d+g' "$NGINX_CONF" sed -i 's+include conf.d+include /etc/nginx/conf.d+g' "$NGINX_CONF"
done done
mkdir -p /var/www/html /etc/nginx/logs mkdir -p /var/www/html /etc/nginx/logs
cp -r docker/rootfs/var/www/html/* /var/www/html/ cp -r /opt/nginxproxymanager/docker/rootfs/var/www/html/* /var/www/html/
cp -r docker/rootfs/etc/nginx/* /etc/nginx/ cp -r /opt/nginxproxymanager/docker/rootfs/etc/nginx/* /etc/nginx/
cp docker/rootfs/etc/letsencrypt.ini /etc/letsencrypt.ini cp /opt/nginxproxymanager/docker/rootfs/etc/letsencrypt.ini /etc/letsencrypt.ini
cp docker/rootfs/etc/logrotate.d/nginx-proxy-manager /etc/logrotate.d/nginx-proxy-manager cp /opt/nginxproxymanager/docker/rootfs/etc/logrotate.d/nginx-proxy-manager /etc/logrotate.d/nginx-proxy-manager
ln -sf /etc/nginx/nginx.conf /etc/nginx/conf/nginx.conf ln -sf /etc/nginx/nginx.conf /etc/nginx/conf/nginx.conf
rm -f /etc/nginx/conf.d/dev.conf rm -f /etc/nginx/conf.d/dev.conf
mkdir -p /tmp/nginx/body \ mkdir -p /tmp/nginx/body \
/run/nginx \ /run/nginx \
/data/nginx \ /data/nginx \
@@ -112,27 +99,33 @@ function update_script() {
/var/lib/nginx/cache/public \ /var/lib/nginx/cache/public \
/var/lib/nginx/cache/private \ /var/lib/nginx/cache/private \
/var/cache/nginx/proxy_temp /var/cache/nginx/proxy_temp
chmod -R 777 /var/cache/nginx chmod -R 777 /var/cache/nginx
chown root /tmp/nginx chown root /tmp/nginx
echo resolver "$(awk 'BEGIN{ORS=" "} $1=="nameserver" {print ($2 ~ ":")? "["$2"]": $2}' /etc/resolv.conf);" >/etc/nginx/conf.d/include/resolvers.conf echo resolver "$(awk 'BEGIN{ORS=" "} $1=="nameserver" {print ($2 ~ ":")? "["$2"]": $2}' /etc/resolv.conf);" >/etc/nginx/conf.d/include/resolvers.conf
if [ ! -f /data/nginx/dummycert.pem ] || [ ! -f /data/nginx/dummykey.pem ]; then if [ ! -f /data/nginx/dummycert.pem ] || [ ! -f /data/nginx/dummykey.pem ]; then
$STD openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -subj "/O=Nginx Proxy Manager/OU=Dummy Certificate/CN=localhost" -keyout /data/nginx/dummykey.pem -out /data/nginx/dummycert.pem $STD openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -subj "/O=Nginx Proxy Manager/OU=Dummy Certificate/CN=localhost" -keyout /data/nginx/dummykey.pem -out /data/nginx/dummycert.pem
fi fi
mkdir -p /app/global /app/frontend/images
cp -r frontend/dist/* /app/frontend
cp -r frontend/app-images/* /app/frontend/images
cp -r backend/* /app
cp -r global/* /app/global
# Update Certbot and plugins in virtual environment mkdir -p /app/frontend/images
if [ -d /opt/certbot ]; then cp -r /opt/nginxproxymanager/backend/* /app
$STD /opt/certbot/bin/pip install --upgrade pip setuptools wheel
$STD /opt/certbot/bin/pip install --upgrade certbot certbot-dns-cloudflare
fi
msg_ok "Set up Environment" msg_ok "Set up Environment"
msg_info "Building Frontend"
export NODE_OPTIONS="--max_old_space_size=2048 --openssl-legacy-provider"
cd /opt/nginxproxymanager/frontend
# Replace node-sass with sass in package.json before installation
sed -E -i 's/"node-sass" *: *"([^"]*)"/"sass": "\1"/g' package.json
$STD yarn install --network-timeout 600000
$STD yarn build
cp -r /opt/nginxproxymanager/frontend/dist/* /app/frontend
cp -r /opt/nginxproxymanager/frontend/public/images/* /app/frontend/images
msg_ok "Built Frontend"
msg_info "Initializing Backend" msg_info "Initializing Backend"
$STD rm -rf /app/config/default.json rm -rf /app/config/default.json
if [ ! -f /app/config/production.json ]; then if [ ! -f /app/config/production.json ]; then
cat <<'EOF' >/app/config/production.json cat <<'EOF' >/app/config/production.json
{ {
@@ -148,23 +141,37 @@ function update_script() {
} }
EOF EOF
fi fi
cd /app || exit cd /app
export NODE_OPTIONS="--openssl-legacy-provider"
$STD yarn install --network-timeout 600000 $STD yarn install --network-timeout 600000
msg_ok "Initialized Backend" msg_ok "Initialized Backend"
msg_info "Updating Certbot"
[ -f /etc/apt/trusted.gpg.d/openresty-archive-keyring.gpg ] && rm -f /etc/apt/trusted.gpg.d/openresty-archive-keyring.gpg
[ -f /etc/apt/sources.list.d/openresty.list ] && rm -f /etc/apt/sources.list.d/openresty.list
[ ! -f /etc/apt/trusted.gpg.d/openresty.gpg ] && curl -fsSL https://openresty.org/package/pubkey.gpg | gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/openresty.gpg
[ ! -f /etc/apt/sources.list.d/openresty.sources ] && cat <<'EOF' >/etc/apt/sources.list.d/openresty.sources
Types: deb
URIs: http://openresty.org/package/debian/
Suites: bookworm
Components: openresty
Signed-By: /etc/apt/trusted.gpg.d/openresty.gpg
EOF
$STD apt update
$STD apt -y install openresty
if [ -d /opt/certbot ]; then
$STD /opt/certbot/bin/pip install --upgrade pip setuptools wheel
$STD /opt/certbot/bin/pip install --upgrade certbot certbot-dns-cloudflare
fi
msg_ok "Updated Certbot"
msg_info "Starting Services" msg_info "Starting Services"
sed -i 's/user npm/user root/g; s/^pid/#pid/g' /usr/local/openresty/nginx/conf/nginx.conf sed -i 's/user npm/user root/g; s/^pid/#pid/g' /usr/local/openresty/nginx/conf/nginx.conf
sed -i 's/su npm npm/su root root/g' /etc/logrotate.d/nginx-proxy-manager sed -r -i 's/^([[:space:]]*)su npm npm/\1#su npm npm/g;' /etc/logrotate.d/nginx-proxy-manager
sed -i 's/include-system-site-packages = false/include-system-site-packages = true/g' /opt/certbot/pyvenv.cfg
systemctl enable -q --now openresty systemctl enable -q --now openresty
systemctl enable -q --now npm systemctl enable -q --now npm
systemctl restart openresty
msg_ok "Started Services" msg_ok "Started Services"
msg_info "Cleaning up"
rm -rf ~/nginx-proxy-manager-*
msg_ok "Cleaned"
msg_ok "Updated successfully!" msg_ok "Updated successfully!"
exit exit
} }

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2025 tteck
# Author: havardthom # Author: tteck | Co-Author: havardthom | Co-Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://openwebui.com/ # Source: https://openwebui.com/
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-8192}" var_ram="${var_ram:-8192}"
var_disk="${var_disk:-25}" var_disk="${var_disk:-25}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -23,7 +23,7 @@ function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -d /opt/open-webui ]]; then if [[ ! -d /root/.open-webui ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
@@ -50,29 +50,8 @@ function update_script() {
fi fi
fi fi
msg_info "Updating ${APP} (Patience)" msg_info "Restarting Open WebUI to initiate update"
cd /opt/open-webui systemctl restart open-webui
mkdir -p /opt/open-webui-backup
cp -rf /opt/open-webui/backend/data /opt/open-webui-backup
git add -A
$STD git stash
$STD git reset --hard
output=$(git pull --no-rebase)
if echo "$output" | grep -q "Already up to date."; then
msg_ok "$APP is already up to date."
exit
fi
systemctl stop open-webui.service
$STD npm install --force
export NODE_OPTIONS="--max-old-space-size=6000"
$STD npm run build
cd ./backend
$STD pip install -r requirements.txt -U
cp -rf /opt/open-webui-backup/* /opt/open-webui/backend
if git stash list | grep -q 'stash@{'; then
$STD git stash pop
fi
systemctl start open-webui.service
msg_ok "Updated successfully!" msg_ok "Updated successfully!"
exit exit
} }

View File

@@ -42,12 +42,8 @@ function update_script() {
fi fi
msg_info "Stopping Services" msg_info "Stopping Services"
$STD systemctl stop zabbix-server systemctl stop zabbix-server
if systemctl list-unit-files | grep -q zabbix-agent2; then systemctl stop "$AGENT_SERVICE"
$STD systemctl stop zabbix-agent2
else
$STD systemctl stop zabbix-agent
fi
msg_ok "Stopped Services" msg_ok "Stopped Services"
msg_info "Updating Zabbix" msg_info "Updating Zabbix"
@@ -88,12 +84,8 @@ function update_script() {
msg_ok "Updated Zabbix" msg_ok "Updated Zabbix"
msg_info "Starting Services" msg_info "Starting Services"
$STD systemctl start zabbix-server systemctl start zabbix-server
if systemctl list-unit-files | grep -q zabbix-agent2; then systemctl start "$AGENT_SERVICE"
$STD systemctl start zabbix-agent2
else
$STD systemctl start zabbix-agent
fi
systemctl restart apache2 systemctl restart apache2
msg_ok "Started Services" msg_ok "Started Services"

View File

@@ -10,7 +10,7 @@
"privileged": false, "privileged": false,
"interface_port": 2021, "interface_port": 2021,
"documentation": "https://docs.donetick.com/getting-started/", "documentation": "https://docs.donetick.com/getting-started/",
"config_path": "/opt/donetick/selfhosted.yml", "config_path": "/opt/donetick/config/selfhosted.yml",
"website": "https://donetick.com", "website": "https://donetick.com",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/donetick.webp", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/donetick.webp",
"description": "Donetick an open-source, user-friendly app for managing tasks and chores, featuring customizable options to help you and others stay organized", "description": "Donetick an open-source, user-friendly app for managing tasks and chores, featuring customizable options to help you and others stay organized",

View File

@@ -20,7 +20,7 @@
"script": "ct/jotty.sh", "script": "ct/jotty.sh",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 3072, "ram": 4096,
"hdd": 6, "hdd": 6,
"os": "debian", "os": "debian",
"version": "13" "version": "13"

View File

@@ -20,8 +20,8 @@
"script": "ct/nginxproxymanager.sh", "script": "ct/nginxproxymanager.sh",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 1024, "ram": 2048,
"hdd": 4, "hdd": 8,
"os": "debian", "os": "debian",
"version": "13" "version": "13"
} }
@@ -33,12 +33,8 @@
}, },
"notes": [ "notes": [
{ {
"text": "Since there are hundreds of Certbot instances, it's necessary to install the specific Certbot of your preference. Running `/app/scripts/install-certbot-plugins` within the nginxproxymanager LXC shell will install many additional plugins.", "text": "You can install the specific one certbot you prefer, or you can Running /app/scripts/install-certbot-plugins within the Nginx Proxy Manager (NPM) LXC shell will install many common plugins. Important: This script does not install all Certbot plugins, as some require additional, external system dependencies (like specific packages for certain DNS providers). These external dependencies must be manually installed within the LXC container before you can successfully install and use the corresponding Certbot plugin. Consult the plugin's documentation for required packages.",
"type": "warning" "type": "info"
},
{
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
"type": "warning"
} }
] ]
} }

View File

@@ -12,7 +12,7 @@
"documentation": "https://docs.openwebui.com/", "documentation": "https://docs.openwebui.com/",
"website": "https://openwebui.com/", "website": "https://openwebui.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/open-webui.webp", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/open-webui.webp",
"config_path": "/opt/open-webui/.env", "config_path": "/root/.env",
"description": "OpenWebUI is a self-hosted, web-based interface that allows you to run AI models entirely offline. It integrates with various LLM runners, such as OpenAI and Ollama, and supports features like markdown and LaTeX rendering, model management, and voice/video calls. It also offers multilingual support and the ability to generate images using APIs like DALL-E or ComfyUI", "description": "OpenWebUI is a self-hosted, web-based interface that allows you to run AI models entirely offline. It integrates with various LLM runners, such as OpenAI and Ollama, and supports features like markdown and LaTeX rendering, model management, and voice/video calls. It also offers multilingual support and the ability to generate images using APIs like DALL-E or ComfyUI",
"install_methods": [ "install_methods": [
{ {
@@ -23,7 +23,7 @@
"ram": 8192, "ram": 8192,
"hdd": 25, "hdd": 25,
"os": "debian", "os": "debian",
"version": "12" "version": "13"
} }
} }
], ],
@@ -35,6 +35,10 @@
{ {
"text": "Script contains optional installation of Ollama.", "text": "Script contains optional installation of Ollama.",
"type": "info" "type": "info"
},
{
"text": "Initial run of the application/container can take some time, depending on your host speed, as the application is installed/updated at runtime. Please be patient!",
"type": "warning"
} }
] ]
} }

View File

@@ -1,4 +1,214 @@
[ [
{
"name": "getumbrel/umbrel",
"version": "1.5.0",
"date": "2025-11-05T11:10:20Z"
},
{
"name": "home-assistant/core",
"version": "2025.10.4",
"date": "2025-10-24T20:03:03Z"
},
{
"name": "emqx/emqx",
"version": "e5.10.2-alpha.1",
"date": "2025-11-05T09:55:26Z"
},
{
"name": "glpi-project/glpi",
"version": "11.0.2",
"date": "2025-11-05T09:55:05Z"
},
{
"name": "zitadel/zitadel",
"version": "v4.6.3",
"date": "2025-11-05T09:16:08Z"
},
{
"name": "nicolargo/glances",
"version": "v4.4.1",
"date": "2025-11-05T09:08:23Z"
},
{
"name": "evcc-io/evcc",
"version": "0.209.7",
"date": "2025-11-05T08:32:08Z"
},
{
"name": "SigNoz/signoz",
"version": "v0.100.0",
"date": "2025-11-05T06:38:34Z"
},
{
"name": "NginxProxyManager/nginx-proxy-manager",
"version": "v2.13.1",
"date": "2025-11-05T06:06:08Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.24.250",
"date": "2025-11-05T05:55:30Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.535",
"date": "2025-11-05T05:30:07Z"
},
{
"name": "slskd/slskd",
"version": "0.24.0",
"date": "2025-11-05T02:17:00Z"
},
{
"name": "Sonarr/Sonarr",
"version": "v4.0.16.2944",
"date": "2025-11-05T01:56:48Z"
},
{
"name": "jeedom/core",
"version": "4.4.20",
"date": "2025-11-05T00:27:06Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.0.1",
"date": "2025-10-15T16:53:55Z"
},
{
"name": "gethomepage/homepage",
"version": "v1.6.1",
"date": "2025-11-05T00:21:14Z"
},
{
"name": "FlareSolverr/FlareSolverr",
"version": "v3.4.4",
"date": "2025-11-04T23:05:14Z"
},
{
"name": "henrygd/beszel",
"version": "v0.15.4",
"date": "2025-11-04T22:34:12Z"
},
{
"name": "chrisbenincasa/tunarr",
"version": "v0.23.0-alpha.21",
"date": "2025-11-04T22:05:17Z"
},
{
"name": "wizarrrr/wizarr",
"version": "v2025.11.1",
"date": "2025-11-04T20:55:51Z"
},
{
"name": "go-gitea/gitea",
"version": "v1.25.1",
"date": "2025-11-04T20:01:09Z"
},
{
"name": "runtipi/runtipi",
"version": "v4.6.2",
"date": "2025-11-03T19:45:24Z"
},
{
"name": "element-hq/synapse",
"version": "v1.142.0rc2",
"date": "2025-11-04T16:22:11Z"
},
{
"name": "keycloak/keycloak",
"version": "26.0.17",
"date": "2025-11-03T15:30:01Z"
},
{
"name": "jhuckaby/Cronicle",
"version": "v0.9.100",
"date": "2025-11-04T17:44:39Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.30.6",
"date": "2025-11-04T17:41:01Z"
},
{
"name": "meilisearch/meilisearch",
"version": "prototype-v1.24.0-s3-snapshots-4",
"date": "2025-11-04T16:46:01Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "v1.129.1",
"date": "2025-11-04T15:15:47Z"
},
{
"name": "prometheus/alertmanager",
"version": "v0.29.0",
"date": "2025-11-04T15:00:07Z"
},
{
"name": "cross-seed/cross-seed",
"version": "v6.13.6",
"date": "2025-11-04T13:35:35Z"
},
{
"name": "OctoPrint/OctoPrint",
"version": "1.11.4",
"date": "2025-11-04T12:43:30Z"
},
{
"name": "home-assistant/operating-system",
"version": "16.3",
"date": "2025-11-04T12:28:47Z"
},
{
"name": "mattermost/mattermost",
"version": "v10.11.6",
"date": "2025-11-04T09:43:16Z"
},
{
"name": "syncthing/syncthing",
"version": "v2.0.11",
"date": "2025-11-04T08:51:05Z"
},
{
"name": "redis/redis",
"version": "8.4-rc1-int2",
"date": "2025-11-03T09:00:38Z"
},
{
"name": "clusterzx/paperless-ai",
"version": "v3.0.9",
"date": "2025-11-04T07:28:45Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.4.4",
"date": "2025-11-01T19:48:08Z"
},
{
"name": "immich-app/immich",
"version": "v2.2.3",
"date": "2025-11-04T03:14:34Z"
},
{
"name": "esphome/esphome",
"version": "2025.10.4",
"date": "2025-11-04T03:04:13Z"
},
{
"name": "paperless-ngx/paperless-ngx",
"version": "v2.19.4",
"date": "2025-11-04T01:34:35Z"
},
{
"name": "hyperion-project/hyperion.ng",
"version": "2.1.1",
"date": "2025-06-14T17:45:06Z"
},
{
"name": "actualbudget/actual",
"version": "v25.11.0",
"date": "2025-11-04T00:32:21Z"
},
{ {
"name": "inventree/InvenTree", "name": "inventree/InvenTree",
"version": "1.1.2", "version": "1.1.2",
@@ -9,26 +219,11 @@
"version": "v1.79.1.rc.2", "version": "v1.79.1.rc.2",
"date": "2025-11-03T23:14:45Z" "date": "2025-11-03T23:14:45Z"
}, },
{
"name": "actualbudget/actual",
"version": "v25.11.0",
"date": "2025-11-03T23:12:18Z"
},
{ {
"name": "gtsteffaniak/filebrowser", "name": "gtsteffaniak/filebrowser",
"version": "v1.0.0-stable", "version": "v1.0.0-stable",
"date": "2025-11-03T22:24:23Z" "date": "2025-11-03T22:24:23Z"
}, },
{
"name": "prometheus/alertmanager",
"version": "v0.29.0",
"date": "2025-11-03T20:10:26Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.4.4",
"date": "2025-11-01T19:48:08Z"
},
{ {
"name": "azukaar/Cosmos-Server", "name": "azukaar/Cosmos-Server",
"version": "v0.18.4", "version": "v0.18.4",
@@ -39,21 +234,6 @@
"version": "v2.16.37", "version": "v2.16.37",
"date": "2025-10-30T07:54:49Z" "date": "2025-10-30T07:54:49Z"
}, },
{
"name": "wizarrrr/wizarr",
"version": "v2025.11.0",
"date": "2025-11-03T19:55:44Z"
},
{
"name": "home-assistant/core",
"version": "2025.10.4",
"date": "2025-10-24T20:03:03Z"
},
{
"name": "runtipi/runtipi",
"version": "v4.6.2",
"date": "2025-11-03T19:45:24Z"
},
{ {
"name": "jupyter/notebook", "name": "jupyter/notebook",
"version": "@jupyter-notebook/ui-components@7.5.0-rc.0", "version": "@jupyter-notebook/ui-components@7.5.0-rc.0",
@@ -64,11 +244,6 @@
"version": "0.50.39", "version": "0.50.39",
"date": "2025-11-03T17:58:41Z" "date": "2025-11-03T17:58:41Z"
}, },
{
"name": "msgbyte/tianji",
"version": "v1.30.5",
"date": "2025-11-03T17:23:36Z"
},
{ {
"name": "cloudflare/cloudflared", "name": "cloudflare/cloudflared",
"version": "2025.10.1-3-g52809511", "version": "2025.10.1-3-g52809511",
@@ -89,41 +264,11 @@
"version": "debian/12.1.34", "version": "debian/12.1.34",
"date": "2025-11-03T16:42:07Z" "date": "2025-11-03T16:42:07Z"
}, },
{
"name": "Sonarr/Sonarr",
"version": "v4.0.15.2941",
"date": "2025-06-20T17:20:54Z"
},
{
"name": "keycloak/keycloak",
"version": "26.0.17",
"date": "2025-11-03T15:30:01Z"
},
{
"name": "immich-app/immich",
"version": "v2.2.2",
"date": "2025-11-03T15:10:24Z"
},
{
"name": "clusterzx/paperless-ai",
"version": "v3.0.8",
"date": "2025-11-03T14:04:27Z"
},
{ {
"name": "n8n-io/n8n", "name": "n8n-io/n8n",
"version": "n8n@1.117.3", "version": "n8n@1.117.3",
"date": "2025-10-28T12:00:42Z" "date": "2025-10-28T12:00:42Z"
}, },
{
"name": "nicolargo/glances",
"version": "v4.4.1",
"date": "2025-11-03T13:52:05Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.129.0",
"date": "2025-11-03T13:00:28Z"
},
{ {
"name": "Graylog2/graylog2-server", "name": "Graylog2/graylog2-server",
"version": "7.0.0", "version": "7.0.0",
@@ -134,11 +279,6 @@
"version": "v1.4.2", "version": "v1.4.2",
"date": "2025-11-03T11:52:53Z" "date": "2025-11-03T11:52:53Z"
}, },
{
"name": "redis/redis",
"version": "8.4-rc1-int2",
"date": "2025-11-03T09:00:38Z"
},
{ {
"name": "silverbulletmd/silverbullet", "name": "silverbulletmd/silverbullet",
"version": "2.2.1", "version": "2.2.1",
@@ -149,31 +289,11 @@
"version": "fumadocs-mdx@13.0.5", "version": "fumadocs-mdx@13.0.5",
"date": "2025-11-03T06:55:11Z" "date": "2025-11-03T06:55:11Z"
}, },
{
"name": "Jackett/Jackett",
"version": "v0.24.244",
"date": "2025-11-03T05:55:23Z"
},
{ {
"name": "jellyfin/jellyfin", "name": "jellyfin/jellyfin",
"version": "v10.11.2", "version": "v10.11.2",
"date": "2025-11-03T02:29:00Z" "date": "2025-11-03T02:29:00Z"
}, },
{
"name": "hyperion-project/hyperion.ng",
"version": "2.1.1",
"date": "2025-06-14T17:45:06Z"
},
{
"name": "jeedom/core",
"version": "4.4.20",
"date": "2025-11-03T00:27:04Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.0.1",
"date": "2025-10-15T16:53:55Z"
},
{ {
"name": "maxdorninger/MediaManager", "name": "maxdorninger/MediaManager",
"version": "v1.9.1", "version": "v1.9.1",
@@ -192,7 +312,7 @@
{ {
"name": "theonedev/onedev", "name": "theonedev/onedev",
"version": "v13.0.10", "version": "v13.0.10",
"date": "2025-11-01T02:08:01Z" "date": "2025-11-02T02:47:45Z"
}, },
{ {
"name": "9001/copyparty", "name": "9001/copyparty",
@@ -204,31 +324,16 @@
"version": "2.6.3", "version": "2.6.3",
"date": "2025-11-01T20:48:39Z" "date": "2025-11-01T20:48:39Z"
}, },
{
"name": "henrygd/beszel",
"version": "v0.15.3",
"date": "2025-11-01T20:13:33Z"
},
{ {
"name": "motioneye-project/motioneye", "name": "motioneye-project/motioneye",
"version": "0.42.1", "version": "0.42.1",
"date": "2020-06-07T07:27:04Z" "date": "2020-06-07T07:27:04Z"
}, },
{
"name": "chrisbenincasa/tunarr",
"version": "v0.23.0-alpha.20",
"date": "2025-11-01T11:42:54Z"
},
{ {
"name": "Luligu/matterbridge", "name": "Luligu/matterbridge",
"version": "3.3.6", "version": "3.3.6",
"date": "2025-11-01T10:41:15Z" "date": "2025-11-01T10:41:15Z"
}, },
{
"name": "cross-seed/cross-seed",
"version": "v6.13.5",
"date": "2025-09-27T01:10:59Z"
},
{ {
"name": "ollama/ollama", "name": "ollama/ollama",
"version": "v0.12.9", "version": "v0.12.9",
@@ -239,11 +344,6 @@
"version": "v1.90.6", "version": "v1.90.6",
"date": "2025-10-31T22:24:04Z" "date": "2025-10-31T22:24:04Z"
}, },
{
"name": "evcc-io/evcc",
"version": "0.209.6",
"date": "2025-10-31T20:13:49Z"
},
{ {
"name": "homarr-labs/homarr", "name": "homarr-labs/homarr",
"version": "v1.43.1", "version": "v1.43.1",
@@ -264,11 +364,6 @@
"version": "v0.62.12", "version": "v0.62.12",
"date": "2025-10-31T17:30:55Z" "date": "2025-10-31T17:30:55Z"
}, },
{
"name": "zitadel/zitadel",
"version": "v4.6.2",
"date": "2025-10-31T15:41:19Z"
},
{ {
"name": "bunkerity/bunkerweb", "name": "bunkerity/bunkerweb",
"version": "testing", "version": "testing",
@@ -289,11 +384,6 @@
"version": "planka-1.1.1", "version": "planka-1.1.1",
"date": "2025-10-31T12:38:47Z" "date": "2025-10-31T12:38:47Z"
}, },
{
"name": "mattermost/mattermost",
"version": "mattermost-redux@11.0.4",
"date": "2025-10-30T16:44:14Z"
},
{ {
"name": "chrisvel/tududi", "name": "chrisvel/tududi",
"version": "v0.85.1", "version": "v0.85.1",
@@ -309,11 +399,6 @@
"version": "v1.10.1", "version": "v1.10.1",
"date": "2025-10-31T08:25:57Z" "date": "2025-10-31T08:25:57Z"
}, },
{
"name": "getumbrel/umbrel",
"version": "1.4.2",
"date": "2025-05-09T08:54:49Z"
},
{ {
"name": "pymedusa/Medusa", "name": "pymedusa/Medusa",
"version": "v1.0.24", "version": "v1.0.24",
@@ -389,26 +474,11 @@
"version": "v1.11.1", "version": "v1.11.1",
"date": "2025-10-29T22:09:26Z" "date": "2025-10-29T22:09:26Z"
}, },
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.534",
"date": "2025-10-29T21:01:24Z"
},
{ {
"name": "influxdata/influxdb", "name": "influxdata/influxdb",
"version": "v2.7.12", "version": "v2.7.12",
"date": "2025-05-29T17:08:26Z" "date": "2025-05-29T17:08:26Z"
}, },
{
"name": "paperless-ngx/paperless-ngx",
"version": "v2.19.3",
"date": "2025-10-29T17:58:16Z"
},
{
"name": "go-gitea/gitea",
"version": "v1.25.0",
"date": "2025-10-29T16:57:54Z"
},
{ {
"name": "zwave-js/zwave-js-ui", "name": "zwave-js/zwave-js-ui",
"version": "v11.6.1", "version": "v11.6.1",
@@ -424,11 +494,6 @@
"version": "2.11.0", "version": "2.11.0",
"date": "2025-10-29T14:26:23Z" "date": "2025-10-29T14:26:23Z"
}, },
{
"name": "element-hq/synapse",
"version": "v1.141.0",
"date": "2025-10-29T11:45:43Z"
},
{ {
"name": "cockpit-project/cockpit", "name": "cockpit-project/cockpit",
"version": "350", "version": "350",
@@ -444,11 +509,6 @@
"version": "cassandra-5.0.6", "version": "cassandra-5.0.6",
"date": "2025-10-29T07:40:47Z" "date": "2025-10-29T07:40:47Z"
}, },
{
"name": "SigNoz/signoz",
"version": "v0.99.0",
"date": "2025-10-29T06:32:09Z"
},
{ {
"name": "openobserve/openobserve", "name": "openobserve/openobserve",
"version": "v0.15.3", "version": "v0.15.3",
@@ -504,11 +564,6 @@
"version": "v25.4", "version": "v25.4",
"date": "2025-10-09T10:27:01Z" "date": "2025-10-09T10:27:01Z"
}, },
{
"name": "FlareSolverr/FlareSolverr",
"version": "v3.4.3",
"date": "2025-10-28T10:21:56Z"
},
{ {
"name": "thecfu/scraparr", "name": "thecfu/scraparr",
"version": "v3.0.0-beta.2", "version": "v3.0.0-beta.2",
@@ -524,16 +579,6 @@
"version": "v0.27.0", "version": "v0.27.0",
"date": "2025-10-27T11:16:35Z" "date": "2025-10-27T11:16:35Z"
}, },
{
"name": "emqx/emqx",
"version": "e6.0.1-alpha.2",
"date": "2025-10-27T09:36:30Z"
},
{
"name": "syncthing/syncthing",
"version": "v2.0.10",
"date": "2025-09-24T08:33:37Z"
},
{ {
"name": "Radarr/Radarr", "name": "Radarr/Radarr",
"version": "v5.28.0.10274", "version": "v5.28.0.10274",
@@ -579,21 +624,11 @@
"version": "v1.7.3", "version": "v1.7.3",
"date": "2025-10-24T10:51:12Z" "date": "2025-10-24T10:51:12Z"
}, },
{
"name": "meilisearch/meilisearch",
"version": "prototype-v1.24.0.s3-snapshots-3",
"date": "2025-10-24T09:47:47Z"
},
{ {
"name": "pocketbase/pocketbase", "name": "pocketbase/pocketbase",
"version": "v0.31.0", "version": "v0.31.0",
"date": "2025-10-24T04:07:27Z" "date": "2025-10-24T04:07:27Z"
}, },
{
"name": "esphome/esphome",
"version": "2025.10.3",
"date": "2025-10-24T01:08:22Z"
},
{ {
"name": "drakkan/sftpgo", "name": "drakkan/sftpgo",
"version": "v2.7.0", "version": "v2.7.0",
@@ -614,11 +649,6 @@
"version": "v2.2.0.0_stable_2025-10-23", "version": "v2.2.0.0_stable_2025-10-23",
"date": "2025-10-23T11:48:25Z" "date": "2025-10-23T11:48:25Z"
}, },
{
"name": "jhuckaby/Cronicle",
"version": "v0.9.99",
"date": "2025-10-22T22:20:33Z"
},
{ {
"name": "rcourtman/Pulse", "name": "rcourtman/Pulse",
"version": "issue-596", "version": "issue-596",
@@ -789,11 +819,6 @@
"version": "v4.5.5", "version": "v4.5.5",
"date": "2025-10-14T18:48:36Z" "date": "2025-10-14T18:48:36Z"
}, },
{
"name": "home-assistant/operating-system",
"version": "16.2",
"date": "2025-09-08T14:03:25Z"
},
{ {
"name": "rogerfar/rdt-client", "name": "rogerfar/rdt-client",
"version": "v2.0.119", "version": "v2.0.119",
@@ -849,11 +874,6 @@
"version": "r1945", "version": "r1945",
"date": "2025-10-10T02:30:05Z" "date": "2025-10-10T02:30:05Z"
}, },
{
"name": "glpi-project/glpi",
"version": "11.0.1",
"date": "2025-10-09T12:34:15Z"
},
{ {
"name": "autobrr/autobrr", "name": "autobrr/autobrr",
"version": "v1.68.0", "version": "v1.68.0",
@@ -979,11 +999,6 @@
"version": "REL_18_0", "version": "REL_18_0",
"date": "2025-09-22T20:11:33Z" "date": "2025-09-22T20:11:33Z"
}, },
{
"name": "gethomepage/homepage",
"version": "v1.5.0",
"date": "2025-09-22T15:28:49Z"
},
{ {
"name": "itsmng/itsm-ng", "name": "itsmng/itsm-ng",
"version": "v2.1.0", "version": "v2.1.0",
@@ -1074,11 +1089,6 @@
"version": "2.1.4", "version": "2.1.4",
"date": "2025-09-10T12:08:09Z" "date": "2025-09-10T12:08:09Z"
}, },
{
"name": "OctoPrint/OctoPrint",
"version": "1.11.3",
"date": "2025-09-09T08:03:31Z"
},
{ {
"name": "Tautulli/Tautulli", "name": "Tautulli/Tautulli",
"version": "v2.16.0", "version": "v2.16.0",
@@ -1179,11 +1189,6 @@
"version": "v2.5.308", "version": "v2.5.308",
"date": "2025-08-13T07:09:29Z" "date": "2025-08-13T07:09:29Z"
}, },
{
"name": "slskd/slskd",
"version": "0.23.2",
"date": "2025-08-10T23:35:07Z"
},
{ {
"name": "ioBroker/ioBroker", "name": "ioBroker/ioBroker",
"version": "1012-08-09", "version": "1012-08-09",
@@ -1249,11 +1254,6 @@
"version": "1.3.11", "version": "1.3.11",
"date": "2025-07-13T13:33:48Z" "date": "2025-07-13T13:33:48Z"
}, },
{
"name": "NginxProxyManager/nginx-proxy-manager",
"version": "v2.12.6",
"date": "2025-07-09T21:52:15Z"
},
{ {
"name": "photoprism/photoprism", "name": "photoprism/photoprism",
"version": "250707-d28b3101e", "version": "250707-d28b3101e",

View File

@@ -288,7 +288,7 @@ GEO_DIR="${INSTALL_DIR}/geodata"
mkdir -p "$INSTALL_DIR" mkdir -p "$INSTALL_DIR"
mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${INSTALL_DIR}"/cache} mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${INSTALL_DIR}"/cache}
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v2.2.2" "$SRC_DIR" fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v2.2.3" "$SRC_DIR"
msg_info "Installing ${APPLICATION} (patience)" msg_info "Installing ${APPLICATION} (patience)"

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2025 Community-Scripts ORG
# Author: tteck (tteckster) # Author: tteck (tteckster) | Co-Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://nginxproxymanager.com/ # Source: https://nginxproxymanager.com/
@@ -39,18 +39,15 @@ $STD /opt/certbot/bin/pip install certbot certbot-dns-cloudflare
ln -sf /opt/certbot/bin/certbot /usr/local/bin/certbot ln -sf /opt/certbot/bin/certbot /usr/local/bin/certbot
msg_ok "Set up Certbot" msg_ok "Set up Certbot"
VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)"
msg_info "Installing Openresty" msg_info "Installing Openresty"
curl -fsSL "https://openresty.org/package/pubkey.gpg" | gpg --dearmor -o /etc/apt/trusted.gpg.d/openresty-archive-keyring.gpg curl -fsSL "https://openresty.org/package/pubkey.gpg" | gpg --dearmor -o /etc/apt/trusted.gpg.d/openresty.gpg
case "$VERSION" in cat <<'EOF' >/etc/apt/sources.list.d/openresty.sources
trixie) Types: deb
echo -e "deb http://openresty.org/package/debian bookworm openresty" >/etc/apt/sources.list.d/openresty.list URIs: http://openresty.org/package/debian/
;; Suites: bookworm
*) Components: openresty
echo -e "deb http://openresty.org/package/debian $VERSION openresty" >/etc/apt/sources.list.d/openresty.list Signed-By: /etc/apt/trusted.gpg.d/openresty.gpg
;; EOF
esac
$STD apt update $STD apt update
$STD apt -y install openresty $STD apt -y install openresty
msg_ok "Installed Openresty" msg_ok "Installed Openresty"
@@ -61,28 +58,25 @@ RELEASE=$(curl -fsSL https://api.github.com/repos/NginxProxyManager/nginx-proxy-
grep "tag_name" | grep "tag_name" |
awk '{print substr($2, 3, length($2)-4) }') awk '{print substr($2, 3, length($2)-4) }')
msg_info "Downloading Nginx Proxy Manager v${RELEASE}" fetch_and_deploy_gh_release "nginxproxymanager" "NginxProxyManager/nginx-proxy-manager"
curl -fsSL "https://codeload.github.com/NginxProxyManager/nginx-proxy-manager/tar.gz/v${RELEASE}" | tar -xz
cd ./nginx-proxy-manager-"${RELEASE}"
msg_ok "Downloaded Nginx Proxy Manager v${RELEASE}"
msg_info "Setting up Environment" msg_info "Setting up Environment"
ln -sf /usr/bin/python3 /usr/bin/python ln -sf /usr/bin/python3 /usr/bin/python
ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx
ln -sf /usr/local/openresty/nginx/ /etc/nginx ln -sf /usr/local/openresty/nginx/ /etc/nginx
sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" backend/package.json sed -i "s|\"version\": \"2.0.0\"|\"version\": \"$RELEASE\"|" /opt/nginxproxymanager/backend/package.json
sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" frontend/package.json sed -i "s|\"version\": \"2.0.0\"|\"version\": \"$RELEASE\"|" /opt/nginxproxymanager/frontend/package.json
sed -i 's+^daemon+#daemon+g' docker/rootfs/etc/nginx/nginx.conf sed -i 's+^daemon+#daemon+g' /opt/nginxproxymanager/docker/rootfs/etc/nginx/nginx.conf
NGINX_CONFS=$(find "$(pwd)" -type f -name "*.conf") NGINX_CONFS=$(find /opt/nginxproxymanager -type f -name "*.conf")
for NGINX_CONF in $NGINX_CONFS; do for NGINX_CONF in $NGINX_CONFS; do
sed -i 's+include conf.d+include /etc/nginx/conf.d+g' "$NGINX_CONF" sed -i 's+include conf.d+include /etc/nginx/conf.d+g' "$NGINX_CONF"
done done
mkdir -p /var/www/html /etc/nginx/logs mkdir -p /var/www/html /etc/nginx/logs
cp -r docker/rootfs/var/www/html/* /var/www/html/ cp -r /opt/nginxproxymanager/docker/rootfs/var/www/html/* /var/www/html/
cp -r docker/rootfs/etc/nginx/* /etc/nginx/ cp -r /opt/nginxproxymanager/docker/rootfs/etc/nginx/* /etc/nginx/
cp docker/rootfs/etc/letsencrypt.ini /etc/letsencrypt.ini cp /opt/nginxproxymanager/docker/rootfs/etc/letsencrypt.ini /etc/letsencrypt.ini
cp docker/rootfs/etc/logrotate.d/nginx-proxy-manager /etc/logrotate.d/nginx-proxy-manager cp /opt/nginxproxymanager/docker/rootfs/etc/logrotate.d/nginx-proxy-manager /etc/logrotate.d/nginx-proxy-manager
ln -sf /etc/nginx/nginx.conf /etc/nginx/conf/nginx.conf ln -sf /etc/nginx/nginx.conf /etc/nginx/conf/nginx.conf
rm -f /etc/nginx/conf.d/dev.conf rm -f /etc/nginx/conf.d/dev.conf
@@ -109,23 +103,22 @@ chown root /tmp/nginx
echo resolver "$(awk 'BEGIN{ORS=" "} $1=="nameserver" {print ($2 ~ ":")? "["$2"]": $2}' /etc/resolv.conf);" >/etc/nginx/conf.d/include/resolvers.conf echo resolver "$(awk 'BEGIN{ORS=" "} $1=="nameserver" {print ($2 ~ ":")? "["$2"]": $2}' /etc/resolv.conf);" >/etc/nginx/conf.d/include/resolvers.conf
if [ ! -f /data/nginx/dummycert.pem ] || [ ! -f /data/nginx/dummykey.pem ]; then if [ ! -f /data/nginx/dummycert.pem ] || [ ! -f /data/nginx/dummykey.pem ]; then
openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -subj "/O=Nginx Proxy Manager/OU=Dummy Certificate/CN=localhost" -keyout /data/nginx/dummykey.pem -out /data/nginx/dummycert.pem &>/dev/null $STD openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -subj "/O=Nginx Proxy Manager/OU=Dummy Certificate/CN=localhost" -keyout /data/nginx/dummykey.pem -out /data/nginx/dummycert.pem
fi fi
mkdir -p /app/global /app/frontend/images mkdir -p /app/frontend/images
cp -r backend/* /app cp -r /opt/nginxproxymanager/backend/* /app
cp -r global/* /app/global
msg_ok "Set up Environment" msg_ok "Set up Environment"
msg_info "Building Frontend" msg_info "Building Frontend"
cd ./frontend export NODE_OPTIONS="--max_old_space_size=2048 --openssl-legacy-provider"
export NODE_OPTIONS="--openssl-legacy-provider" cd /opt/nginxproxymanager/frontend
# Replace node-sass with sass in package.json before installation # Replace node-sass with sass in package.json before installation
sed -i 's/"node-sass".*$/"sass": "^1.92.1",/g' package.json sed -E -i 's/"node-sass" *: *"([^"]*)"/"sass": "\1"/g' package.json
$STD yarn install --network-timeout 600000 $STD yarn install --network-timeout 600000
$STD yarn build $STD yarn build
cp -r dist/* /app/frontend cp -r /opt/nginxproxymanager/frontend/dist/* /app/frontend
cp -r app-images/* /app/frontend/images cp -r /opt/nginxproxymanager/frontend/public/images/* /app/frontend/images
msg_ok "Built Frontend" msg_ok "Built Frontend"
msg_info "Initializing Backend" msg_info "Initializing Backend"
@@ -146,7 +139,6 @@ if [ ! -f /app/config/production.json ]; then
EOF EOF
fi fi
cd /app cd /app
export NODE_OPTIONS="--openssl-legacy-provider"
$STD yarn install --network-timeout 600000 $STD yarn install --network-timeout 600000
msg_ok "Initialized Backend" msg_ok "Initialized Backend"
@@ -170,9 +162,6 @@ WantedBy=multi-user.target
EOF EOF
msg_ok "Created Service" msg_ok "Created Service"
motd_ssh
customize
msg_info "Starting Services" msg_info "Starting Services"
sed -i 's/user npm/user root/g; s/^pid/#pid/g' /usr/local/openresty/nginx/conf/nginx.conf sed -i 's/user npm/user root/g; s/^pid/#pid/g' /usr/local/openresty/nginx/conf/nginx.conf
sed -r -i 's/^([[:space:]]*)su npm npm/\1#su npm npm/g;' /etc/logrotate.d/nginx-proxy-manager sed -r -i 's/^([[:space:]]*)su npm npm/\1#su npm npm/g;' /etc/logrotate.d/nginx-proxy-manager
@@ -180,8 +169,10 @@ systemctl enable -q --now openresty
systemctl enable -q --now npm systemctl enable -q --now npm
msg_ok "Started Services" msg_ok "Started Services"
motd_ssh
customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -rf ../nginx-proxy-manager-*
systemctl restart openresty systemctl restart openresty
$STD apt -y autoremove $STD apt -y autoremove
$STD apt -y autoclean $STD apt -y autoclean

View File

@@ -1,8 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck # Author: tteck | Co-Author: havardthom | Co-Author: Slaviša Arežina (tremor021)
# Co-Author: havardthom
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://openwebui.com/ # Source: https://openwebui.com/
@@ -15,36 +14,10 @@ network_check
update_os update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt install -y \ $STD apt install -y ffmpeg
git \
ffmpeg \
libpq-dev
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Setup Python3" USE_UVX="YES" PYTHON_VERSION="3.12" setup_uv
$STD apt install -y --no-install-recommends \
python3 \
python3-pip
msg_ok "Setup Python3"
NODE_VERSION="22" setup_nodejs
msg_info "Installing Open WebUI (Patience)"
$STD git clone https://github.com/open-webui/open-webui.git /opt/open-webui
cd /opt/open-webui/backend
$STD pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
$STD pip3 install -r requirements.txt -U
cd /opt/open-webui
cp .env.example .env
cat <<EOF >/opt/open-webui/.env
ENV=prod
ENABLE_OLLAMA_API=false
OLLAMA_BASE_URL=http://0.0.0.0:11434
EOF
$STD npm install --force
export NODE_OPTIONS="--max-old-space-size=6000"
$STD npm run build
msg_ok "Installed Open WebUI"
read -r -p "${TAB3}Would you like to add Ollama? <y/N> " prompt read -r -p "${TAB3}Would you like to add Ollama? <y/N> " prompt
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
@@ -69,7 +42,7 @@ RestartSec=3
WantedBy=multi-user.target WantedBy=multi-user.target
EOF EOF
systemctl enable -q --now ollama systemctl enable -q --now ollama
sed -i 's/ENABLE_OLLAMA_API=false/ENABLE_OLLAMA_API=true/g' /opt/open-webui/.env echo "ENABLE_OLLAMA_API=true" >/root/.env
msg_ok "Installed Ollama" msg_ok "Installed Ollama"
fi fi
@@ -80,10 +53,14 @@ Description=Open WebUI Service
After=network.target After=network.target
[Service] [Service]
Type=exec Type=simple
WorkingDirectory=/opt/open-webui EnvironmentFile=-/root/.env
EnvironmentFile=/opt/open-webui/.env Environment=DATA_DIR=/root/.open-webui
ExecStart=/opt/open-webui/backend/start.sh ExecStart=/usr/local/bin/uvx --python 3.12 open-webui@latest serve
WorkingDirectory=/root
Restart=on-failure
RestartSec=5
User=root
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

File diff suppressed because it is too large Load Diff