Compare commits

..

3 Commits

Author SHA1 Message Date
CanbiZ
8d18df9a6a Fix casing in 'Setup Donetick' messages 2025-11-03 09:36:21 +01:00
CanbiZ
b7f34fcac6 Change app name from 'donetick' to 'Donetick' 2025-11-03 09:35:59 +01:00
push-app-to-main[bot]
83b4f9ee0b 'Add new script' 2025-11-03 08:33:04 +00:00
25 changed files with 1604 additions and 2215 deletions

View File

@@ -10,71 +10,14 @@
> [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
## 2025-11-06
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- npm: add Debian version check to update script [@MickLesk](https://github.com/MickLesk) ([#8901](https://github.com/community-scripts/ProxmoxVE/pull/8901))
- #### ✨ New Features
- MongoDB: install script now use setup_mongodb [@MickLesk](https://github.com/MickLesk) ([#8897](https://github.com/community-scripts/ProxmoxVE/pull/8897))
## 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
### 🚀 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
### 🆕 New Scripts
- Donetick ([#8835](https://github.com/community-scripts/ProxmoxVE/pull/8835))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Immich: Pin version to 2.2.2 [@vhsdream](https://github.com/vhsdream) ([#8848](https://github.com/community-scripts/ProxmoxVE/pull/8848))
- Asterisk: handle errors in version retrieval commands [@MickLesk](https://github.com/MickLesk) ([#8844](https://github.com/community-scripts/ProxmoxVE/pull/8844))
- linkstack: fix wrong directory installation [@omertahaoztop](https://github.com/omertahaoztop) ([#8814](https://github.com/community-scripts/ProxmoxVE/pull/8814))
- Remove BOM from shebang lines in ct scripts [@MickLesk](https://github.com/MickLesk) ([#8833](https://github.com/community-scripts/ProxmoxVE/pull/8833))
- #### 💥 Breaking Changes
- Removed: MeTube [@MickLesk](https://github.com/MickLesk) ([#8830](https://github.com/community-scripts/ProxmoxVE/pull/8830))
## 2025-11-02
### 🚀 Updated Scripts

View File

@@ -1,6 +1,6 @@
____ __ _ __
/ __ \____ ____ ___ / /_(_)____/ /__
/ / / / __ \/ __ \/ _ \/ __/ / ___/ //_/
/ /_/ / /_/ / / / / __/ /_/ / /__/ ,<
/_____/\____/_/ /_/\___/\__/_/\___/_/|_|
__ __ _ __
____/ /___ ____ ___ / /_(_)____/ /__
/ __ / __ \/ __ \/ _ \/ __/ / ___/ //_/
/ /_/ / /_/ / / / / __/ /_/ / /__/ ,<
\__,_/\____/_/ /_/\___/\__/_/\___/_/|_|

6
ct/headers/metube Normal file
View File

@@ -0,0 +1,6 @@
__ ___ ______ __
/ |/ /__/_ __/_ __/ /_ ___
/ /|_/ / _ \/ / / / / / __ \/ _ \
/ / / / __/ / / /_/ / /_/ / __/
/_/ /_/\___/_/ \__,_/_.___/\___/

View File

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

View File

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

123
ct/metube.sh Normal file
View File

@@ -0,0 +1,123 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/alexta69/metube
APP="MeTube"
var_tags="${var_tags:-media;youtube}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
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 /opt/metube ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if [[ $(echo ":$PATH:" != *":/usr/local/bin:"*) ]]; then
echo -e "\nexport PATH=\"/usr/local/bin:\$PATH\"" >>~/.bashrc
source ~/.bashrc
if ! command -v deno &>/dev/null; then
export DENO_INSTALL="/usr/local"
curl -fsSL https://deno.land/install.sh | $STD sh -s -- -y
else
$STD deno upgrade
fi
fi
if check_for_gh_release "metube" "alexta69/metube"; then
msg_info "Stopping Service"
systemctl stop metube
msg_ok "Stopped Service"
msg_info "Backing up Old Installation"
if [[ -d /opt/metube_bak ]]; then
rm -rf /opt/metube_bak
fi
mv /opt/metube /opt/metube_bak
msg_ok "Backup created"
fetch_and_deploy_gh_release "metube" "alexta69/metube" "tarball" "latest"
msg_info "Building Frontend"
cd /opt/metube/ui
$STD npm install
$STD node_modules/.bin/ng build
msg_ok "Built Frontend"
PYTHON_VERSION="3.13" setup_uv
msg_info "Installing Backend Requirements"
cd /opt/metube
$STD uv sync
msg_ok "Installed Backend"
msg_info "Restoring Environment File"
if [[ -f /opt/metube_bak/.env ]]; then
cp /opt/metube_bak/.env /opt/metube/.env
fi
msg_ok "Restored .env"
if grep -q 'pipenv' /etc/systemd/system/metube.service; then
msg_info "Patching systemd Service"
cat <<EOF >/etc/systemd/system/metube.service
[Unit]
Description=Metube - YouTube Downloader
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/metube
EnvironmentFile=/opt/metube/.env
ExecStart=/opt/metube/.venv/bin/python3 app/main.py
Restart=always
User=root
[Install]
WantedBy=multi-user.target
EOF
msg_ok "Patched systemd Service"
fi
$STD systemctl daemon-reload
msg_ok "Service Updated"
msg_info "Cleaning up"
rm -rf /opt/metube_bak
$STD apt -y autoremove
$STD apt -y autoclean
$STD apt -y clean
msg_ok "Cleaned Up"
msg_info "Starting Service"
systemctl start metube
sleep 1
msg_ok "Started Service"
msg_ok "Updated successfully!"
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}:8081${CL}"

View File

@@ -1,15 +1,15 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 Community-Script ORG
# Author: tteck (tteckster) | Co-Author: CrazyWolf13
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://nginxproxymanager.com/
APP="Nginx Proxy Manager"
var_tags="${var_tags:-proxy}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
@@ -28,12 +28,6 @@ function update_script() {
exit
fi
if [[ $(grep -E '^VERSION_ID=' /etc/os-release) == *"12"* ]]; then
msg_error "Wrong Debian version detected!"
msg_error "Please create a snapshot first. You must upgrade your LXC to Debian Trixie before updating. Visit: https://github.com/community-scripts/ProxmoxVE/discussions/7489"
exit
fi
if command -v node &>/dev/null; then
CURRENT_NODE_VERSION=$(node --version | cut -d'v' -f2 | cut -d'.' -f1)
if [[ "$CURRENT_NODE_VERSION" != "22" ]]; then
@@ -48,47 +42,60 @@ function update_script() {
fi
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 |
grep "tag_name" |
awk '{print substr($2, 3, length($2)-4) }')
fetch_and_deploy_gh_release "nginxproxymanager" "NginxProxyManager/nginx-proxy-manager"
msg_info "Downloading NPM v${RELEASE}"
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"
systemctl stop openresty
systemctl stop npm
msg_ok "Stopped Services"
msg_info "Cleaning old files"
$STD rm -rf /app \
msg_info "Cleaning Old Files"
rm -rf /app \
/var/www/html \
/etc/nginx \
/var/log/nginx \
/var/lib/nginx \
/var/cache/nginx
msg_ok "Cleaned old files"
"$STD" /var/cache/nginx
msg_ok "Cleaned Old Files"
msg_info "Setting up Environment"
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/ /etc/nginx
sed -i "s|\"version\": \"2.0.0\"|\"version\": \"$RELEASE\"|" /opt/nginxproxymanager/backend/package.json
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")
sed -i 's+^daemon+#daemon+g' docker/rootfs/etc/nginx/nginx.conf
NGINX_CONFS=$(find "$(pwd)" -type f -name "*.conf")
for NGINX_CONF in $NGINX_CONFS; do
sed -i 's+include conf.d+include /etc/nginx/conf.d+g' "$NGINX_CONF"
done
mkdir -p /var/www/html /etc/nginx/logs
cp -r /opt/nginxproxymanager/docker/rootfs/var/www/html/* /var/www/html/
cp -r /opt/nginxproxymanager/docker/rootfs/etc/nginx/* /etc/nginx/
cp /opt/nginxproxymanager/docker/rootfs/etc/letsencrypt.ini /etc/letsencrypt.ini
cp /opt/nginxproxymanager/docker/rootfs/etc/logrotate.d/nginx-proxy-manager /etc/logrotate.d/nginx-proxy-manager
cp -r docker/rootfs/var/www/html/* /var/www/html/
cp -r docker/rootfs/etc/nginx/* /etc/nginx/
cp docker/rootfs/etc/letsencrypt.ini /etc/letsencrypt.ini
cp 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
rm -f /etc/nginx/conf.d/dev.conf
mkdir -p /tmp/nginx/body \
/run/nginx \
/data/nginx \
@@ -105,33 +112,27 @@ function update_script() {
/var/lib/nginx/cache/public \
/var/lib/nginx/cache/private \
/var/cache/nginx/proxy_temp
chmod -R 777 /var/cache/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
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
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
mkdir -p /app/frontend/images
cp -r /opt/nginxproxymanager/backend/* /app
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"
# Update Certbot and plugins in virtual environment
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 "Setup Environment"
msg_info "Initializing Backend"
rm -rf /app/config/default.json
$STD rm -rf /app/config/default.json
if [ ! -f /app/config/production.json ]; then
cat <<'EOF' >/app/config/production.json
{
@@ -147,37 +148,23 @@ function update_script() {
}
EOF
fi
cd /app
cd /app || exit
export NODE_OPTIONS="--openssl-legacy-provider"
$STD yarn install --network-timeout 600000
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"
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 -i 's/su npm npm/su root root/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 npm
systemctl restart openresty
msg_ok "Started Services"
msg_info "Cleaning up"
rm -rf ~/nginx-proxy-manager-*
msg_ok "Cleaned"
msg_ok "Updated successfully!"
exit
}

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck | Co-Author: havardthom | Co-Author: Slaviša Arežina (tremor021)
# Author: havardthom
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://openwebui.com/
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-8192}"
var_disk="${var_disk:-25}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -23,7 +23,7 @@ function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /root/.open-webui ]]; then
if [[ ! -d /opt/open-webui ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
@@ -50,8 +50,29 @@ function update_script() {
fi
fi
msg_info "Restarting Open WebUI to initiate update"
systemctl restart open-webui
msg_info "Updating ${APP} (Patience)"
cd /opt/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!"
exit
}

View File

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

View File

@@ -4,13 +4,13 @@
"categories": [
19
],
"date_created": "2025-11-03",
"date_created": "2025-11-01",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 2021,
"documentation": "https://docs.donetick.com/getting-started/",
"config_path": "/opt/donetick/config/selfhosted.yml",
"config_path": "/opt/donetick/selfhosted.yml",
"website": "https://donetick.com",
"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",

View File

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

View File

@@ -0,0 +1,35 @@
{
"name": "MeTube",
"slug": "metube",
"categories": [
11
],
"date_created": "2025-06-24",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8081,
"documentation": "https://github.com/alexta69/metube/blob/master/README.md",
"website": "https://github.com/alexta69/metube",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/metube.webp",
"config_path": "/opt/metube/.env",
"description": "MeTube allows you to download videos from YouTube and dozens of other sites.",
"install_methods": [
{
"type": "default",
"script": "ct/metube.sh",
"resources": {
"cpu": 1,
"ram": 2048,
"hdd": 10,
"os": "debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -20,8 +20,8 @@
"script": "ct/nginxproxymanager.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 8,
"ram": 1024,
"hdd": 4,
"os": "debian",
"version": "13"
}
@@ -33,8 +33,12 @@
},
"notes": [
{
"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": "info"
"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.",
"type": "warning"
},
{
"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/",
"website": "https://openwebui.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/open-webui.webp",
"config_path": "/root/.env",
"config_path": "/opt/open-webui/.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",
"install_methods": [
{
@@ -23,7 +23,7 @@
"ram": 8192,
"hdd": 25,
"os": "debian",
"version": "13"
"version": "12"
}
}
],
@@ -35,10 +35,6 @@
{
"text": "Script contains optional installation of Ollama.",
"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

@@ -23,7 +23,7 @@
"ram": 2048,
"hdd": 8,
"os": "debian",
"version": "12"
"version": "13"
}
}
],

View File

@@ -1,394 +1,149 @@
[
{
"name": "transmission/transmission",
"version": "4.1.0-beta.3",
"date": "2025-11-05T23:54:17Z"
},
{
"name": "ollama/ollama",
"version": "v0.12.10-rc0",
"date": "2025-11-05T19:58:03Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.16.43",
"date": "2025-11-05T21:08:38Z"
},
{
"name": "neo4j/neo4j",
"version": "5.26.16",
"date": "2025-11-05T20:41:40Z"
},
{
"name": "BerriAI/litellm",
"version": "v1.79.1.dev6",
"date": "2025-11-05T19:25:05Z"
},
{
"name": "home-assistant/core",
"version": "2025.11.0",
"date": "2025-11-05T19:23:12Z"
},
{
"name": "apache/tomcat",
"version": "11.0.14",
"date": "2025-11-05T19:14:38Z"
},
{
"name": "leiweibau/Pi.Alert",
"version": "v2025-11-05",
"date": "2025-11-05T18:08:26Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.118.2",
"date": "2025-11-05T18:07:04Z"
},
{
"name": "bunkerity/bunkerweb",
"version": "v1.6.5",
"date": "2025-10-06T15:25:17Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w45-4.14.1",
"date": "2025-11-05T16:56:57Z"
},
{
"name": "mattermost/mattermost",
"version": "v10.11.6",
"date": "2025-11-04T09:43:16Z"
},
{
"name": "javedh-dev/tracktor",
"version": "0.5.1",
"date": "2025-11-05T15:51:02Z"
},
{
"name": "zitadel/zitadel",
"version": "v4.6.4",
"date": "2025-11-05T15:57:00Z"
},
{
"name": "chrisvel/tududi",
"version": "v0.85.1",
"date": "2025-10-31T10:45:26Z"
},
{
"name": "Graylog2/graylog2-server",
"version": "6.2.9",
"date": "2025-11-05T13:55:39Z"
},
{
"name": "immich-app/immich",
"version": "v2.2.3",
"date": "2025-11-05T13:47:03Z"
},
{
"name": "duplicati/duplicati",
"version": "v2.2.0.100-2.2.0.100_canary_2025-11-05",
"date": "2025-11-05T13:01:37Z"
},
{
"name": "azukaar/Cosmos-Server",
"version": "v0.18.4",
"date": "2025-04-05T19:12:57Z"
},
{
"name": "getumbrel/umbrel",
"version": "1.5.0",
"date": "2025-11-05T11:10:20Z"
},
{
"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": "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": "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": "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",
"version": "1.1.2",
"date": "2025-11-03T23:16:29Z"
},
{
"name": "gtsteffaniak/filebrowser",
"version": "v1.0.0-stable",
"date": "2025-11-03T22:24:23Z"
},
{
"name": "jupyter/notebook",
"version": "@jupyter-notebook/ui-components@7.5.0-rc.0",
"date": "2025-11-03T19:37:03Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.50.39",
"date": "2025-11-03T17:58:41Z"
},
{
"name": "cloudflare/cloudflared",
"version": "2025.10.1-3-g52809511",
"date": "2025-11-03T17:13:35Z"
},
{
"name": "goauthentik/authentik",
"version": "version/2025.10.1",
"date": "2025-11-03T16:49:16Z"
},
{
"name": "Cleanuparr/Cleanuparr",
"version": "v2.4.3",
"date": "2025-11-03T16:49:03Z"
},
{
"name": "YunoHost/yunohost",
"version": "debian/12.1.34",
"date": "2025-11-03T16:42:07Z"
},
{
"name": "Paymenter/Paymenter",
"version": "v1.4.2",
"date": "2025-11-03T11:52:53Z"
},
{
"name": "silverbulletmd/silverbullet",
"version": "2.2.1",
"date": "2025-11-03T06:57:15Z"
},
{
"name": "fuma-nama/fumadocs",
"version": "fumadocs-mdx@13.0.5",
"date": "2025-11-03T06:55:11Z"
},
{
"name": "jellyfin/jellyfin",
"version": "v10.11.2",
"date": "2025-11-03T02:29:00Z"
"version": "v2.2.2",
"date": "2025-11-02T21:56:36Z"
},
{
"name": "maxdorninger/MediaManager",
"version": "v1.9.1",
"date": "2025-11-02T21:14:50Z"
},
{
"name": "gtsteffaniak/filebrowser",
"version": "v1.0.1-beta",
"date": "2025-11-02T21:13:14Z"
},
{
"name": "karlomikus/bar-assistant",
"version": "v5.9.1",
"date": "2025-11-02T20:54:28Z"
},
{
"name": "nicolargo/glances",
"version": "v4.4.0",
"date": "2025-11-02T16:36:14Z"
},
{
"name": "Cleanuparr/Cleanuparr",
"version": "v2.4.2",
"date": "2025-11-02T15:58:46Z"
},
{
"name": "runtipi/runtipi",
"version": "nightly",
"date": "2025-11-01T20:00:45Z"
},
{
"name": "redis/redis",
"version": "8.2.3",
"date": "2025-11-02T13:46:10Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.24.243",
"date": "2025-11-02T05:54:42Z"
},
{
"name": "tobychui/zoraxy",
"version": "v3.2.9",
"date": "2025-11-02T05:48:39Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.4.4",
"date": "2025-11-01T19:48:08Z"
},
{
"name": "theonedev/onedev",
"version": "v13.0.10",
"date": "2025-11-02T02:47:45Z"
},
{
"name": "inventree/InvenTree",
"version": "1.1.0",
"date": "2025-11-02T02:19:25Z"
},
{
"name": "BerriAI/litellm",
"version": "v1.79.1.rc.1",
"date": "2025-11-02T01:31:48Z"
},
{
"name": "9001/copyparty",
"version": "v1.19.20",
"date": "2025-11-02T01:27:38Z"
},
{
"name": "jeedom/core",
"version": "4.4.20",
"date": "2025-11-02T00:27:04Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.0.1",
"date": "2025-10-15T16:53:55Z"
},
{
"name": "Koenkk/zigbee2mqtt",
"version": "2.6.3",
"date": "2025-11-01T20:48:39Z"
},
{
"name": "henrygd/beszel",
"version": "v0.15.3",
"date": "2025-11-01T20:13:33Z"
},
{
"name": "Paymenter/Paymenter",
"version": "v1.4.1",
"date": "2025-11-01T19:38:55Z"
},
{
"name": "keycloak/keycloak",
"version": "26.4.2",
"date": "2025-10-23T06:59:32Z"
},
{
"name": "motioneye-project/motioneye",
"version": "0.42.1",
"date": "2020-06-07T07:27:04Z"
},
{
"name": "chrisbenincasa/tunarr",
"version": "v0.23.0-alpha.20",
"date": "2025-11-01T11:42:54Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.3.6",
"date": "2025-11-01T10:41:15Z"
},
{
"name": "fuma-nama/fumadocs",
"version": "fumadocs-ui@16.0.7",
"date": "2025-11-01T09:43:37Z"
},
{
"name": "cross-seed/cross-seed",
"version": "v6.13.5",
"date": "2025-09-27T01:10:59Z"
},
{
"name": "ollama/ollama",
"version": "v0.12.9",
"date": "2025-10-31T23:33:13Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.90.6",
"date": "2025-10-31T22:24:04Z"
},
{
"name": "evcc-io/evcc",
"version": "0.209.6",
"date": "2025-10-31T20:13:49Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.43.1",
@@ -399,15 +154,35 @@
"version": "v3.4.0",
"date": "2025-10-31T18:50:18Z"
},
{
"name": "YunoHost/yunohost",
"version": "debian/12.1.33",
"date": "2025-10-31T12:40:16Z"
},
{
"name": "leiweibau/Pi.Alert",
"version": "v2025-10-31",
"date": "2025-10-31T17:57:06Z"
},
{
"name": "pommee/goaway",
"version": "v0.62.12",
"date": "2025-10-31T17:30:55Z"
},
{
"name": "zabbix/zabbix",
"version": "7.4.5",
"date": "2025-10-31T14:39:13Z"
"name": "zitadel/zitadel",
"version": "v4.6.2",
"date": "2025-10-31T15:41:19Z"
},
{
"name": "bunkerity/bunkerweb",
"version": "testing",
"date": "2025-10-30T14:33:36Z"
},
{
"name": "wizarrrr/wizarr",
"version": "v2025.10.8",
"date": "2025-10-31T14:47:28Z"
},
{
"name": "gristlabs/grist-core",
@@ -419,11 +194,36 @@
"version": "planka-1.1.1",
"date": "2025-10-31T12:38:47Z"
},
{
"name": "mattermost/mattermost",
"version": "mattermost-redux@11.0.4",
"date": "2025-10-30T16:44:14Z"
},
{
"name": "chrisvel/tududi",
"version": "v0.85.1",
"date": "2025-10-31T10:45:26Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w44-4.14.1",
"date": "2025-10-29T11:28:37Z"
},
{
"name": "garethgeorge/backrest",
"version": "v1.10.1",
"date": "2025-10-31T08:25:57Z"
},
{
"name": "getumbrel/umbrel",
"version": "1.4.2",
"date": "2025-05-09T08:54:49Z"
},
{
"name": "home-assistant/core",
"version": "2025.10.4",
"date": "2025-10-24T20:03:03Z"
},
{
"name": "pymedusa/Medusa",
"version": "v1.0.24",
@@ -434,6 +234,11 @@
"version": "r7.0.26",
"date": "2025-10-30T18:44:14Z"
},
{
"name": "cloudflare/cloudflared",
"version": "2025.10.1",
"date": "2025-10-30T18:40:07Z"
},
{
"name": "sassanix/Warracker",
"version": "1.0.2",
@@ -449,6 +254,11 @@
"version": "2025.10.30",
"date": "2025-10-30T16:22:45Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.50.38",
"date": "2025-10-30T16:02:21Z"
},
{
"name": "AdguardTeam/AdGuardHome",
"version": "v0.107.69",
@@ -464,6 +274,11 @@
"version": "v5.4",
"date": "2025-10-30T14:25:23Z"
},
{
"name": "neo4j/neo4j",
"version": "5.26.15",
"date": "2025-10-30T11:17:14Z"
},
{
"name": "docker/compose",
"version": "v2.40.3",
@@ -474,6 +289,16 @@
"version": "v0.307.3",
"date": "2025-10-30T08:13:40Z"
},
{
"name": "zabbix/zabbix",
"version": "8.0.0alpha1",
"date": "2025-10-30T07:59:41Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.16.37",
"date": "2025-10-30T07:54:49Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.3",
@@ -489,21 +314,46 @@
"version": "v0.38.2",
"date": "2025-10-30T02:44:09Z"
},
{
"name": "Sonarr/Sonarr",
"version": "v4.0.15.2941",
"date": "2025-06-20T17:20:54Z"
},
{
"name": "homebridge/homebridge",
"version": "v1.11.1",
"date": "2025-10-29T22:09:26Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.534",
"date": "2025-10-29T21:01:24Z"
},
{
"name": "influxdata/influxdb",
"version": "v2.7.12",
"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",
"version": "v11.6.1",
"date": "2025-10-29T16:51:06Z"
},
{
"name": "azukaar/Cosmos-Server",
"version": "v0.18.4",
"date": "2025-04-05T19:12:57Z"
},
{
"name": "laurent22/joplin",
"version": "server-v3.4.4",
@@ -514,6 +364,11 @@
"version": "2.11.0",
"date": "2025-10-29T14:26:23Z"
},
{
"name": "element-hq/synapse",
"version": "v1.141.0",
"date": "2025-10-29T11:45:43Z"
},
{
"name": "cockpit-project/cockpit",
"version": "350",
@@ -529,6 +384,11 @@
"version": "cassandra-5.0.6",
"date": "2025-10-29T07:40:47Z"
},
{
"name": "SigNoz/signoz",
"version": "v0.99.0",
"date": "2025-10-29T06:32:09Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.15.3",
@@ -554,6 +414,11 @@
"version": "v4.4.5",
"date": "2025-10-28T18:35:47Z"
},
{
"name": "javedh-dev/tracktor",
"version": "0.4.4",
"date": "2025-10-28T17:39:14Z"
},
{
"name": "pi-hole/pi-hole",
"version": "v6.2.2",
@@ -579,26 +444,66 @@
"version": "v25.4",
"date": "2025-10-09T10:27:01Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.117.3",
"date": "2025-10-28T12:00:42Z"
},
{
"name": "FlareSolverr/FlareSolverr",
"version": "v3.4.3",
"date": "2025-10-28T10:21:56Z"
},
{
"name": "thecfu/scraparr",
"version": "v3.0.0-beta.2",
"date": "2025-10-28T10:16:29Z"
},
{
"name": "goauthentik/authentik",
"version": "version/2025.10.0",
"date": "2025-10-27T19:58:39Z"
},
{
"name": "rabbitmq/rabbitmq-server",
"version": "v4.2.0",
"date": "2025-10-27T16:56:40Z"
},
{
"name": "Graylog2/graylog2-server",
"version": "7.0.0-rc.2",
"date": "2025-10-27T12:19:14Z"
},
{
"name": "juanfont/headscale",
"version": "v0.27.0",
"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": "jellyfin/jellyfin",
"version": "v10.11.1",
"date": "2025-10-27T02:02:13Z"
},
{
"name": "Radarr/Radarr",
"version": "v5.28.0.10274",
"date": "2025-10-06T21:31:07Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.30.4",
"date": "2025-10-26T17:22:46Z"
},
{
"name": "openhab/openhab-core",
"version": "5.1.0.M2",
@@ -639,11 +544,21 @@
"version": "v1.7.3",
"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",
"version": "v0.31.0",
"date": "2025-10-24T04:07:27Z"
},
{
"name": "esphome/esphome",
"version": "2025.10.3",
"date": "2025-10-24T01:08:22Z"
},
{
"name": "drakkan/sftpgo",
"version": "v2.7.0",
@@ -659,6 +574,16 @@
"version": "v0.8.8.3",
"date": "2025-10-23T12:31:49Z"
},
{
"name": "duplicati/duplicati",
"version": "v2.2.0.0_stable_2025-10-23",
"date": "2025-10-23T11:48:25Z"
},
{
"name": "jhuckaby/Cronicle",
"version": "v0.9.99",
"date": "2025-10-22T22:20:33Z"
},
{
"name": "rcourtman/Pulse",
"version": "issue-596",
@@ -699,6 +624,11 @@
"version": "v1.36.3",
"date": "2025-10-21T12:53:58Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.128.0",
"date": "2025-10-21T08:30:52Z"
},
{
"name": "coder/code-server",
"version": "v4.105.1",
@@ -714,6 +644,11 @@
"version": "v1.71.2",
"date": "2025-10-20T15:25:52Z"
},
{
"name": "jupyter/notebook",
"version": "@jupyter-notebook/ui-components@7.5.0-beta.1",
"date": "2025-10-20T07:01:38Z"
},
{
"name": "pelican-dev/panel",
"version": "v1.0.0-beta27",
@@ -829,6 +764,11 @@
"version": "v4.5.5",
"date": "2025-10-14T18:48:36Z"
},
{
"name": "home-assistant/operating-system",
"version": "16.2",
"date": "2025-09-08T14:03:25Z"
},
{
"name": "rogerfar/rdt-client",
"version": "v2.0.119",
@@ -844,6 +784,11 @@
"version": "4.1.1",
"date": "2025-10-13T14:23:53Z"
},
{
"name": "prometheus/alertmanager",
"version": "v0.29.0-rc.0",
"date": "2025-10-10T01:13:27Z"
},
{
"name": "globaleaks/globaleaks-whistleblowing-software",
"version": "v5.0.85",
@@ -874,11 +819,26 @@
"version": "v1.17.1",
"date": "2025-10-10T16:12:41Z"
},
{
"name": "apache/tomcat",
"version": "10.1.48",
"date": "2025-10-10T14:46:53Z"
},
{
"name": "projectsend/projectsend",
"version": "r1945",
"date": "2025-10-10T02:30:05Z"
},
{
"name": "silverbulletmd/silverbullet",
"version": "2.1.9",
"date": "2025-10-09T13:57:14Z"
},
{
"name": "glpi-project/glpi",
"version": "11.0.1",
"date": "2025-10-09T12:34:15Z"
},
{
"name": "autobrr/autobrr",
"version": "v1.68.0",
@@ -929,6 +889,11 @@
"version": "v1.5.9",
"date": "2025-10-06T08:34:01Z"
},
{
"name": "hyperion-project/hyperion.ng",
"version": "2.1.1",
"date": "2025-06-14T17:45:06Z"
},
{
"name": "BookStackApp/BookStack",
"version": "v25.07.3",
@@ -939,6 +904,11 @@
"version": "2.520",
"date": "2025-10-05T00:51:34Z"
},
{
"name": "actualbudget/actual",
"version": "v25.10.0",
"date": "2025-10-02T11:34:39Z"
},
{
"name": "Kozea/Radicale",
"version": "v3.5.7.pypi",
@@ -1004,6 +974,11 @@
"version": "REL_18_0",
"date": "2025-09-22T20:11:33Z"
},
{
"name": "gethomepage/homepage",
"version": "v1.5.0",
"date": "2025-09-22T15:28:49Z"
},
{
"name": "itsmng/itsm-ng",
"version": "v2.1.0",
@@ -1094,6 +1069,11 @@
"version": "2.1.4",
"date": "2025-09-10T12:08:09Z"
},
{
"name": "OctoPrint/OctoPrint",
"version": "1.11.3",
"date": "2025-09-09T08:03:31Z"
},
{
"name": "Tautulli/Tautulli",
"version": "v2.16.0",
@@ -1194,6 +1174,11 @@
"version": "v2.5.308",
"date": "2025-08-13T07:09:29Z"
},
{
"name": "slskd/slskd",
"version": "0.23.2",
"date": "2025-08-10T23:35:07Z"
},
{
"name": "ioBroker/ioBroker",
"version": "1012-08-09",
@@ -1259,6 +1244,11 @@
"version": "1.3.11",
"date": "2025-07-13T13:33:48Z"
},
{
"name": "NginxProxyManager/nginx-proxy-manager",
"version": "v2.12.6",
"date": "2025-07-09T21:52:15Z"
},
{
"name": "photoprism/photoprism",
"version": "250707-d28b3101e",
@@ -1284,6 +1274,11 @@
"version": "v2.18.0",
"date": "2025-06-24T08:29:55Z"
},
{
"name": "clusterzx/paperless-ai",
"version": "v3.0.7",
"date": "2025-06-22T17:49:29Z"
},
{
"name": "prometheus-pve/prometheus-pve-exporter",
"version": "v3.5.5",
@@ -1419,6 +1414,11 @@
"version": "v0.22.1",
"date": "2025-03-18T21:01:22Z"
},
{
"name": "transmission/transmission",
"version": "4.0.1-beta.1",
"date": "2024-12-13T00:16:24Z"
},
{
"name": "excalidraw/excalidraw",
"version": "v0.18.0",

View File

@@ -18,8 +18,8 @@ html=$(curl -fsSL "$ASTERISK_VERSIONS_URL")
LTS_VERSION=""
for major in 20 22 24 26; do
block=$(echo "$html" | awk "/Asterisk $major - LTS/,/<ul>/" || true)
ver=$(echo "$block" | grep -oE 'Download Latest - [0-9]+\.[0-9]+(\.[0-9]+)?' | head -n1 | sed -E 's/.* - //' || true)
block=$(echo "$html" | awk "/Asterisk $major - LTS/,/<ul>/")
ver=$(echo "$block" | grep -oE 'Download Latest - [0-9]+\.[0-9]+(\.[0-9]+)?' | head -n1 | sed -E 's/.* - //')
if [ -n "$ver" ]; then
LTS_VERSION="$LTS_VERSION $ver"
fi
@@ -29,8 +29,8 @@ LTS_VERSION=$(echo "$LTS_VERSION" | xargs | tr ' ' '\n' | sort -V | tail -n1)
STD_VERSION=""
for major in 21 23 25 27; do
block=$(echo "$html" | grep -A 20 "Asterisk $major</h3>" | head -n 20 || true)
ver=$(echo "$block" | grep -oE 'Download (Latest - )?'"$major"'\.[0-9]+\.[0-9]+' | head -n1 | sed -E 's/Download (Latest - )?//' || true)
block=$(echo "$html" | awk "/Asterisk $major</,/<ul>/")
ver=$(echo "$block" | grep -oE 'Download (Latest - )?[0-9]+\.[0-9]+(\.[0-9]+)?' | head -n1 | sed -E 's/.* - //;s/Download //')
if [ -n "$ver" ]; then
STD_VERSION="$STD_VERSION $ver"
fi
@@ -39,7 +39,7 @@ done
STD_VERSION=$(echo "$STD_VERSION" | xargs | tr ' ' '\n' | sort -V | tail -n1)
cert_block=$(echo "$html" | awk '/Certified Asterisk/,/<ul>/')
CERT_VERSION=$(echo "$cert_block" | grep -oE 'Download Latest - [0-9]+\.[0-9]+-cert[0-9]+' | head -n1 | sed -E 's/.* - //' || true)
CERT_VERSION=$(echo "$cert_block" | grep -oE 'Download Latest - [0-9]+\.[0-9]+-cert[0-9]+' | head -n1 | sed -E 's/.* - //')
cat <<EOF
Choose Asterisk version to install:
@@ -49,7 +49,6 @@ Choose Asterisk version to install:
EOF
read -rp "Enter choice [1-3]: " ASTERISK_CHOICE
CERTIFIED=0
case "$ASTERISK_CHOICE" in
2)
ASTERISK_VERSION="$LTS_VERSION"

View File

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

View File

@@ -14,7 +14,7 @@ network_check
update_os
PHP_VERSION="8.3" PHP_MODULE="sqlite3" PHP_APACHE="YES" setup_php
fetch_and_deploy_gh_release "linkstack" "linkstackorg/linkstack" "prebuild" "latest" "/var/www/html/" "linkstack.zip"
fetch_and_deploy_gh_release "linkstack" "linkstackorg/linkstack" "prebuild" "latest" "/var/www/html/linkstack" "linkstack.zip"
msg_info "Configuring LinkStack"
$STD a2enmod rewrite

85
install/metube-install.sh Normal file
View File

@@ -0,0 +1,85 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 tteck
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/alexta69/metube
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y --no-install-recommends \
build-essential \
aria2 \
coreutils \
gcc \
g++ \
musl-dev \
ffmpeg \
make \
ca-certificates
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.13" setup_uv
NODE_VERSION="22" setup_nodejs
msg_info "Installing Deno"
export DENO_INSTALL="/usr/local"
curl -fsSL https://deno.land/install.sh | $STD sh -s -- -y
[[ ":$PATH:" != *":/usr/local/bin:"* ]] &&
echo -e "\nexport PATH=\"/usr/local/bin:\$PATH\"" >>~/.bashrc &&
source ~/.bashrc
msg_ok "Installed Deno"
fetch_and_deploy_gh_release "metube" "alexta69/metube" "tarball" "latest"
msg_info "Installing MeTube"
cd /opt/metube/ui
$STD npm install
$STD node_modules/.bin/ng build
cd /opt/metube
$STD uv sync
mkdir -p /opt/metube_downloads /opt/metube_downloads/.metube /opt/metube_downloads/music /opt/metube_downloads/videos
cat <<EOF >/opt/metube/.env
DOWNLOAD_DIR=/opt/metube_downloads
STATE_DIR=/opt/metube_downloads/.metube
TEMP_DIR=/opt/metube_downloads
YTDL_OPTIONS={"trim_file_name":10,"extractor_args":{"youtube":{"player_client":["default","-tv_simply"]}}}
EOF
msg_ok "Installed MeTube"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/metube.service
[Unit]
Description=Metube - YouTube Downloader
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/metube
EnvironmentFile=/opt/metube/.env
ExecStart=/opt/metube/.venv/bin/python3 app/main.py
Restart=always
User=root
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now metube
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt -y autoremove
$STD apt -y autoclean
$STD apt -y clean
msg_ok "Cleaned"

View File

@@ -15,12 +15,25 @@ update_os
read -p "${TAB3}Do you want to install MongoDB 8.0 instead of 7.0? [y/N]: " install_mongodb_8
if [[ "$install_mongodb_8" =~ ^[Yy]$ ]]; then
MONGO_VERSION="8.0" setup_mongodb
MONGODB_VERSION="8.0"
else
MONGO_VERSION="7.0" setup_mongodb
MONGODB_VERSION="7.0"
fi
msg_info "Installing MongoDB $MONGODB_VERSION"
curl -fsSL "https://www.mongodb.org/static/pgp/server-${MONGODB_VERSION}.asc" | gpg --dearmor >/usr/share/keyrings/mongodb-server-${MONGODB_VERSION}.gpg
cat <<EOF >/etc/apt/sources.list.d/mongodb-org-${MONGODB_VERSION}.sources
Types: deb
URIs: http://repo.mongodb.org/apt/debian
Suites: $(grep '^VERSION_CODENAME=' /etc/os-release | cut -d'=' -f2)/mongodb-org/${MONGODB_VERSION}
Components: main
Signed-By: /usr/share/keyrings/mongodb-server-${MONGODB_VERSION}.gpg
EOF
$STD apt update
$STD apt install -y mongodb-org
sed -i 's/bindIp: 127.0.0.1/bindIp: 0.0.0.0/' /etc/mongod.conf
msg_ok "Installed MongoDB $MONGO_VERSION"
systemctl enable -q --now mongod
msg_ok "Installed MongoDB $MONGODB_VERSION"
motd_ssh
customize

View File

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

View File

@@ -1,7 +1,8 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 tteck
# Author: tteck | Co-Author: havardthom | Co-Author: Slaviša Arežina (tremor021)
# Author: tteck
# Co-Author: havardthom
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://openwebui.com/
@@ -14,10 +15,36 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y ffmpeg
$STD apt install -y \
git \
ffmpeg \
libpq-dev
msg_ok "Installed Dependencies"
USE_UVX="YES" PYTHON_VERSION="3.12" setup_uv
msg_info "Setup Python3"
$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
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
@@ -42,7 +69,7 @@ RestartSec=3
WantedBy=multi-user.target
EOF
systemctl enable -q --now ollama
echo "ENABLE_OLLAMA_API=true" >/root/.env
sed -i 's/ENABLE_OLLAMA_API=false/ENABLE_OLLAMA_API=true/g' /opt/open-webui/.env
msg_ok "Installed Ollama"
fi
@@ -53,14 +80,10 @@ Description=Open WebUI Service
After=network.target
[Service]
Type=simple
EnvironmentFile=-/root/.env
Environment=DATA_DIR=/root/.open-webui
ExecStart=/usr/local/bin/uvx --python 3.12 open-webui@latest serve
WorkingDirectory=/root
Restart=on-failure
RestartSec=5
User=root
Type=exec
WorkingDirectory=/opt/open-webui
EnvironmentFile=/opt/open-webui/.env
ExecStart=/opt/open-webui/backend/start.sh
[Install]
WantedBy=multi-user.target

View File

@@ -26,8 +26,7 @@ $STD apt install -y \
unpaper \
fonts-urw-base35 \
qpdf \
poppler-utils \
jbig2
poppler-utils
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.12" setup_uv
@@ -70,12 +69,24 @@ $STD uv pip install \
ocrmypdf \
pillow \
pdf2image
$STD apt install -y python3-uno python3-pip
$STD pip3 install --break-system-packages --timeout=120 unoserver
$STD pip3 install --break-system-packages unoserver
ln -sf /opt/.venv/bin/python3 /usr/local/bin/python3
ln -sf /opt/.venv/bin/pip /usr/local/bin/pip
msg_ok "Installed Python Dependencies"
msg_info "Installing JBIG2"
$STD curl -fsSL -o /tmp/jbig2enc.tar.gz https://github.com/agl/jbig2enc/archive/refs/tags/0.30.tar.gz
mkdir -p /opt/jbig2enc
tar -xzf /tmp/jbig2enc.tar.gz -C /opt/jbig2enc --strip-components=1
cd /opt/jbig2enc
$STD bash ./autogen.sh
$STD bash ./configure
$STD make
$STD make install
msg_ok "Installed JBIG2"
msg_info "Installing Language Packs (Patience)"
$STD apt install -y 'tesseract-ocr-*'
msg_ok "Installed Language Packs"

File diff suppressed because it is too large Load Diff