mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-11-06 03:12:50 +00:00
Compare commits
3 Commits
zabbix_fix
...
add-script
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8d18df9a6a | ||
|
|
b7f34fcac6 | ||
|
|
83b4f9ee0b |
38
CHANGELOG.md
38
CHANGELOG.md
@@ -10,52 +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-05
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 💥 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
|
||||
|
||||
- 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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
____ __ _ __
|
||||
/ __ \____ ____ ___ / /_(_)____/ /__
|
||||
/ / / / __ \/ __ \/ _ \/ __/ / ___/ //_/
|
||||
/ /_/ / /_/ / / / / __/ /_/ / /__/ ,<
|
||||
/_____/\____/_/ /_/\___/\__/_/\___/_/|_|
|
||||
|
||||
__ __ _ __
|
||||
____/ /___ ____ ___ / /_(_)____/ /__
|
||||
/ __ / __ \/ __ \/ _ \/ __/ / ___/ //_/
|
||||
/ /_/ / /_/ / / / / __/ /_/ / /__/ ,<
|
||||
\__,_/\____/_/ /_/\___/\__/_/\___/_/|_|
|
||||
|
||||
|
||||
6
ct/headers/metube
Normal file
6
ct/headers/metube
Normal file
@@ -0,0 +1,6 @@
|
||||
__ ___ ______ __
|
||||
/ |/ /__/_ __/_ __/ /_ ___
|
||||
/ /|_/ / _ \/ / / / / / __ \/ _ \
|
||||
/ / / / __/ / / /_/ / /_/ / __/
|
||||
/_/ /_/\___/_/ \__,_/_.___/\___/
|
||||
|
||||
@@ -93,7 +93,7 @@ EOF
|
||||
msg_ok "Image-processing libraries up to date"
|
||||
fi
|
||||
|
||||
RELEASE="2.2.2"
|
||||
RELEASE="2.2.1"
|
||||
if check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop immich-web
|
||||
|
||||
123
ct/metube.sh
Normal file
123
ct/metube.sh
Normal 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}"
|
||||
@@ -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}"
|
||||
@@ -42,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 \
|
||||
@@ -99,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
|
||||
{
|
||||
@@ -141,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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
16
ct/zabbix.sh
16
ct/zabbix.sh
@@ -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"
|
||||
|
||||
|
||||
@@ -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",
|
||||
|
||||
35
frontend/public/json/metube.json
Normal file
35
frontend/public/json/metube.json
Normal 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": []
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"ram": 2048,
|
||||
"hdd": 8,
|
||||
"os": "debian",
|
||||
"version": "12"
|
||||
"version": "13"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -1,339 +1,134 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
"version": "1.1.2",
|
||||
"date": "2025-11-03T23:16:29Z"
|
||||
},
|
||||
{
|
||||
"name": "BerriAI/litellm",
|
||||
"version": "v1.79.1.rc.2",
|
||||
"date": "2025-11-03T23:14:45Z"
|
||||
},
|
||||
{
|
||||
"name": "gtsteffaniak/filebrowser",
|
||||
"version": "v1.0.0-stable",
|
||||
"date": "2025-11-03T22:24:23Z"
|
||||
},
|
||||
{
|
||||
"name": "azukaar/Cosmos-Server",
|
||||
"version": "v0.18.4",
|
||||
"date": "2025-04-05T19:12:57Z"
|
||||
},
|
||||
{
|
||||
"name": "semaphoreui/semaphore",
|
||||
"version": "v2.16.37",
|
||||
"date": "2025-10-30T07:54:49Z"
|
||||
},
|
||||
{
|
||||
"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": "n8n-io/n8n",
|
||||
"version": "n8n@1.117.3",
|
||||
"date": "2025-10-28T12:00:42Z"
|
||||
},
|
||||
{
|
||||
"name": "Graylog2/graylog2-server",
|
||||
"version": "7.0.0",
|
||||
"date": "2025-11-03T12:22:00Z"
|
||||
},
|
||||
{
|
||||
"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",
|
||||
@@ -344,6 +139,11 @@
|
||||
"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",
|
||||
@@ -354,6 +154,11 @@
|
||||
"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",
|
||||
@@ -364,15 +169,20 @@
|
||||
"version": "v0.62.12",
|
||||
"date": "2025-10-31T17:30:55Z"
|
||||
},
|
||||
{
|
||||
"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": "zabbix/zabbix",
|
||||
"version": "7.4.5",
|
||||
"date": "2025-10-31T14:39:13Z"
|
||||
"name": "wizarrrr/wizarr",
|
||||
"version": "v2025.10.8",
|
||||
"date": "2025-10-31T14:47:28Z"
|
||||
},
|
||||
{
|
||||
"name": "gristlabs/grist-core",
|
||||
@@ -384,6 +194,11 @@
|
||||
"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",
|
||||
@@ -399,6 +214,16 @@
|
||||
"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",
|
||||
@@ -409,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",
|
||||
@@ -424,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",
|
||||
@@ -454,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",
|
||||
@@ -469,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",
|
||||
@@ -494,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",
|
||||
@@ -509,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",
|
||||
@@ -564,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",
|
||||
@@ -624,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",
|
||||
@@ -649,6 +579,11 @@
|
||||
"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",
|
||||
@@ -689,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",
|
||||
@@ -704,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",
|
||||
@@ -819,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",
|
||||
@@ -834,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,6 +829,16 @@
|
||||
"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",
|
||||
@@ -924,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",
|
||||
@@ -934,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",
|
||||
@@ -999,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",
|
||||
@@ -1089,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",
|
||||
@@ -1189,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",
|
||||
@@ -1254,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",
|
||||
@@ -1279,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",
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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.2" "$SRC_DIR"
|
||||
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v2.2.1" "$SRC_DIR"
|
||||
|
||||
msg_info "Installing ${APPLICATION} (patience)"
|
||||
|
||||
|
||||
@@ -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
85
install/metube-install.sh
Normal 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"
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
2404
misc/tools.func
2404
misc/tools.func
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user