Compare commits

..
17 Commits
Author SHA1 Message Date
community-scripts-pr-app[bot]andgithub-actions[bot] 2182076128 Update CHANGELOG.md (#18003)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-10-18 19:33:00 +00:00
CanbiZ (MickLesk) 440460f0ea Donetick: create selfhosted.yaml from the example (#17992)
Since 0.1.82 the release only ships config/selfhosted.yaml.example, so the token sed failed on a missing file (#17985).
2026-10-18 21:32:42 +02:00
community-scripts-pr-app[bot]andgithub-actions[bot] c0b3b84eef Update CHANGELOG.md (#18002)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-10-18 19:32:37 +00:00
CanbiZ (MickLesk) be863ab405 Wiki.js: only back up db.sqlite on SQLite installs (#17993)
Installs since February 2025 use PostgreSQL and have no db.sqlite, so the update stopped at the backup (#17971). mkdir -p lets a rerun get past the backup folder a failed run left behind.
2026-10-18 21:32:11 +02:00
community-scripts-pr-app[bot]andgithub-actions[bot] 2bfc7882d3 Update CHANGELOG.md (#18001)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-10-18 19:31:20 +00:00
CanbiZ (MickLesk) e197418b34 FlareSolverr: pass Chrome an en-US Accept-Language (#17995)
FlareSolverr hands LANG to Chrome as --accept-lang, which takes a language tag; with the container locale Cloudflare challenges looped unsolved (discussion #17987, FlareSolverr discussion #1717). Update adds the line to existing units.
2026-10-18 21:30:55 +02:00
community-scripts-pr-app[bot]andgithub-actions[bot] bc71c1ce80 Update CHANGELOG.md (#18000)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-10-18 19:30:17 +00:00
CanbiZ (MickLesk) 12769e95e5 2FAuth: install the locked dependencies (#17996)
composer update re-resolved every dependency instead of using the composer.lock the release ships, and Composer now blocks svg-sanitize 0.22.0 while resolving (#17955, Bubka/2FAuth#575). Upstream's own image only runs composer install, as does our update.
2026-10-18 21:29:52 +02:00
community-scripts-pr-app[bot]andgithub-actions[bot] dead918982 Update CHANGELOG.md (#17998)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-10-18 18:32:18 +00:00
community-scripts-pr-app[bot]andgithub-actions[bot] 662342f679 Update CHANGELOG.md (#17997)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-10-18 18:32:06 +00:00
community-scripts-pr-app[bot]andgithub-actions[bot] 9a9057d750 Update CHANGELOG.md (#17994)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-10-18 18:24:58 +00:00
community-scripts-pr-app[bot]andgithub-actions[bot] 7f52edf9dc Update CHANGELOG.md (#17991)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-10-18 18:16:56 +00:00
Giovanni Francesco SoloneandCanbiZ 21bf2ddeb6 Tracearr: drop the pnpm store after the update build (#17869)
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
2026-10-18 20:16:29 +02:00
community-scripts-pr-app[bot]andgithub-actions[bot] 56f109adca Update CHANGELOG.md (#17988)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-10-18 10:29:12 +00:00
mazeladoandMatt Daleo db6a758f5e vaultwarden: build before stopping the service (#17983)
Co-authored-by: Matt Daleo <12395090+mazelado@users.noreply.github.com>
2026-10-18 12:28:47 +02:00
community-scripts-pr-app[bot]andgithub-actions[bot] 6083e802ee Update CHANGELOG.md (#17986)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-10-18 07:29:09 +00:00
Tobias 2d554a8bb8 fix: geopulse 2.0.0 upgrade support (nginx .mjs, pg18, jwt cleanup) (#17978)
2.0.0 serves its MapLibre worker as a .mjs file, which nginx's stock
mime.types doesn't map, breaking the map on both fresh installs and
updates. Also drops the now-dead JWT key generation/env vars (2.0.0
uses opaque session tokens), clears stale frontend build output on
update via CLEAN_INSTALL+KEEP instead of accumulating it forever,
backs up the database before updating, bumps new installs straight
to PostgreSQL 18/PostGIS 3.6, and raises the default disk size after
hitting real space pressure during a live upgrade.
2026-10-18 09:28:44 +02:00
10 changed files with 108 additions and 25 deletions

No files matched your search

+21
View File
@@ -567,6 +567,27 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
## 2026-10-18
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Donetick: create selfhosted.yaml from the example [@MickLesk](https://github.com/MickLesk) ([#17992](https://github.com/community-scripts/ProxmoxVE/pull/17992))
- Wiki.js: only back up db.sqlite on SQLite installs [@MickLesk](https://github.com/MickLesk) ([#17993](https://github.com/community-scripts/ProxmoxVE/pull/17993))
- FlareSolverr: pass Chrome an en-US Accept-Language [@MickLesk](https://github.com/MickLesk) ([#17995](https://github.com/community-scripts/ProxmoxVE/pull/17995))
- 2FAuth: install the locked dependencies [@MickLesk](https://github.com/MickLesk) ([#17996](https://github.com/community-scripts/ProxmoxVE/pull/17996))
- Tracearr: drop the pnpm store after the update build [@gioxx](https://github.com/gioxx) ([#17869](https://github.com/community-scripts/ProxmoxVE/pull/17869))
- vaultwarden: build before stopping the service [@mazelado](https://github.com/mazelado) ([#17983](https://github.com/community-scripts/ProxmoxVE/pull/17983))
- #### 💥 Breaking Changes
- fix: geopulse 2.0.0 upgrade support (nginx .mjs, pg18, jwt cleanup) [@CrazyWolf13](https://github.com/CrazyWolf13) ([#17978](https://github.com/community-scripts/ProxmoxVE/pull/17978))
### 💾 Core
- Let get_current_ip reach its IPv6 fallback [@MickLesk](https://github.com/MickLesk) ([core#151](https://github.com/community-scripts/core/pull/151))
- Drop apt autoclean before apt clean [@MickLesk](https://github.com/MickLesk) ([core#152](https://github.com/community-scripts/core/pull/152))
- Silence apt's script warning in $STD [@MickLesk](https://github.com/MickLesk) ([core#150](https://github.com/community-scripts/core/pull/150))
## 2026-10-17
### 🆕 New Scripts
+6
View File
@@ -35,6 +35,12 @@ function update_script() {
msg_error "You must upgrade your LXC to Debian Trixie before updating."
exit
fi
# FlareSolverr hands LANG to Chrome as Accept-Language, which needs a tag like en-US, not a locale (#17987)
if ! grep -q '^Environment="LANG=' /etc/systemd/system/flaresolverr.service; then
sed -i '/^Environment="CAPTCHA_SOLVER=/a Environment="LANG=en-US"' /etc/systemd/system/flaresolverr.service
systemctl daemon-reload
systemctl restart flaresolverr
fi
if check_for_gh_release "flaresolverr" "FlareSolverr/FlareSolverr"; then
msg_info "Stopping service"
systemctl stop flaresolverr
+53 -2
View File
@@ -10,7 +10,7 @@ APP="GeoPulse"
var_tags="${var_tags:-location;tracking;gps}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-8}"
var_disk="${var_disk:-12}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
@@ -32,6 +32,16 @@ function update_script() {
fi
if check_for_gh_release "geopulse-backend" "tess1o/geopulse"; then
msg_info "Backing Up Database"
mkdir -p /var/lib/geopulse/dumps
DB_NAME="$(grep -oP '^GEOPULSE_POSTGRES_DB=\K.*' /etc/geopulse/geopulse.env 2>/dev/null)"
DB_NAME="${DB_NAME:-geopulse}"
if sudo -u postgres pg_dump -Fc "${DB_NAME}" >"/var/lib/geopulse/dumps/${DB_NAME}-pre-update-$(date +%Y%m%d%H%M%S).dump" 2>/dev/null; then
msg_ok "Backed Up Database"
else
msg_warn "Database backup failed, continuing anyway"
fi
msg_info "Stopping Service"
systemctl stop geopulse-backend
msg_ok "Stopped Service"
@@ -51,7 +61,48 @@ function update_script() {
fi
fetch_and_deploy_gh_release "geopulse-backend" "tess1o/geopulse" "singlefile" "latest" "/opt/geopulse/backend" "${BINARY_PATTERN}"
fetch_and_deploy_gh_release "geopulse-frontend" "tess1o/geopulse" "prebuild" "latest" "/var/www/geopulse" "geopulse-frontend-*.tar.gz"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="avatars" fetch_and_deploy_gh_release "geopulse-frontend" "tess1o/geopulse" "prebuild" "latest" "/var/www/geopulse" "geopulse-frontend-*.tar.gz"
if [[ -f /etc/geopulse/geopulse.env ]] && grep -q "GEOPULSE_JWT_" /etc/geopulse/geopulse.env 2>/dev/null; then
msg_info "Removing Unused JWT Keys"
sed -i '/^GEOPULSE_JWT_PRIVATE_KEY_LOCATION=/d;/^GEOPULSE_JWT_PUBLIC_KEY_LOCATION=/d' /etc/geopulse/geopulse.env
rm -f /opt/geopulse/keys/jwt-private-key.pem /opt/geopulse/keys/jwt-public-key.pem
msg_ok "Removed Unused JWT Keys"
fi
if [[ -f /etc/nginx/sites-available/geopulse.conf ]] && ! grep -q '\.mjs\$' /etc/nginx/sites-available/geopulse.conf; then
msg_info "Configuring Nginx for .mjs Assets"
cp /etc/nginx/sites-available/geopulse.conf /etc/nginx/sites-available/geopulse.conf.pre-mjs.bak
ANCHOR_LINE="$(grep -n ' add_header Cache-Control "public, max-age=31536000";' /etc/nginx/sites-available/geopulse.conf.pre-mjs.bak | head -1 | cut -d: -f1)"
if [[ -n "$ANCHOR_LINE" ]]; then
INSERT_LINE=$((ANCHOR_LINE + 1))
{
head -n "$INSERT_LINE" /etc/nginx/sites-available/geopulse.conf.pre-mjs.bak
cat <<'MJSBLOCK'
location ~* ^/(?!osm/).*\.mjs$ {
types {
application/javascript mjs;
}
expires 1y;
add_header Cache-Control "public, max-age=31536000";
}
MJSBLOCK
tail -n "+$((INSERT_LINE + 1))" /etc/nginx/sites-available/geopulse.conf.pre-mjs.bak
} >/etc/nginx/sites-available/geopulse.conf
fi
if [[ -n "$ANCHOR_LINE" ]] && grep -q '\.mjs\$' /etc/nginx/sites-available/geopulse.conf && nginx -t >/dev/null 2>&1; then
systemctl reload nginx
msg_ok "Configured Nginx for .mjs Assets"
else
cp /etc/nginx/sites-available/geopulse.conf.pre-mjs.bak /etc/nginx/sites-available/geopulse.conf
nginx -t >/dev/null 2>&1 && systemctl reload nginx
msg_warn "Could not automatically add the .mjs nginx block (customized config?) - add it manually, see the GeoPulse 2.0.0 upgrade notes"
fi
fi
msg_info "Starting Service"
systemctl start geopulse-backend
+1
View File
@@ -146,6 +146,7 @@ EOF
rm -rf /opt/tracearr.build
cd /opt/tracearr
$STD pnpm install --prod --frozen-lockfile --ignore-scripts --filter @tracearr/server...
rm -rf "$(pnpm store path)"
$STD chown -R tracearr:tracearr /opt/tracearr
msg_ok "Built Tracearr"
+6 -4
View File
@@ -53,10 +53,6 @@ update_deb_based() {
printf '%s\n' "$INSTALLED_VERSION" >"$HOME/.vaultwarden"
fi
if check_for_gh_release "vaultwarden" "dani-garcia/vaultwarden"; then
msg_info "Stopping Service"
systemctl stop vaultwarden
msg_ok "Stopped Service"
fetch_and_deploy_gh_release "vaultwarden" "dani-garcia/vaultwarden" "tarball" "latest" "/tmp/vaultwarden-src"
msg_info "Updating VaultWarden to $VAULT (Patience)"
@@ -64,6 +60,12 @@ update_deb_based() {
VW_VERSION="$VAULT"
export VW_VERSION
CARGO_BUILD_JOBS="$(get_parallel_jobs)" CARGO_PROFILE_RELEASE_LTO=false CARGO_PROFILE_RELEASE_CODEGEN_UNITS=16 $STD cargo build --features "sqlite,mysql,postgresql" --release
msg_ok "Built VaultWarden ${VAULT}"
msg_info "Stopping Service"
systemctl stop vaultwarden
msg_ok "Stopped Service"
if [[ -f /usr/bin/vaultwarden ]]; then
cp target/release/vaultwarden /usr/bin/
else
+9 -12
View File
@@ -33,22 +33,18 @@ function update_script() {
NODE_VERSION="26" NODE_MODULE="yarn,node-gyp" setup_nodejs
if check_for_gh_release "wikijs" "requarks/wiki-v2"; then
#msg_info "Verifying whether ${APP}' new release is v3.x+ and current install uses SQLite."
#SQLITE_INSTALL=$([ -f /opt/wikijs/db.sqlite ] && echo "true" || echo "false")
#if [[ "${SQLITE_INSTALL}" == "true" && "${CHECK_UPDATE_RELEASE}" =~ ^3.* ]]; then
# echo "SQLite is not supported in v3.x+, currently there is no update path availble."
# exit
#fi
#msg_ok "There is an update path available for ${APP}"
# Installs before February 2025 use SQLite, newer ones PostgreSQL
SQLITE_INSTALL=$([[ -f /opt/wikijs/db.sqlite ]] && echo "true" || echo "false")
msg_info "Stopping Service"
systemctl stop wikijs
msg_ok "Stopped Service"
msg_info "Backing up Data"
mkdir /opt/wikijs-backup
#$SQLITE_INSTALL &&
cp /opt/wikijs/db.sqlite /opt/wikijs-backup
mkdir -p /opt/wikijs-backup
if [[ "$SQLITE_INSTALL" == "true" ]]; then
cp /opt/wikijs/db.sqlite /opt/wikijs-backup
fi
cp -R /opt/wikijs/{config.yml,/data} /opt/wikijs-backup
msg_ok "Backed up Data"
@@ -56,8 +52,9 @@ function update_script() {
msg_info "Restoring Data"
cp -R /opt/wikijs-backup/* /opt/wikijs
#$SQLITE_INSTALL &&
$STD npm rebuild sqlite3
if [[ "$SQLITE_INSTALL" == "true" ]]; then
$STD npm rebuild sqlite3
fi
rm -rf /opt/wikijs-backup
msg_ok "Restored Data"
-1
View File
@@ -36,7 +36,6 @@ sed -i -e "s|^APP_URL=.*|APP_URL=http://$LOCAL_IP|" \
-e "s|^DB_USERNAME=$|DB_USERNAME=$MARIADB_DB_USER|" \
-e "s|^DB_PASSWORD=$|DB_PASSWORD=$MARIADB_DB_PASS|" .env
export COMPOSER_ALLOW_SUPERUSER=1
$STD composer update --no-plugins --no-scripts
$STD composer install --no-dev --prefer-dist --no-plugins --no-scripts
$STD php artisan key:generate --force
$STD php artisan migrate:refresh
+1
View File
@@ -21,6 +21,7 @@ fetch_and_deploy_gh_release "donetick" "donetick/donetick" "prebuild" "latest" "
msg_info "Setup Donetick"
cd /opt/donetick
[[ -f config/selfhosted.yaml ]] || cp config/selfhosted.yaml.example config/selfhosted.yaml
TOKEN=$(openssl rand -hex 16)
sed -i -e "s/change_this_to_a_secure_random_string_32_characters_long/${TOKEN}/g" config/selfhosted.yaml
msg_ok "Setup Donetick"
+1
View File
@@ -48,6 +48,7 @@ RestartSec=5
Type=simple
Environment="LOG_LEVEL=info"
Environment="CAPTCHA_SOLVER=none"
Environment="LANG=en-US"
WorkingDirectory=/opt/flaresolverr
ExecStart=/opt/flaresolverr/flaresolverr
TimeoutStopSec=30
+10 -6
View File
@@ -19,17 +19,15 @@ $STD apt install -y \
nginx
msg_ok "Installed Dependencies"
PG_VERSION="17" PG_MODULES="postgis" setup_postgresql
PG_VERSION="18" PG_MODULES="postgis" setup_postgresql
PG_DB_NAME="geopulse" PG_DB_USER="geopulse" PG_DB_EXTENSIONS="postgis,postgis_topology" setup_postgresql_db
msg_info "Generating Security Keys"
mkdir -p /opt/geopulse/{backend,keys}
mkdir -p /etc/geopulse /var/www/geopulse /var/lib/geopulse/dumps
mkdir -p /var/log/geopulse/{backend,nginx}
openssl genpkey -algorithm RSA -out /opt/geopulse/keys/jwt-private-key.pem 2>/dev/null
openssl rsa -pubout -in /opt/geopulse/keys/jwt-private-key.pem -out /opt/geopulse/keys/jwt-public-key.pem 2>/dev/null
openssl rand -base64 32 >/opt/geopulse/keys/ai-encryption-key.txt
chmod 640 /opt/geopulse/keys/jwt-private-key.pem /opt/geopulse/keys/jwt-public-key.pem /opt/geopulse/keys/ai-encryption-key.txt
chmod 640 /opt/geopulse/keys/ai-encryption-key.txt
msg_ok "Generated Security Keys"
if [[ "$(uname -m)" == "aarch64" ]]; then
@@ -62,8 +60,6 @@ GEOPULSE_POSTGRES_PORT=5432
GEOPULSE_POSTGRES_DB=${PG_DB_NAME}
GEOPULSE_POSTGRES_USERNAME=${PG_DB_USER}
GEOPULSE_POSTGRES_PASSWORD=${PG_DB_PASS}
GEOPULSE_JWT_PRIVATE_KEY_LOCATION=file:/opt/geopulse/keys/jwt-private-key.pem
GEOPULSE_JWT_PUBLIC_KEY_LOCATION=file:/opt/geopulse/keys/jwt-public-key.pem
GEOPULSE_AI_ENCRYPTION_KEY_LOCATION=file:/opt/geopulse/keys/ai-encryption-key.txt
QUARKUS_LOG_FILE_ENABLE=true
QUARKUS_LOG_FILE_PATH=/var/log/geopulse/backend/geopulse.log
@@ -128,6 +124,14 @@ server {
add_header Cache-Control "public, max-age=31536000";
}
location ~* ^/(?!osm/).*\.mjs$ {
types {
application/javascript mjs;
}
expires 1y;
add_header Cache-Control "public, max-age=31536000";
}
location ^~ /osm/tiles/ {
resolver 8.8.8.8 valid=300s;
resolver_timeout 10s;