Compare commits

...

18 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot] 1ea195e7a6 Update CHANGELOG.md (#16055)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-26 20:37:14 +00:00
Andy Grunwald cad309b6a5 Remove software-properties-common from Apache Tika install (#16054)
The container was switched from bookworm to trixie in #16036, but
software-properties-common does not exist in Debian 13. apt aborts the
whole dependency line on the single missing package (exit code 100), so
a fresh install never gets past "Installing Dependencies".

The package only provides add-apt-repository, which this script never
calls — no PPAs or custom repos are configured anywhere. It is a dead
dependency, so dropping it needs no replacement; every other package on
that line exists in trixie.

Fixes #16053

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-26 22:36:46 +02:00
community-scripts-pr-app[bot] 24c5abbcc1 Update CHANGELOG.md (#16049)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-26 17:05:19 +00:00
push-app-to-main[bot] 49e04e6202 Satisfactory (#16023)
* Add satisfactory (ct)

* Refactor messages for Satisfactory application

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2026-07-26 19:04:53 +02:00
community-scripts-pr-app[bot] aeccbf72d5 Update CHANGELOG.md (#16048)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-26 16:53:30 +00:00
push-app-to-main[bot] 3e1feef953 OmniTools (#16032)
* Add omnitools (ct)

* Fix sourcing of build.func in omnitools.sh

* Remove redundant line in omnitools.sh

* Fix Nginx configuration script formatting

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2026-07-26 18:53:08 +02:00
community-scripts-pr-app[bot] 10287dd48a Update CHANGELOG.md (#16047)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-26 16:51:58 +00:00
Marco C. d325c03944 Improve command description for disabling pve-enterprise repo (#16020)
The "disable" option description stated "Comment out (disable) this repo" but the implementation uses `Enabled: false` (deb822 format) instead of commenting. Update description to better reflect the action.
2026-07-26 18:51:33 +02:00
community-scripts-pr-app[bot] f6e1f86310 Update CHANGELOG.md (#16045)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-26 16:42:37 +00:00
CanbiZ (MickLesk) 300744cc7c build.func: fix OS mismatch message when script target moved to an older OS (#16035) 2026-07-26 18:42:11 +02:00
community-scripts-pr-app[bot] 640dc68bdc Update CHANGELOG.md (#16044)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-26 16:35:55 +00:00
Andy Grunwald f5390ebdbf Apache Tika: Switch from Debian Bookworm to Debian Trixie and replace manual install of OpenJDK with setup_java (#16036)
* Install Java via setup_java instead of distro openjdk

Apache Tika's Java runtime was installed by calling apt directly for
openjdk-17-jre-headless. This tied the JDK to whatever Debian ships, and
that coupling has now broken: openjdk-17 is no longer available on Debian
13 (Trixie), where openjdk-21 is current. It also made this the only
script in install/ that installs Java by hand, while every other Java
application in the repository uses the shared setup_java helper.

Switch to setup_java, which installs Eclipse Temurin from the Adoptium
repository. Temurin is versioned independently of the Debian release, so
a future distribution upgrade cannot remove the JDK out from under the
application the way this one did.

Java 21 satisfies both current and upcoming Tika: 3.x requires Java 11 or
newer, and 4.x raises the floor to Java 17.

The surrounding msg_info/msg_ok pair is dropped because setup_java emits
its own progress messages; keeping them would nest the output.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* Bump Apache-Tika container to Debian 13

The container declared Debian 12 (Bookworm) as its base, which had become
an outlier: 475 of the repository's ct scripts target Debian 13 and only
22 still target 12. build.func also sets trixie as the default ARM64
template codename, so this script's declared base had drifted away from
the repository default.

The declared version is not cosmetic. check_container_os_guard() reads
var_os/var_version as the script's recommended OS and compares them
against a container's /etc/os-release, prompting on interactive runs and
aborting headless ones when they disagree. Debian 12 was also the reason
the previous openjdk-17 dependency looked valid; on Debian 13 that
package no longer exists, which is addressed in the preceding commit.

Existing Debian 12 containers keep working, because update_script only
replaces the Tika jar and never touches the operating system or Java.
They will, however, now hit the OS mismatch guard on update and be asked
to move to Debian 13 first. That is intended rather than a regression,
but it is a visible change for existing users.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-26 18:35:32 +02:00
community-scripts-pr-app[bot] 9fafffbe04 Update CHANGELOG.md (#16043)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-26 16:34:32 +00:00
CanbiZ (MickLesk) 62690cfafb InvenTree: populate database engine/name in config.yaml before invoke update (#16022) 2026-07-26 18:34:05 +02:00
community-scripts-pr-app[bot] b0db823934 Update CHANGELOG.md (#16040)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-26 14:57:50 +00:00
CanbiZ (MickLesk) 2dd9d98e8a OPNsense VM: answer console password prompt explicitly (#16021) 2026-07-26 16:57:29 +02:00
community-scripts-pr-app[bot] 5919f0773e Update CHANGELOG.md (#16039)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-26 13:39:16 +00:00
Johann Grobe 895ecdc71e add node update to update script (#16014) 2026-07-26 23:38:55 +10:00
14 changed files with 349 additions and 9 deletions
+30
View File
@@ -510,6 +510,36 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
## 2026-07-26
### 🆕 New Scripts
- Satisfactory ([#16023](https://github.com/community-scripts/ProxmoxVE/pull/16023))
- OmniTools ([#16032](https://github.com/community-scripts/ProxmoxVE/pull/16032))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Apache Tika: Remove software-properties-common from Apache Tika install [@andygrunwald](https://github.com/andygrunwald) ([#16054](https://github.com/community-scripts/ProxmoxVE/pull/16054))
- Fix inventree missing db engine (upstream issue / postinstall) [@MickLesk](https://github.com/MickLesk) ([#16022](https://github.com/community-scripts/ProxmoxVE/pull/16022))
- OPNsense VM: answer console password prompt explicitly, add inter-key delay [@MickLesk](https://github.com/MickLesk) ([#16021](https://github.com/community-scripts/ProxmoxVE/pull/16021))
- [endurain] add node update to update script [@johanngrobe](https://github.com/johanngrobe) ([#16014](https://github.com/community-scripts/ProxmoxVE/pull/16014))
- #### 🔧 Refactor
- Apache Tika: Switch from Debian Bookworm to Debian Trixie and replace manual install of OpenJDK with setup_java [@andygrunwald](https://github.com/andygrunwald) ([#16036](https://github.com/community-scripts/ProxmoxVE/pull/16036))
### 💾 Core
- #### 🔧 Refactor
- core: improve OS mismatch message [@MickLesk](https://github.com/MickLesk) ([#16035](https://github.com/community-scripts/ProxmoxVE/pull/16035))
### 🧰 Tools
- #### 🔧 Refactor
- Improve command description for disabling pve-enterprise repo [@Marcondiro](https://github.com/Marcondiro) ([#16020](https://github.com/community-scripts/ProxmoxVE/pull/16020))
## 2026-07-25
### 🚀 Updated Scripts
+1 -1
View File
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
var_unprivileged="${var_unprivileged:-1}"
+2
View File
@@ -34,6 +34,8 @@ function update_script() {
systemctl stop endurain
msg_ok "Stopped Service"
NODE_VERSION="24" setup_nodejs
create_backup /opt/endurain/.env /opt/endurain/frontend/dist/env.js
CLEAN_INSTALL=1 fetch_and_deploy_codeberg_release "endurain" "endurain-project/endurain" "tarball" "latest" "/opt/endurain"
+6
View File
@@ -0,0 +1,6 @@
____ _ ______ __
/ __ \____ ___ ____ (_)_ __/___ ____ / /____
/ / / / __ `__ \/ __ \/ / / / / __ \/ __ \/ / ___/
/ /_/ / / / / / / / / / / / / / /_/ / /_/ / (__ )
\____/_/ /_/ /_/_/ /_/_/ /_/ \____/\____/_/____/
+6
View File
@@ -0,0 +1,6 @@
_____ __ _ ____ __
/ ___/____ _/ /_(_)____/ __/___ ______/ /_____ _______ __
\__ \/ __ `/ __/ / ___/ /_/ __ `/ ___/ __/ __ \/ ___/ / / /
___/ / /_/ / /_/ (__ ) __/ /_/ / /__/ /_/ /_/ / / / /_/ /
/____/\__,_/\__/_/____/_/ \__,_/\___/\__/\____/_/ \__, /
/____/
+65
View File
@@ -0,0 +1,65 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Majiiin
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/iib0011/omni-tools
APP="OmniTools"
var_tags="${var_tags:-utilities;tools;converter}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
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/omnitools ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
NODE_VERSION="24" setup_nodejs
if check_for_gh_release "omnitools" "iib0011/omni-tools"; then
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "omnitools" "iib0011/omni-tools" "tarball"
msg_info "Building OmniTools"
cd /opt/omnitools
export HUSKY=0
$STD npm ci
$STD npm run build
msg_ok "Built OmniTools"
msg_info "Publishing Web Assets"
rm -rf /usr/share/nginx/html
mkdir -p /usr/share/nginx/html
cp -a /opt/omnitools/dist/. /usr/share/nginx/html/
rm -rf /opt/omnitools/node_modules
systemctl reload nginx
msg_ok "Published Web Assets"
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 "${GATEWAY}${BGN}http://${IP}${CL}"
+70
View File
@@ -0,0 +1,70 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: n8flx
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.satisfactorygame.com/
APP="Satisfactory"
var_tags="${var_tags:-gaming;server}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-8192}"
var_disk="${var_disk:-20}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-no}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -x /opt/steamcmd/steamcmd.sh || ! -d /opt/satisfactory/server ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping Satisfactory"
systemctl stop satisfactory
msg_ok "Stopped Satisfactory"
create_backup /home/steam/.config/Epic/FactoryGame/Saved
msg_info "Updating Satisfactory"
if $STD runuser -u steam -- /opt/steamcmd/steamcmd.sh \
+force_install_dir /opt/satisfactory/server \
+login anonymous \
+app_update 1690800 -beta public validate \
+quit; then
msg_ok "Updated Satisfactory"
else
restore_backup
systemctl start satisfactory
msg_error "Failed to update Satisfactory"
exit 1
fi
restore_backup
msg_info "Starting Satisfactory"
systemctl start satisfactory
msg_ok "Started Satisfactory"
msg_ok "Updated Successfully!"
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} Add the server in Satisfactory Server Manager:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}${IP}:7777${CL}"
echo -e "${INFO}${YW} Required ports:${CL} ${BGN}7777 TCP/UDP and 8888 TCP${CL}"
+1 -5
View File
@@ -15,7 +15,6 @@ update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
software-properties-common \
gdal-bin \
tesseract-ocr \
tesseract-ocr-eng \
@@ -33,10 +32,7 @@ $STD apt-get install -y \
cabextract
msg_ok "Installed Dependencies"
msg_info "Setup OpenJDK"
$STD apt-get install -y \
openjdk-17-jre-headless
msg_ok "Setup OpenJDK"
JAVA_VERSION="21" setup_java
msg_info "Installing Apache Tika"
mkdir -p /opt/apache-tika
+5
View File
@@ -30,6 +30,11 @@ msg_ok "Installed InvenTree"
msg_info "Configuring InvenTree"
if [[ -f /etc/inventree/config.yaml ]]; then
sed -i "s|site_url:.*|site_url: http://${LOCAL_IP}|" /etc/inventree/config.yaml
if ! grep -q "^ engine:" /etc/inventree/config.yaml; then
mkdir -p /home/inventree/data
chown inventree:inventree /home/inventree/data
sed -i "/^database:$/a\\ engine: sqlite3\\n name: '/home/inventree/data/database.sqlite3'" /etc/inventree/config.yaml
fi
fi
$STD inventree run invoke update
msg_ok "Configured InvenTree"
+67
View File
@@ -0,0 +1,67 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Majiiin
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/iib0011/omni-tools
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 nginx
msg_ok "Installed Dependencies"
NODE_VERSION="24" setup_nodejs
fetch_and_deploy_gh_release "omnitools" "iib0011/omni-tools" "tarball"
msg_info "Building OmniTools"
cd /opt/omnitools
export HUSKY=0
$STD npm ci
$STD npm run build
msg_ok "Built OmniTools"
msg_info "Publishing Web Assets"
rm -rf /usr/share/nginx/html
mkdir -p /usr/share/nginx/html
cp -a /opt/omnitools/dist/. /usr/share/nginx/html/
rm -rf /opt/omnitools/node_modules
msg_ok "Published Web Assets"
msg_info "Configuring Nginx"
sed -i \
's/application\/javascript.*js;/application\/javascript js mjs;/' \
/etc/nginx/mime.types
cat <<'EOF' >/etc/nginx/sites-available/omnitools
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
EOF
ln -sf /etc/nginx/sites-available/omnitools /etc/nginx/sites-enabled/omnitools
rm -f /etc/nginx/sites-enabled/default
$STD nginx -t
systemctl enable -q --now nginx
systemctl reload nginx
msg_ok "Configured Nginx"
motd_ssh
customize
cleanup_lxc
+75
View File
@@ -0,0 +1,75 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: n8flx
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.satisfactorygame.com/
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 \
lib32gcc-s1 \
lib32stdc++6
msg_ok "Installed Dependencies"
msg_info "Creating Steam User and Application Directories"
useradd --system \
--create-home \
--home-dir /home/steam \
--shell /usr/sbin/nologin \
steam
mkdir -p /opt/satisfactory/server /opt/steamcmd
chown -R steam:steam /opt/satisfactory /opt/steamcmd /home/steam
msg_ok "Created Steam User and Application Directories"
fetch_and_deploy_from_url \
"https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" \
"/opt/steamcmd"
chown -R steam:steam /opt/steamcmd
msg_info "Installing Satisfactory Dedicated Server"
$STD runuser -u steam -- /opt/steamcmd/steamcmd.sh \
+force_install_dir /opt/satisfactory/server \
+login anonymous \
+app_update 1690800 -beta public validate \
+quit
msg_ok "Installed Satisfactory Dedicated Server"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/satisfactory.service
[Unit]
Description=Satisfactory Dedicated Server
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=steam
Group=steam
WorkingDirectory=/opt/satisfactory/server
Environment=LANG=C.UTF-8
Environment=HOME=/home/steam
ExecStart=/opt/satisfactory/server/FactoryServer.sh -log
Restart=on-failure
RestartSec=10
KillSignal=SIGINT
TimeoutStopSec=120
StandardOutput=journal+console
StandardError=journal+console
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now satisfactory
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
+18 -2
View File
@@ -3858,6 +3858,13 @@ check_container_os_guard() {
return 0
fi
local downgraded_target=0
if [[ "$cur_os" == "$rec_os" ]] && [[ "$cur_ver" != "$rec_ver" ]]; then
if [[ "$(printf '%s\n%s\n' "$cur_ver" "$rec_ver" | sort -V | tail -n1)" == "$cur_ver" ]]; then
downgraded_target=1
fi
fi
case "${var_ignore_os_mismatch:-}" in
1 | yes | true | on)
msg_warn "Container OS is ${cur_os} ${cur_ver} but the script recommends ${rec_os} ${rec_ver} — continuing via var_ignore_os_mismatch (may break, no support)."
@@ -3873,10 +3880,19 @@ check_container_os_guard() {
return 0
fi
local mismatch_detail remediation
if [[ "$downgraded_target" -eq 1 ]]; then
mismatch_detail="Your container runs ${cur_os} ${cur_ver}, which is newer than what this script now targets (${rec_os} ${rec_ver}).\n\nThe target was likely lowered on purpose, e.g. because ${APP:-the app} had problems on newer OS versions - check the GitHub issues for ${APP:-this app} for details.\n\nContinuing on ${cur_ver} often still works, but isn't guaranteed. If you are unsure, ask in our Discord (https://discord.gg/3AnUqsXnmK) before continuing."
remediation="This script now targets the older ${rec_os} ${rec_ver}. Check the GitHub issues for ${APP:-this app}, or ask in Discord (https://discord.gg/3AnUqsXnmK) if you are unsure"
else
mismatch_detail="This container runs ${cur_os} ${cur_ver}, but this script now targets ${rec_os} ${rec_ver}.\n\nUpdating on the older base OS may fail or leave ${APP:-the application} broken (e.g. required runtime versions are not available).\n\nRecommended: upgrade the container OS to ${rec_os} ${rec_ver} first, then run this update again."
remediation="Upgrade the container OS to ${rec_os} ${rec_ver} first, then run this update again"
fi
if [[ "${PHS_SILENT:-0}" != "1" ]] && command -v whiptail &>/dev/null && [ -t 0 ] && [[ "$TERM" != "dumb" ]]; then
local choice
choice=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "OS VERSION MISMATCH" --menu \
"This container runs ${cur_os} ${cur_ver}, but this script now targets ${rec_os} ${rec_ver}.\n\nUpdating on the older base OS may fail or leave ${APP:-the application} broken (e.g. required runtime versions are not available).\n\nRecommended: upgrade the container OS to ${rec_os} ${rec_ver} first, then run this update again.\n\nIf you continue anyway, it may break — no support is provided in that case.\n\nContinue anyway?" \
"${mismatch_detail}\n\nIf you continue anyway, it may break — no support is provided in that case.\n\nContinue anyway?" \
20 70 3 \
"1" "No (cancel update)" \
"2" "Yes (continue this time)" \
@@ -3899,7 +3915,7 @@ check_container_os_guard() {
fi
msg_error "Container OS ${cur_os} ${cur_ver} does not match the recommended ${rec_os} ${rec_ver} — skipping update."
msg_error "Upgrade the container OS to ${rec_os} ${rec_ver} first, then run this update again — or bypass this check (may break, no support) with: echo \"${rec_os} ${rec_ver}\" > ${ignore_file}"
msg_error "${remediation} — or bypass this check (may break, no support) with: echo \"${rec_os} ${rec_ver}\" > ${ignore_file}"
return 1
}
+1 -1
View File
@@ -300,7 +300,7 @@ EOF
--title "PVE-ENTERPRISE" \
--menu "'pve-enterprise' repository already exists.\n\nWhat do you want to do?" 14 58 2 \
"keep" "Keep as is" \
"disable" "Comment out (disable) this repo" \
"disable" "Disable this repo (set Enabled: false)" \
"delete" "Delete this repo file" \
3>&2 2>&1 1>&3)
case $CHOICE in
+2
View File
@@ -810,6 +810,8 @@ msg_ok "Starting OPNsense VM (Patience this takes 20-30 minutes)"
qm start $VMID
sleep 90
send_line_to_vm "root"
sleep 2
send_line_to_vm ""
send_line_to_vm "fetch https://raw.githubusercontent.com/opnsense/update/master/src/bootstrap/opnsense-bootstrap.sh.in"
if [ -n "$WAN_BRG" ]; then
msg_info "Adding WAN interface"