mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-03-04 09:55:55 +00:00
Compare commits
1 Commits
github-act
...
automated/
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6929b2b2e5 |
16
CHANGELOG.md
16
CHANGELOG.md
@@ -416,24 +416,8 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- update: stirling-pdf: java 25 [@CrazyWolf13](https://github.com/CrazyWolf13) ([#12552](https://github.com/community-scripts/ProxmoxVE/pull/12552))
|
||||
- Docmost: register NoopAuditService globally when EE submodule is missing [@MickLesk](https://github.com/MickLesk) ([#12551](https://github.com/community-scripts/ProxmoxVE/pull/12551))
|
||||
- jellyseer/overseer migration corrupting /usr/bin/update [@MickLesk](https://github.com/MickLesk) ([#12539](https://github.com/community-scripts/ProxmoxVE/pull/12539))
|
||||
- PowerDNS: use gsqlite3 backend instead of BIND [@MickLesk](https://github.com/MickLesk) ([#12538](https://github.com/community-scripts/ProxmoxVE/pull/12538))
|
||||
- addon migrations: /usr/bin/update replacement to prevent syntax error [@MickLesk](https://github.com/MickLesk) ([#12540](https://github.com/community-scripts/ProxmoxVE/pull/12540))
|
||||
- fix(immich): correct LibRaw clone URL to official upstream [@DenislavDenev](https://github.com/DenislavDenev) ([#12526](https://github.com/community-scripts/ProxmoxVE/pull/12526))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: LiteLLM [@tremor021](https://github.com/tremor021) ([#12550](https://github.com/community-scripts/ProxmoxVE/pull/12550))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- tools: fall back to distro packages for psql [@MickLesk](https://github.com/MickLesk) ([#12542](https://github.com/community-scripts/ProxmoxVE/pull/12542))
|
||||
- fix: whitelist var_searchdomain and fix the handling of var_ns and va… [@tommoyer](https://github.com/tommoyer) ([#12521](https://github.com/community-scripts/ProxmoxVE/pull/12521))
|
||||
|
||||
## 2026-03-03
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
@@ -48,11 +48,9 @@ function update_script() {
|
||||
fi
|
||||
|
||||
msg_info "Migrating update function"
|
||||
TMP_UPDATE=$(mktemp)
|
||||
cat <<'MIGRATION_EOF' >"$TMP_UPDATE"
|
||||
cat <<'MIGRATION_EOF' >/usr/bin/update
|
||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/komodo.sh)"
|
||||
MIGRATION_EOF
|
||||
mv "$TMP_UPDATE" /usr/bin/update
|
||||
chmod +x /usr/bin/update
|
||||
|
||||
ln -sf /usr/bin/update /usr/bin/update_komodo 2>/dev/null || true
|
||||
|
||||
@@ -46,11 +46,9 @@ function update_script() {
|
||||
fi
|
||||
|
||||
msg_info "Migrating update function"
|
||||
TMP_UPDATE=$(mktemp)
|
||||
cat <<'MIGRATION_EOF' >"$TMP_UPDATE"
|
||||
cat <<'MIGRATION_EOF' >/usr/bin/update
|
||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/coolify.sh)"
|
||||
MIGRATION_EOF
|
||||
mv "$TMP_UPDATE" /usr/bin/update
|
||||
chmod +x /usr/bin/update
|
||||
|
||||
ln -sf /usr/bin/update /usr/bin/update_coolify 2>/dev/null || true
|
||||
|
||||
@@ -48,11 +48,9 @@ function update_script() {
|
||||
fi
|
||||
|
||||
msg_info "Migrating update function"
|
||||
TMP_UPDATE=$(mktemp)
|
||||
cat <<'MIGRATION_EOF' >"$TMP_UPDATE"
|
||||
cat <<'MIGRATION_EOF' >/usr/bin/update
|
||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/dockge.sh)"
|
||||
MIGRATION_EOF
|
||||
mv "$TMP_UPDATE" /usr/bin/update
|
||||
chmod +x /usr/bin/update
|
||||
|
||||
ln -sf /usr/bin/update /usr/bin/update_dockge 2>/dev/null || true
|
||||
|
||||
@@ -48,17 +48,6 @@ function update_script() {
|
||||
cd /opt/docmost
|
||||
mv /opt/.env /opt/docmost/.env
|
||||
mv /opt/data /opt/docmost/data
|
||||
|
||||
# Fix: Docmost EE (audit logs etc.) lives in a git submodule that is NOT
|
||||
# included in GitHub tarballs. The community NoopAuditService exists but
|
||||
# is only exported by CoreModule – child modules such as UserModule cannot
|
||||
# resolve it. Making CoreModule @Global() exposes the token app-wide.
|
||||
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
|
||||
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
|
||||
fi
|
||||
|
||||
$STD pnpm install --force
|
||||
$STD pnpm build
|
||||
msg_ok "Updated ${APP}"
|
||||
|
||||
@@ -46,11 +46,9 @@ function update_script() {
|
||||
fi
|
||||
|
||||
msg_info "Migrating update function"
|
||||
TMP_UPDATE=$(mktemp)
|
||||
cat <<'MIGRATION_EOF' >"$TMP_UPDATE"
|
||||
cat <<'MIGRATION_EOF' >/usr/bin/update
|
||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/dokploy.sh)"
|
||||
MIGRATION_EOF
|
||||
mv "$TMP_UPDATE" /usr/bin/update
|
||||
chmod +x /usr/bin/update
|
||||
|
||||
ln -sf /usr/bin/update /usr/bin/update_dokploy 2>/dev/null || true
|
||||
|
||||
@@ -45,15 +45,14 @@ function update_script() {
|
||||
fi
|
||||
|
||||
msg_info "Switching update script to Seerr"
|
||||
TMP_UPDATE=$(mktemp)
|
||||
cat <<'EOF' >"$TMP_UPDATE"
|
||||
cat <<'EOF' >/usr/bin/update
|
||||
#!/usr/bin/env bash
|
||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/seerr.sh)"
|
||||
EOF
|
||||
mv "$TMP_UPDATE" /usr/bin/update
|
||||
chmod +x /usr/bin/update
|
||||
msg_ok "Switched update script to Seerr"
|
||||
msg_warn "Please type 'update' again to complete the migration"
|
||||
exit 0
|
||||
exit
|
||||
fi
|
||||
|
||||
msg_info "Updating Jellyseerr"
|
||||
|
||||
@@ -52,11 +52,9 @@ function update_script() {
|
||||
fi
|
||||
|
||||
msg_info "Migrating update function"
|
||||
TMP_UPDATE=$(mktemp)
|
||||
cat <<'MIGRATION_EOF' >"$TMP_UPDATE"
|
||||
cat <<'MIGRATION_EOF' >/usr/bin/update
|
||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/komodo.sh)"
|
||||
MIGRATION_EOF
|
||||
mv "$TMP_UPDATE" /usr/bin/update
|
||||
chmod +x /usr/bin/update
|
||||
|
||||
ln -sf /usr/bin/update /usr/bin/update_komodo 2>/dev/null || true
|
||||
|
||||
@@ -34,7 +34,7 @@ function update_script() {
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
VENV_PATH="/opt/litellm/.venv"
|
||||
PYTHON_VERSION="3.13" USE_UVX="YES" setup_uv
|
||||
PYTHON_VERSION="3.13" setup_uv
|
||||
|
||||
msg_info "Updating LiteLLM"
|
||||
$STD "$VENV_PATH/bin/python" -m pip install --upgrade litellm[proxy] prisma
|
||||
|
||||
@@ -44,11 +44,10 @@ function update_script() {
|
||||
fi
|
||||
|
||||
msg_info "Switching update script to Seerr"
|
||||
TMP_UPDATE=$(mktemp)
|
||||
cat <<'EOF' >"$TMP_UPDATE"
|
||||
cat <<'EOF' >/usr/bin/update
|
||||
#!/usr/bin/env bash
|
||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/seerr.sh)"
|
||||
EOF
|
||||
mv "$TMP_UPDATE" /usr/bin/update
|
||||
chmod +x /usr/bin/update
|
||||
msg_ok "Switched update script to Seerr"
|
||||
msg_warn "Please type 'update' again to complete the migration"
|
||||
|
||||
@@ -46,11 +46,9 @@ function update_script() {
|
||||
fi
|
||||
|
||||
msg_info "Migrating update function"
|
||||
TMP_UPDATE=$(mktemp)
|
||||
cat <<'MIGRATION_EOF' >"$TMP_UPDATE"
|
||||
cat <<'MIGRATION_EOF' >/usr/bin/update
|
||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/runtipi.sh)"
|
||||
MIGRATION_EOF
|
||||
mv "$TMP_UPDATE" /usr/bin/update
|
||||
chmod +x /usr/bin/update
|
||||
|
||||
ln -sf /usr/bin/update /usr/bin/update_runtipi 2>/dev/null || true
|
||||
|
||||
@@ -35,7 +35,7 @@ function update_script() {
|
||||
fi
|
||||
|
||||
PYTHON_VERSION="3.12" setup_uv
|
||||
JAVA_VERSION="25" setup_java
|
||||
JAVA_VERSION="21" setup_java
|
||||
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop stirlingpdf libreoffice-listener unoserver
|
||||
|
||||
@@ -26,17 +26,6 @@ fetch_and_deploy_gh_release "docmost" "docmost/docmost" "tarball"
|
||||
|
||||
msg_info "Configuring Docmost (Patience)"
|
||||
cd /opt/docmost
|
||||
|
||||
# Fix: Docmost EE (audit logs etc.) lives in a git submodule that is NOT
|
||||
# included in GitHub tarballs. The community NoopAuditService exists but
|
||||
# is only exported by CoreModule – child modules such as UserModule cannot
|
||||
# resolve it. Making CoreModule @Global() exposes the token app-wide.
|
||||
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
|
||||
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
|
||||
fi
|
||||
|
||||
mv .env.example .env
|
||||
mkdir data
|
||||
sed -i -e "s|APP_SECRET=.*|APP_SECRET=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)|" \
|
||||
|
||||
@@ -20,8 +20,24 @@ $STD apt install -y \
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
PG_VERSION="17" setup_postgresql
|
||||
PG_DB_NAME="litellm_db" PG_DB_USER="litellm" setup_postgresql_db
|
||||
PYTHON_VERSION="3.13" USE_UVX="YES" setup_uv
|
||||
PYTHON_VERSION="3.13" setup_uv
|
||||
|
||||
msg_info "Setting up PostgreSQL"
|
||||
DB_NAME="litellm_db"
|
||||
DB_USER="litellm"
|
||||
DB_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)"
|
||||
$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
|
||||
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;"
|
||||
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
|
||||
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
|
||||
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC';"
|
||||
{
|
||||
echo "${APPLICATION} Credentials"
|
||||
echo "Database Name: $DB_NAME"
|
||||
echo "Database User: $DB_USER"
|
||||
echo "Database Password: $DB_PASS"
|
||||
} >>~/litellm.creds
|
||||
msg_ok "Set up PostgreSQL"
|
||||
|
||||
msg_info "Setting up Virtual Environment"
|
||||
mkdir -p /opt/litellm
|
||||
@@ -37,9 +53,10 @@ mkdir -p /opt
|
||||
cat <<EOF >/opt/litellm/litellm.yaml
|
||||
general_settings:
|
||||
master_key: sk-1234
|
||||
database_url: postgresql://$PG_DB_USER:$PG_DB_PASS@127.0.0.1:5432/$PG_DB_NAME
|
||||
database_url: postgresql://$DB_USER:$DB_PASS@127.0.0.1:5432/$DB_NAME
|
||||
store_model_in_db: true
|
||||
EOF
|
||||
|
||||
uv --directory=/opt/litellm run litellm --config /opt/litellm/litellm.yaml --use_prisma_db_push --skip_server_startup
|
||||
msg_ok "Configured LiteLLM"
|
||||
|
||||
@@ -56,6 +73,7 @@ Restart=always
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
systemctl enable -q --now litellm
|
||||
msg_ok "Created Service"
|
||||
|
||||
|
||||
@@ -38,12 +38,6 @@ msg_info "Setting up PowerDNS"
|
||||
$STD apt install -y \
|
||||
pdns-server \
|
||||
pdns-backend-sqlite3
|
||||
sed -i 's/^launch=$/# launch=/' /etc/powerdns/pdns.conf
|
||||
rm -f /etc/powerdns/pdns.d/bind.conf
|
||||
cat <<EOF >/etc/powerdns/pdns.d/gsqlite3.conf
|
||||
launch+=gsqlite3
|
||||
gsqlite3-database=/opt/poweradmin/powerdns.db
|
||||
EOF
|
||||
msg_ok "Setup PowerDNS"
|
||||
|
||||
fetch_and_deploy_gh_release "poweradmin" "poweradmin/poweradmin" "tarball"
|
||||
@@ -132,10 +126,7 @@ cat <<EOF >/etc/apache2/sites-enabled/poweradmin.conf
|
||||
EOF
|
||||
$STD a2enmod rewrite headers
|
||||
chown -R www-data:www-data /opt/poweradmin
|
||||
chown pdns:pdns /opt/poweradmin/powerdns.db
|
||||
chmod 664 /opt/poweradmin/powerdns.db
|
||||
usermod -aG pdns www-data
|
||||
$STD systemctl restart pdns apache2
|
||||
$STD systemctl restart apache2
|
||||
msg_info "Created Service"
|
||||
|
||||
motd_ssh
|
||||
|
||||
@@ -31,7 +31,7 @@ $STD apt install -y \
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
PYTHON_VERSION="3.12" setup_uv
|
||||
JAVA_VERSION="25" setup_java
|
||||
JAVA_VERSION="21" setup_java
|
||||
|
||||
read -r -p "${TAB3}Do you want to use Stirling-PDF with Login? (no/n = without Login) [Y/n] " response
|
||||
response=${response,,} # Convert to lowercase
|
||||
|
||||
@@ -1033,7 +1033,7 @@ load_vars_file() {
|
||||
var_apt_cacher var_apt_cacher_ip var_brg var_cpu var_disk var_fuse var_gpu var_keyctl
|
||||
var_gateway var_hostname var_ipv6_method var_mac var_mknod var_mount_fs var_mtu
|
||||
var_net var_nesting var_ns var_protection var_pw var_ram var_tags var_timezone var_tun var_unprivileged
|
||||
var_verbose var_vlan var_ssh var_ssh_authorized_key var_container_storage var_template_storage var_searchdomain
|
||||
var_verbose var_vlan var_ssh var_ssh_authorized_key var_container_storage var_template_storage
|
||||
)
|
||||
|
||||
# Whitelist check helper
|
||||
@@ -3620,13 +3620,13 @@ $PCT_OPTIONS_STRING"
|
||||
# Add storage if specified
|
||||
if [ -n "$SD" ]; then
|
||||
PCT_OPTIONS_STRING="$PCT_OPTIONS_STRING
|
||||
-searchdomain $SD"
|
||||
$SD"
|
||||
fi
|
||||
|
||||
# Add nameserver if specified
|
||||
if [ -n "$NS" ]; then
|
||||
PCT_OPTIONS_STRING="$PCT_OPTIONS_STRING
|
||||
-nameserver $NS"
|
||||
$NS"
|
||||
fi
|
||||
|
||||
# Network configuration
|
||||
|
||||
@@ -6500,13 +6500,14 @@ function setup_postgresql() {
|
||||
local SUITE
|
||||
case "$DISTRO_CODENAME" in
|
||||
trixie | forky | sid)
|
||||
|
||||
if verify_repo_available "https://apt.postgresql.org/pub/repos/apt" "trixie-pgdg"; then
|
||||
SUITE="trixie-pgdg"
|
||||
|
||||
else
|
||||
msg_warn "PGDG repo not available for ${DISTRO_CODENAME}, falling back to distro packages"
|
||||
USE_PGDG_REPO=false setup_postgresql
|
||||
return $?
|
||||
SUITE="bookworm-pgdg"
|
||||
fi
|
||||
|
||||
;;
|
||||
*)
|
||||
SUITE=$(get_fallback_suite "$DISTRO_ID" "$DISTRO_CODENAME" "https://apt.postgresql.org/pub/repos/apt")
|
||||
|
||||
Reference in New Issue
Block a user