mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-05-22 16:34:57 +02:00
Compare commits
9 Commits
soulsync_w
...
docmost_fi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
13151237e0 | ||
|
|
fa4fc95a74 | ||
|
|
2fa9ae03a1 | ||
|
|
83859e2219 | ||
|
|
82abeac9fb | ||
|
|
8aca89b8dc | ||
|
|
35953b6d51 | ||
|
|
a80e215262 | ||
|
|
51468821f9 |
15
CHANGELOG.md
15
CHANGELOG.md
@@ -466,12 +466,27 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
## 2026-05-22
|
## 2026-05-22
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Profilarr: pin Deno version to v2.7.5 [@MickLesk](https://github.com/MickLesk) ([#14632](https://github.com/community-scripts/ProxmoxVE/pull/14632))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- SoulSync: setup Node v22 and build WebUI [@MickLesk](https://github.com/MickLesk) ([#14639](https://github.com/community-scripts/ProxmoxVE/pull/14639))
|
||||||
|
- Refactor: Dispatcharr [@MickLesk](https://github.com/MickLesk) ([#14313](https://github.com/community-scripts/ProxmoxVE/pull/14313))
|
||||||
|
|
||||||
### 💾 Core
|
### 💾 Core
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
- fix: make LXC banner OS detection dynamic via /etc/os-release [@atahan99](https://github.com/atahan99) ([#14269](https://github.com/community-scripts/ProxmoxVE/pull/14269))
|
- fix: make LXC banner OS detection dynamic via /etc/os-release [@atahan99](https://github.com/atahan99) ([#14269](https://github.com/community-scripts/ProxmoxVE/pull/14269))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- core: suppress MOTD for non-interactive shells [@MickLesk](https://github.com/MickLesk) ([#14638](https://github.com/community-scripts/ProxmoxVE/pull/14638))
|
||||||
|
|
||||||
## 2026-05-21
|
## 2026-05-21
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ function update_script() {
|
|||||||
cp /opt/dispatcharr/.env /tmp/dispatcharr.env.backup
|
cp /opt/dispatcharr/.env /tmp/dispatcharr.env.backup
|
||||||
fi
|
fi
|
||||||
if [[ -f /opt/dispatcharr/start-gunicorn.sh ]]; then
|
if [[ -f /opt/dispatcharr/start-gunicorn.sh ]]; then
|
||||||
cp /opt/dispatcharr/start-gunicorn.sh /tmp/start-gunicorn.sh.backup
|
rm -f /opt/dispatcharr/start-gunicorn.sh
|
||||||
fi
|
fi
|
||||||
if [[ -f /opt/dispatcharr/start-celery.sh ]]; then
|
if [[ -f /opt/dispatcharr/start-celery.sh ]]; then
|
||||||
cp /opt/dispatcharr/start-celery.sh /tmp/start-celery.sh.backup
|
cp /opt/dispatcharr/start-celery.sh /tmp/start-celery.sh.backup
|
||||||
@@ -83,9 +83,6 @@ function update_script() {
|
|||||||
if [[ -f /tmp/dispatcharr.env.backup ]]; then
|
if [[ -f /tmp/dispatcharr.env.backup ]]; then
|
||||||
mv /tmp/dispatcharr.env.backup /opt/dispatcharr/.env
|
mv /tmp/dispatcharr.env.backup /opt/dispatcharr/.env
|
||||||
fi
|
fi
|
||||||
if [[ -f /tmp/start-gunicorn.sh.backup ]]; then
|
|
||||||
mv /tmp/start-gunicorn.sh.backup /opt/dispatcharr/start-gunicorn.sh
|
|
||||||
fi
|
|
||||||
if [[ -f /tmp/start-celery.sh.backup ]]; then
|
if [[ -f /tmp/start-celery.sh.backup ]]; then
|
||||||
mv /tmp/start-celery.sh.backup /opt/dispatcharr/start-celery.sh
|
mv /tmp/start-celery.sh.backup /opt/dispatcharr/start-celery.sh
|
||||||
fi
|
fi
|
||||||
@@ -105,7 +102,35 @@ function update_script() {
|
|||||||
rm -rf .venv
|
rm -rf .venv
|
||||||
$STD uv venv --clear
|
$STD uv venv --clear
|
||||||
$STD uv sync
|
$STD uv sync
|
||||||
$STD uv pip install gunicorn gevent celery redis daphne
|
$STD uv pip install uwsgi gevent celery redis daphne
|
||||||
|
cat <<'EOF' >/opt/dispatcharr/start-uwsgi.sh
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
cd /opt/dispatcharr
|
||||||
|
set -a
|
||||||
|
source .env
|
||||||
|
set +a
|
||||||
|
exec .venv/bin/uwsgi \
|
||||||
|
--chdir=/opt/dispatcharr \
|
||||||
|
--module=dispatcharr.wsgi:application \
|
||||||
|
--master \
|
||||||
|
--workers=4 \
|
||||||
|
--gevent=400 \
|
||||||
|
--http=0.0.0.0:5656 \
|
||||||
|
--http-keepalive=1 \
|
||||||
|
--http-timeout=600 \
|
||||||
|
--socket-timeout=600 \
|
||||||
|
--buffer-size=65536 \
|
||||||
|
--post-buffering=4096 \
|
||||||
|
--lazy-apps \
|
||||||
|
--thunder-lock \
|
||||||
|
--die-on-term \
|
||||||
|
--vacuum
|
||||||
|
EOF
|
||||||
|
chmod +x /opt/dispatcharr/start-uwsgi.sh
|
||||||
|
if grep -q 'start-gunicorn.sh' /etc/systemd/system/dispatcharr.service; then
|
||||||
|
sed -i 's|start-gunicorn.sh|start-uwsgi.sh|g' /etc/systemd/system/dispatcharr.service
|
||||||
|
systemctl daemon-reload
|
||||||
|
fi
|
||||||
msg_ok "Updated Dispatcharr Backend"
|
msg_ok "Updated Dispatcharr Backend"
|
||||||
|
|
||||||
msg_info "Building Frontend"
|
msg_info "Building Frontend"
|
||||||
|
|||||||
@@ -36,9 +36,9 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if check_for_gh_release "deno" "denoland/deno"; then
|
if check_for_gh_release "deno" "denoland/deno" "v2.7.5" "Deno is pinned to 2.7.5 because the known WouldBlock: Resource temporarily unavailable (os error 11) Issue"; then
|
||||||
ARCH=$(uname -m)
|
ARCH=$(uname -m)
|
||||||
fetch_and_deploy_gh_release "deno" "denoland/deno" "prebuild" "latest" "/usr/local/bin" "deno-${ARCH}-unknown-linux-gnu.zip"
|
fetch_and_deploy_gh_release "deno" "denoland/deno" "v2.7.5" "latest" "/usr/local/bin" "deno-${ARCH}-unknown-linux-gnu.zip"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if check_for_gh_release "profilarr" "Dictionarry-Hub/profilarr"; then
|
if check_for_gh_release "profilarr" "Dictionarry-Hub/profilarr"; then
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ msg_info "Installing Python Dependencies with uv"
|
|||||||
cd /opt/dispatcharr
|
cd /opt/dispatcharr
|
||||||
$STD uv venv --clear
|
$STD uv venv --clear
|
||||||
$STD uv sync
|
$STD uv sync
|
||||||
$STD uv pip install gunicorn gevent celery redis daphne
|
$STD uv pip install uwsgi gevent celery redis daphne
|
||||||
msg_ok "Installed Python Dependencies"
|
msg_ok "Installed Python Dependencies"
|
||||||
|
|
||||||
msg_info "Configuring Dispatcharr"
|
msg_info "Configuring Dispatcharr"
|
||||||
@@ -118,7 +118,7 @@ server {
|
|||||||
proxy_set_header X-Forwarded-Proto \$scheme;
|
proxy_set_header X-Forwarded-Proto \$scheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
# All other requests proxy to Gunicorn
|
# All other requests proxy to uWSGI
|
||||||
location / {
|
location / {
|
||||||
include proxy_params;
|
include proxy_params;
|
||||||
proxy_pass http://127.0.0.1:5656;
|
proxy_pass http://127.0.0.1:5656;
|
||||||
@@ -131,20 +131,30 @@ systemctl restart nginx
|
|||||||
msg_ok "Configured Nginx"
|
msg_ok "Configured Nginx"
|
||||||
|
|
||||||
msg_info "Creating Services"
|
msg_info "Creating Services"
|
||||||
cat <<EOF >/opt/dispatcharr/start-gunicorn.sh
|
cat <<EOF >/opt/dispatcharr/start-uwsgi.sh
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
cd /opt/dispatcharr
|
cd /opt/dispatcharr
|
||||||
set -a
|
set -a
|
||||||
source .env
|
source .env
|
||||||
set +a
|
set +a
|
||||||
exec uv run gunicorn \\
|
exec .venv/bin/uwsgi \\
|
||||||
|
--chdir=/opt/dispatcharr \\
|
||||||
|
--module=dispatcharr.wsgi:application \\
|
||||||
|
--master \\
|
||||||
--workers=4 \\
|
--workers=4 \\
|
||||||
--worker-class=gevent \\
|
--gevent=400 \\
|
||||||
--timeout=300 \\
|
--http=0.0.0.0:5656 \\
|
||||||
--bind 0.0.0.0:5656 \\
|
--http-keepalive=1 \\
|
||||||
dispatcharr.wsgi:application
|
--http-timeout=600 \\
|
||||||
|
--socket-timeout=600 \\
|
||||||
|
--buffer-size=65536 \\
|
||||||
|
--post-buffering=4096 \\
|
||||||
|
--lazy-apps \\
|
||||||
|
--thunder-lock \\
|
||||||
|
--die-on-term \\
|
||||||
|
--vacuum
|
||||||
EOF
|
EOF
|
||||||
chmod +x /opt/dispatcharr/start-gunicorn.sh
|
chmod +x /opt/dispatcharr/start-uwsgi.sh
|
||||||
|
|
||||||
cat <<EOF >/opt/dispatcharr/start-celery.sh
|
cat <<EOF >/opt/dispatcharr/start-celery.sh
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
@@ -184,7 +194,7 @@ After=network.target postgresql.service redis-server.service
|
|||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
WorkingDirectory=/opt/dispatcharr
|
WorkingDirectory=/opt/dispatcharr
|
||||||
ExecStart=/opt/dispatcharr/start-gunicorn.sh
|
ExecStart=/opt/dispatcharr/start-uwsgi.sh
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
RestartSec=10
|
RestartSec=10
|
||||||
User=root
|
User=root
|
||||||
|
|||||||
@@ -31,8 +31,8 @@ cd /opt/docmost
|
|||||||
# included in GitHub tarballs. The community NoopAuditService exists but
|
# included in GitHub tarballs. The community NoopAuditService exists but
|
||||||
# is only exported by CoreModule – child modules such as UserModule cannot
|
# is only exported by CoreModule – child modules such as UserModule cannot
|
||||||
# resolve it. Making CoreModule @Global() exposes the token app-wide.
|
# resolve it. Making CoreModule @Global() exposes the token app-wide.
|
||||||
if [[ ! -f /opt/docmost/apps/server/src/ee/ee.module.ts ]] \
|
if [[ ! -f /opt/docmost/apps/server/src/ee/ee.module.ts ]] &&
|
||||||
&& ! grep -q '@Global()' /opt/docmost/apps/server/src/core/core.module.ts 2>/dev/null; then
|
! grep -q '@Global()' /opt/docmost/apps/server/src/core/core.module.ts 2>/dev/null; then
|
||||||
sed -i '/^ Module,$/a\ Global,' /opt/docmost/apps/server/src/core/core.module.ts
|
sed -i '/^ Module,$/a\ Global,' /opt/docmost/apps/server/src/core/core.module.ts
|
||||||
sed -i '/^@Module({$/i @Global()' /opt/docmost/apps/server/src/core/core.module.ts
|
sed -i '/^@Module({$/i @Global()' /opt/docmost/apps/server/src/core/core.module.ts
|
||||||
fi
|
fi
|
||||||
@@ -45,6 +45,7 @@ sed -i -e "s|APP_SECRET=.*|APP_SECRET=$(openssl rand -base64 32 | tr -dc 'a-zA-Z
|
|||||||
-e "s|DRAWIO_URL=.*|DRAWIO_URL=https://embed.diagrams.net|" \
|
-e "s|DRAWIO_URL=.*|DRAWIO_URL=https://embed.diagrams.net|" \
|
||||||
-e "s|DISABLE_TELEMETRY=.*|DISABLE_TELEMETRY=true|" \
|
-e "s|DISABLE_TELEMETRY=.*|DISABLE_TELEMETRY=true|" \
|
||||||
-e "s|APP_URL=.*|APP_URL=http://$LOCAL_IP:3000|" \
|
-e "s|APP_URL=.*|APP_URL=http://$LOCAL_IP:3000|" \
|
||||||
|
-e "s|^STORAGE_DRIVER=azure|#STORAGE_DRIVER=azure|" \
|
||||||
/opt/docmost/.env
|
/opt/docmost/.env
|
||||||
export NODE_OPTIONS="--max-old-space-size=2048"
|
export NODE_OPTIONS="--max-old-space-size=2048"
|
||||||
$STD pnpm install
|
$STD pnpm install
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ $STD apt install -y \
|
|||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
ARCH=$(uname -m)
|
ARCH=$(uname -m)
|
||||||
fetch_and_deploy_gh_release "deno" "denoland/deno" "prebuild" "latest" "/usr/local/bin" "deno-${ARCH}-unknown-linux-gnu.zip"
|
fetch_and_deploy_gh_release "deno" "denoland/deno" "prebuild" "v2.7.5" "/usr/local/bin" "deno-${ARCH}-unknown-linux-gnu.zip"
|
||||||
fetch_and_deploy_gh_release "profilarr" "Dictionarry-Hub/profilarr" "tarball"
|
fetch_and_deploy_gh_release "profilarr" "Dictionarry-Hub/profilarr" "tarball"
|
||||||
PROFILARR_VERSION=$(cat ~/.profilarr)
|
PROFILARR_VERSION=$(cat ~/.profilarr)
|
||||||
|
|
||||||
|
|||||||
@@ -183,7 +183,8 @@ motd_ssh() {
|
|||||||
|
|
||||||
PROFILE_FILE="/etc/profile.d/00_lxc-details.sh"
|
PROFILE_FILE="/etc/profile.d/00_lxc-details.sh"
|
||||||
|
|
||||||
echo "echo -e \"\"" >"$PROFILE_FILE"
|
echo "[ -t 1 ] || return 0" >"$PROFILE_FILE"
|
||||||
|
echo "echo -e \"\"" >>"$PROFILE_FILE"
|
||||||
echo -e "echo -e \"${BOLD}${APPLICATION} LXC Container${CL}"\" >>"$PROFILE_FILE"
|
echo -e "echo -e \"${BOLD}${APPLICATION} LXC Container${CL}"\" >>"$PROFILE_FILE"
|
||||||
echo -e "echo -e \"${TAB}${GATEWAY}${YW} Provided by: ${GN}community-scripts ORG ${YW}| GitHub: ${GN}https://github.com/community-scripts/ProxmoxVE${CL}\"" >>"$PROFILE_FILE"
|
echo -e "echo -e \"${TAB}${GATEWAY}${YW} Provided by: ${GN}community-scripts ORG ${YW}| GitHub: ${GN}https://github.com/community-scripts/ProxmoxVE${CL}\"" >>"$PROFILE_FILE"
|
||||||
echo "echo \"\"" >>"$PROFILE_FILE"
|
echo "echo \"\"" >>"$PROFILE_FILE"
|
||||||
|
|||||||
@@ -3643,7 +3643,7 @@ start() {
|
|||||||
run_addon_updates
|
run_addon_updates
|
||||||
update_motd_ip
|
update_motd_ip
|
||||||
cleanup_lxc
|
cleanup_lxc
|
||||||
elif ! command -v whiptail &>/dev/null || ! [ -t 0 ]; then
|
elif ! command -v whiptail &>/dev/null || ! [ -t 0 ] || [[ "$TERM" == "dumb" ]]; then
|
||||||
msg_info "No interactive terminal detected – defaulting to silent update mode"
|
msg_info "No interactive terminal detected – defaulting to silent update mode"
|
||||||
VERBOSE="no"
|
VERBOSE="no"
|
||||||
set_std_mode
|
set_std_mode
|
||||||
|
|||||||
@@ -140,10 +140,12 @@ ensure_profile_loaded() {
|
|||||||
[[ -n "${_PROFILE_LOADED:-}" ]] && return
|
[[ -n "${_PROFILE_LOADED:-}" ]] && return
|
||||||
command -v pveversion &>/dev/null && return
|
command -v pveversion &>/dev/null && return
|
||||||
|
|
||||||
# Source all profile.d scripts to ensure PATH is complete
|
# Source all profile.d scripts to ensure PATH is complete.
|
||||||
|
# Redirect stdout to suppress banner/MOTD output (e.g. 00_lxc-details.sh)
|
||||||
|
# while still allowing env/PATH exports to take effect.
|
||||||
if [[ -d /etc/profile.d ]]; then
|
if [[ -d /etc/profile.d ]]; then
|
||||||
for script in /etc/profile.d/*.sh; do
|
for script in /etc/profile.d/*.sh; do
|
||||||
[[ -r "$script" ]] && source "$script" || true
|
[[ -r "$script" ]] && source "$script" >/dev/null || true
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -456,7 +456,8 @@ motd_ssh() {
|
|||||||
|
|
||||||
PROFILE_FILE="/etc/profile.d/00_lxc-details.sh"
|
PROFILE_FILE="/etc/profile.d/00_lxc-details.sh"
|
||||||
|
|
||||||
echo "echo -e \"\"" >"$PROFILE_FILE"
|
echo "[ -t 1 ] || return 0" >"$PROFILE_FILE"
|
||||||
|
echo "echo -e \"\"" >>"$PROFILE_FILE"
|
||||||
echo -e "echo -e \"${BOLD}${APPLICATION} LXC Container${CL}"\" >>"$PROFILE_FILE"
|
echo -e "echo -e \"${BOLD}${APPLICATION} LXC Container${CL}"\" >>"$PROFILE_FILE"
|
||||||
echo -e "echo -e \"${TAB}${GATEWAY}${YW} Provided by: ${GN}community-scripts ORG ${YW}| GitHub: ${GN}https://github.com/community-scripts/ProxmoxVE${CL}\"" >>"$PROFILE_FILE"
|
echo -e "echo -e \"${TAB}${GATEWAY}${YW} Provided by: ${GN}community-scripts ORG ${YW}| GitHub: ${GN}https://github.com/community-scripts/ProxmoxVE${CL}\"" >>"$PROFILE_FILE"
|
||||||
echo "echo \"\"" >>"$PROFILE_FILE"
|
echo "echo \"\"" >>"$PROFILE_FILE"
|
||||||
|
|||||||
Reference in New Issue
Block a user