Compare commits

...
Author SHA1 Message Date
community-scripts-pr-app[bot]andgithub-actions[bot] ba1409a920 Update CHANGELOG.md (#17468)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-23 18:50:08 +00:00
community-scripts-pr-app[bot]andgithub-actions[bot] 79b10733ed Update CHANGELOG.md (#17467)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-23 16:24:04 +00:00
maksimtech 31ead526dc fix(signoz): install the histogramQuantile ClickHouse function (#17386) 2026-09-23 18:23:31 +02:00
community-scripts-pr-app[bot]andgithub-actions[bot] 16f9714662 Update CHANGELOG.md (#17465)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-23 16:17:07 +00:00
community-scripts-pr-app[bot]andgithub-actions[bot] 7dc23b42b4 Update CHANGELOG.md (#17464)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-23 15:59:17 +00:00
CanbiZ (MickLesk) 572e9f6512 Give omniroute 4 GB for the npm install (#17461) 2026-09-23 17:58:47 +02:00
community-scripts-pr-app[bot]andgithub-actions[bot] 1f092bcfc3 Update CHANGELOG.md (#17463)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-23 14:52:25 +00:00
community-scripts-pr-app[bot]andgithub-actions[bot] a77102b390 Update CHANGELOG.md (#17459)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-23 14:27:13 +00:00
CanbiZ (MickLesk) 050e6a02b7 Refactor: Scanopy (#16797)
* scanopy: use prebuilt server binary, relax release profile for generate-fixtures

* scanopy: drop unneeded rust build, use committed UI fixtures

* scanopy: restore generate-fixtures build, ui/src/lib/data is gitignored and incomplete

* scanopy: serve the UI from the binary, drop the source build

Upstream confirmed in scanopy/scanopy#698 that scanopy-server-linux-*
has carried the built UI since v0.17.13, fixtures and service logos
included, served on the same port as the API. The release notes never
said so, which is why we kept building it.

That removes the source tarball, the Rust toolchain and
generate-fixtures, Node with npm ci and npm run build, and
SCANOPY_WEB_EXTERNAL_PATH. With the variable set to a directory that no
longer has an index.html, v0.17.14 and earlier refuse to start, so the
update deletes the line rather than leaving it. build-essential,
libssl-dev and pkg-config go too: the release binary is static-pie with
no INTERP segment, so it has no runtime library dependencies.

/opt/scanopy stays, now only for .env and oidc.toml, and the unit's
WorkingDirectory follows it out of the removed backend directory. Since
nothing wipes that directory any more, the config survives an update on
its own, which is the report upstream passed on of an update coming
back without SCANOPY_WEB_EXTERNAL_PATH and the server starting API-only.

The update keeps the running binary until the new one answers
/api/health and puts it back if it does not, so a bad release leaves a
working server instead of a stopped one.

check_for_gh_release now keys on scanopy-server, matching the version
file the binary deploy writes; the Scanopy key belonged to the tarball
that is gone. Existing containers run one extra update, then agree.

* Refactor scanopy-install.sh for server setup

Updated installation script to configure Scanopy server and removed daemon configuration section.

* Update service names from 'scanopy-server' to 'Scanopy'

* Fix case sensitivity in fetch_and_deploy_gh_release

* scanopy: make the rollback restore the whole old setup

The health check put the previous binary back but nothing else, and the
source tree it needs was already gone by then: the update deleted
/opt/scanopy/ui before starting the new server, and removed
SCANOPY_WEB_EXTERNAL_PATH from the env at the same time. A failed
health check therefore left the old binary running without the UI it
serves from disk, so the rollback produced an API-only server.

Back up the env file and the unit alongside the binary, restore all
three when the check fails, and delete the source tree only once the
new server has answered. Nothing the old version needs is removed
before the new one has proven itself.

* scanopy: name the deployed binary what the unit starts

singlefile mode writes the asset to <target>/<app name>:

  local target_file="$app"
  [[ "${USE_ORIGINAL_FILENAME:-false}" == "true" ]] && target_file="$filename"

so with the app renamed to Scanopy the binary lands at /usr/bin/Scanopy
while the unit starts /usr/bin/scanopy-server, and the service never
comes up on a fresh install. Rename it after the deploy, the same way
the daemon block already renames "Scanopy Daemon".

Keeping the app name is what matters here: it is also the version file
(~/.scanopy), and changing it would make every existing container
report an update it does not need.
2026-09-23 16:26:45 +02:00
community-scripts-pr-app[bot]andgithub-actions[bot] 9a8bd0c380 Update CHANGELOG.md (#17458)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-23 14:26:14 +00:00
community-scripts-pr-app[bot]andgithub-actions[bot] 4c03276ef7 Update CHANGELOG.md (#17456)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-23 14:18:04 +00:00
CanbiZ (MickLesk) ab57fd7f94 Run Borg-UI with a single gunicorn worker (#17445) 2026-09-23 16:17:35 +02:00
community-scripts-pr-app[bot]andgithub-actions[bot] e11a07c197 Update CHANGELOG.md (#17455)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-23 14:14:27 +00:00
CanbiZ (MickLesk) 743c0b6ac6 immich: keep geodata linked and the build deps present on update (#17438)
* immich: keep geodata linked and the build deps present on update

The update wipes $APP_DIR before redeploying, which takes the geodata
symlink the install created with it, and never puts it back. The app
then finds no reverse-geocoding data and the web UI does not come up.

The library recompile assumes headers that only reached the install
list later, so a container built before that fails at the first missing
one - LCMS2 in the reported case.

* immich: keep geodata linked and the build deps present on update

The update wipes $APP_DIR before redeploying, which takes the geodata
symlink the install created with it, and never puts it back. The app
then finds no reverse-geocoding data and the web UI does not come up.

The library recompile assumes headers that only reached the install
list later, so a container built before that fails at the first missing
one - LCMS2 in the reported case.
2026-09-23 16:13:54 +02:00
community-scripts-pr-app[bot]andgithub-actions[bot] b050d4bf4d Update CHANGELOG.md (#17453)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-23 07:57:10 +00:00
community-scripts-pr-app[bot]andgithub-actions[bot] 8113393fc1 Update CHANGELOG.md (#17452)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-23 07:26:12 +00:00
community-scripts-pr-app[bot]andgithub-actions[bot] d95f42489d Update CHANGELOG.md (#17450)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-23 07:06:07 +00:00
community-scripts-pr-app[bot]andgithub-actions[bot] a27c4edb98 Update CHANGELOG.md (#17449)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-23 07:00:40 +00:00
community-scripts-pr-app[bot]andgithub-actions[bot] a3ddd29410 Update CHANGELOG.md (#17447)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-22 14:16:53 +00:00
github-actions[bot] 24f0c8379a chore(ct): sync cloudflare-ddns defaults from PocketBase (#17446)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-09-22 16:16:27 +02:00
community-scripts-pr-app[bot]andGitHub Actions 699aa1b4b8 Update .app files (#17441)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-09-22 16:07:59 +02:00
community-scripts-pr-app[bot]andgithub-actions[bot] abdc1fb099 Update CHANGELOG.md (#17443)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-22 14:07:00 +00:00
community-scripts-pr-app[bot]andgithub-actions[bot] 08e6a64bda Update CHANGELOG.md (#17440)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-22 14:06:46 +00:00
CanbiZ (MickLesk) 76b839b04c several scripts: let uv see the project before syncing it | refactor some scripts that use uv (#17436)
* Let uv see the project before syncing it

uv refuses to run when a project pins a required-version it does not
match, in either direction: RomM pins ==0.12.13, which fails against
both the 0.10.3 a container was built with and the 0.12.17 latest
installs.

UV_PROJECT_DIR points setup_uv at the project so it reads that pin. It
is a prefix like PYTHON_VERSION and UV_VERSION, and the call sits
directly under fetch_and_deploy: the project is on disk by then, and
the deploy has closed its message block, which setup_uv needs since it
opens one of its own. That is also the only call needed - nothing
between the old early call and the deploy uses uv or Python, so the two
collapse into one.

Two things found along the way:

UV_PYTHON was set as a command prefix on setup_uv in 14 places. setup_uv
reads PYTHON_VERSION, never UV_PYTHON, and a prefix assignment does not
outlive the call, so those pins did nothing. They now use
PYTHON_VERSION, which installs the interpreter they were asking for.

Five update scripts had no setup_uv at all while their install
counterpart pinned a Python version. They now carry the same pin.

immich is left out: it runs uv through sudo -u inside a retry loop.

* yubal: drop the uv 0.7.19 pin

The pin came in with the script and was never explained. uv 0.7.19 is
from 2025-07-02; yubal's uv.lock has carried revision 3 since at least
2025-12-27, and older uv refuses a newer lockfile revision. The script
runs uv sync --frozen, so there is no fallback.

yubal declares no required-version of its own, so latest is what it
gets - and if it ever pins one, that pin is now honoured.
2026-09-22 16:06:15 +02:00
69 changed files with 210 additions and 144 deletions
+36 -1
View File
@@ -546,6 +546,32 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
</details>
## 2026-09-23
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- fix(signoz): install the histogramQuantile ClickHouse function [@maksimtech](https://github.com/maksimtech) ([#17386](https://github.com/community-scripts/ProxmoxVE/pull/17386))
- omniroute: bump to 4 GB for the npm install [@MickLesk](https://github.com/MickLesk) ([#17461](https://github.com/community-scripts/ProxmoxVE/pull/17461))
- Run Borg-UI with a single gunicorn worker [@MickLesk](https://github.com/MickLesk) ([#17445](https://github.com/community-scripts/ProxmoxVE/pull/17445))
- immich: keep geodata linked and the build deps present on update [@MickLesk](https://github.com/MickLesk) ([#17438](https://github.com/community-scripts/ProxmoxVE/pull/17438))
- #### 🔧 Refactor
- Refactor: Scanopy [@MickLesk](https://github.com/MickLesk) ([#16797](https://github.com/community-scripts/ProxmoxVE/pull/16797))
### 💾 Core
- stop a partial find from aborting the caller under pipefail [@MickLesk](https://github.com/MickLesk) ([core#68](https://github.com/community-scripts/core/pull/68))
- core: give RHEL-family containers an ostype PVE accepts [@MickLesk](https://github.com/MickLesk) ([core#67](https://github.com/community-scripts/core/pull/67))
- core: do not abort on a failed apt update [@MickLesk](https://github.com/MickLesk) ([core#66](https://github.com/community-scripts/core/pull/66))
- VM's: report a finished VM as done, not aborted [@MickLesk](https://github.com/MickLesk) ([core#65](https://github.com/community-scripts/core/pull/65))
- VM-Core: decide console autologin from the image, not USE_CLOUD_INIT [@MickLesk](https://github.com/MickLesk) ([core#63](https://github.com/community-scripts/core/pull/63))
- VM-Core: report failed image steps and restore tty1 autologin without cloud-init [@MickLesk](https://github.com/MickLesk) ([core#62](https://github.com/community-scripts/core/pull/62))
- tools: raise pnpm/yarn fetch timeout and lower network concurrency [@MickLesk](https://github.com/MickLesk) ([core#59](https://github.com/community-scripts/core/pull/59))
- VM-Core: stop discarding cloud-init error messages [@MickLesk](https://github.com/MickLesk) ([core#60](https://github.com/community-scripts/core/pull/60))
## 2026-09-22
### 🚀 Updated Scripts
@@ -556,15 +582,24 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
- fix(alpine-it-tools): write the version file after a successful update [@Houtek](https://github.com/Houtek) ([#17421](https://github.com/community-scripts/ProxmoxVE/pull/17421))
- Umami: Align pnpm with engines.pnpm on update [@ReneNulschDE](https://github.com/ReneNulschDE) ([#17404](https://github.com/community-scripts/ProxmoxVE/pull/17404))
- #### 🔧 Refactor
- several scripts: let uv see the project before syncing it | refactor some scripts that use uv [@MickLesk](https://github.com/MickLesk) ([#17436](https://github.com/community-scripts/ProxmoxVE/pull/17436))
### 💾 Core
- fix(motd): repair legacy 00_lxc-details.sh header and dead color placeholders [@BadFlo](https://github.com/BadFlo) ([core#53](https://github.com/community-scripts/core/pull/53))
- setup_uv: honour a project's required-version pin [@MickLesk](https://github.com/MickLesk) ([core#58](https://github.com/community-scripts/core/pull/58))
- fix(motd): repair legacy 00_lxc-details.sh header and dead color placeholders [@BadFlo](https://github.com/BadFlo) ([core#53](https://github.com/community-scripts/core/pull/53))
- meilisearch: take the raw binary, not the .deb [@MickLesk](https://github.com/MickLesk) ([core#57](https://github.com/community-scripts/core/pull/57))
### 📚 Documentation
- github: Stop generating header filenames with a newline in them [@MickLesk](https://github.com/MickLesk) ([#17435](https://github.com/community-scripts/ProxmoxVE/pull/17435))
### ❔ Uncategorized
- chore(ct): sync cloudflare-ddns defaults with PocketBase [@github-actions[bot]](https://github.com/github-actions[bot]) ([#17446](https://github.com/community-scripts/ProxmoxVE/pull/17446))
## 2026-09-21
### 🆕 New Scripts
+1 -1
View File
@@ -45,7 +45,6 @@ function update_script() {
NODE_VERSION="26" NODE_MODULE=pnpm@12 setup_nodejs
$STD uv cache clean
UV_PYTHON_INSTALL_DIR="/usr/local/bin" PYTHON_VERSION="3.14.7" setup_uv
RUST_PROFILE="minimal" RUST_TOOLCHAIN="stable" setup_rust
setup_yq
@@ -95,6 +94,7 @@ function update_script() {
fi
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "authentik" "goauthentik/authentik" "tarball" "${AUTHENTIK_VERSION}" "/opt/authentik"
UV_PYTHON_INSTALL_DIR="/usr/local/bin" PYTHON_VERSION="3.14.7" UV_PROJECT_DIR="/opt/authentik" setup_uv
GO_VERSION="$(grep -m1 '^go ' /opt/authentik/go.mod | awk '{print $2}')" setup_go
msg_info "Configuring rust"
+1 -2
View File
@@ -31,8 +31,6 @@ function update_script() {
exit
fi
setup_uv
RELEASE=$(get_latest_codeberg_release "gelbphoenix/autocaliweb")
if check_for_codeberg_release "autocaliweb" "gelbphoenix/autocaliweb"; then
msg_info "Stopping Services"
@@ -43,6 +41,7 @@ function update_script() {
export VIRTUAL_ENV="${INSTALL_DIR}/venv"
$STD tar -cf ~/autocaliweb_bkp.tar "$INSTALL_DIR"/{metadata_change_logs,dirs.json,.env,scripts/ingest_watcher.sh,scripts/auto_zipper_wrapper.sh,scripts/metadata_change_detector_wrapper.sh}
fetch_and_deploy_codeberg_release "autocaliweb" "gelbphoenix/autocaliweb" "tarball" "latest" "/opt/autocaliweb"
setup_uv $INSTALL_DIR
msg_info "Updating Autocaliweb"
cd "$INSTALL_DIR"
+1
View File
@@ -39,6 +39,7 @@ function update_script() {
create_backup /opt/baserow/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "baserow" "baserow/baserow" "tarball"
UV_PROJECT_DIR="/opt/baserow/backend" setup_uv
restore_backup
msg_info "Configuring Baserow"
+1
View File
@@ -40,6 +40,7 @@ function update_script() {
create_backup /opt/beaverhabits/.user
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "beaverhabits" "daya0576/beaverhabits" "tarball"
PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/beaverhabits" setup_uv
msg_info "Syncing Dependencies"
cd /opt/beaverhabits
+8
View File
@@ -32,6 +32,14 @@ function update_script() {
exit
fi
if grep -q -- '--workers 2' /etc/systemd/system/borg-ui.service 2>/dev/null; then
msg_info "Reducing Service to a single worker"
sed -i 's/--workers 2/--workers 1/' /etc/systemd/system/borg-ui.service
systemctl daemon-reload
systemctl try-restart borg-ui
msg_ok "Reduced Service to a single worker"
fi
if check_for_gh_release "borg-ui" "karanhudia/borg-ui"; then
msg_info "Stopping Service"
systemctl stop borg-ui
+1
View File
@@ -37,6 +37,7 @@ function update_script() {
msg_ok "Stopped Service"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Byparr" "ThePhaseless/Byparr" "tarball" "latest"
UV_PROJECT_DIR="/opt/Byparr" setup_uv
if ! dpkg -l | grep -q ffmpeg; then
msg_info "Installing dependencies"
+2 -2
View File
@@ -9,8 +9,8 @@ source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_
APP="Cloudflare-DDNS"
var_tags="${var_tags:-network}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-3}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
+1 -1
View File
@@ -32,7 +32,6 @@ function update_script() {
exit
fi
setup_uv
NODE_VERSION="24" setup_nodejs
if [[ -f "/etc/nginx/sites-available/dispatcharr.conf" ]] && ! grep -q "real_forwarded_proto" "/etc/nginx/sites-available/dispatcharr.conf"; then
msg_info "Migrating Nginx Configuration"
@@ -146,6 +145,7 @@ EOF
msg_ok "Backup created: $BACKUP_FILE"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dispatcharr" "Dispatcharr/Dispatcharr" "tarball"
UV_PROJECT_DIR="/opt/dispatcharr" setup_uv
restore_backup
+1
View File
@@ -39,6 +39,7 @@ function update_script() {
create_backup /opt/fireshare/fireshare.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "fireshare" "ShaneIsrael/fireshare" "tarball"
UV_PROJECT_DIR="/opt/fireshare" setup_uv
restore_backup
rm -f /usr/local/bin/fireshare
+1 -1
View File
@@ -38,10 +38,10 @@ function update_script() {
create_backup /opt/flatnotes/.env /opt/flatnotes/data
PYTHON_VERSION="3.13" setup_uv
NODE_VERSION="24" setup_nodejs
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "flatnotes" "dullage/flatnotes" "tarball"
PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/flatnotes" setup_uv
restore_backup
+3
View File
@@ -105,6 +105,7 @@ EOF
libraries=("libjxl" "jpegli" "libheif" "libraw" "imagemagick" "libvips")
cd "$BASE_DIR"
msg_warn "Checking for updates to custom image-processing libraries (recompile time: 2-15min per library)"
ensure_dependencies liblcms2-dev libjpeg62-turbo-dev libspng-dev libexif-dev
$STD git pull
for library in "${libraries[@]}"; do
compile_"$library"
@@ -192,6 +193,8 @@ EOF
export SHARP_FORCE_GLOBAL_LIBVIPS=true
$STD pnpm --dir "$APP_DIR/node_modules/sharp" exec npm run build
ln -sfn "$GEO_DIR" "$APP_DIR/geodata"
# Patch helmet.json: disable upgrade-insecure-requests for HTTP access
if [[ -f "$APP_DIR/helmet.json" ]]; then
jq '.contentSecurityPolicy.directives["upgrade-insecure-requests"] = null' "$APP_DIR/helmet.json" >"$APP_DIR/helmet.json.tmp" && mv "$APP_DIR/helmet.json.tmp" "$APP_DIR/helmet.json"
+1
View File
@@ -38,6 +38,7 @@ function update_script() {
msg_ok "Stopped Services"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "journiv" "journiv/journiv-app" "tarball"
UV_PROJECT_DIR="/opt/journiv" setup_uv
msg_info "Updating Python Environment"
cd /opt/journiv
+1
View File
@@ -42,6 +42,7 @@ function update_script() {
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "kitchenowl" "TomBursch/kitchenowl" "tarball" "latest" "/opt/kitchenowl"
rm -rf /opt/kitchenowl/web
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "kitchenowl-web" "TomBursch/kitchenowl" "prebuild" "latest" "/opt/kitchenowl/web" "kitchenowl_Web.tar.gz"
PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/kitchenowl/backend" setup_uv
restore_backup
sed -i 's/default=True/default=False/' /opt/kitchenowl/backend/wsgi.py
+1
View File
@@ -40,6 +40,7 @@ function update_script() {
create_backup /opt/linkding/data /opt/linkding/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "linkding" "sissbruecker/linkding" "tarball"
UV_PROJECT_DIR="/opt/linkding" setup_uv
restore_backup
ln -sf /usr/lib/$(arch_resolve "x86_64-linux-gnu" "aarch64-linux-gnu")/mod_icu.so /opt/linkding/libicu.so
+1 -1
View File
@@ -32,7 +32,6 @@ function update_script() {
exit
fi
if check_for_gh_release "mealie" "mealie-recipes/mealie"; then
PYTHON_VERSION="3.12" setup_uv
msg_info "Stopping Service"
systemctl stop mealie
@@ -44,6 +43,7 @@ function update_script() {
msg_ok "Backup completed"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "mealie" "mealie-recipes/mealie" "tarball"
PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/mealie" setup_uv
msg_info "Restoring Configuration"
mv -f /opt/mealie.env /opt/mealie/mealie.env
+1 -2
View File
@@ -31,14 +31,13 @@ function update_script() {
exit
fi
setup_uv
if check_for_gh_release "mediamanager" "maxdorninger/MediaManager"; then
msg_info "Stopping Service"
systemctl stop mediamanager
msg_ok "Stopped Service"
fetch_and_deploy_gh_release "MediaManager" "maxdorninger/MediaManager" "tarball" "latest" "/opt/mediamanager"
UV_PROJECT_DIR="/opt/mediamanager" setup_uv
msg_info "Updating MediaManager"
MM_DIR="/opt/mm"
export CONFIG_DIR="${MM_DIR}/config"
+1
View File
@@ -53,6 +53,7 @@ function update_script() {
create_backup /opt/metube/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "metube" "alexta69/metube" "tarball" "latest"
UV_PROJECT_DIR="/opt/metube" setup_uv
restore_backup
+1
View File
@@ -40,6 +40,7 @@ function update_script() {
create_backup /opt/notediscovery/data /opt/notediscovery/config.yaml
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "notediscovery" "gamosoft/NoteDiscovery" "tarball"
UV_PROJECT_DIR="/opt/notediscovery" setup_uv
msg_info "Syncing Dependencies"
cd /opt/notediscovery
+1 -1
View File
@@ -10,7 +10,7 @@ source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_
APP="OmniRoute"
var_tags="${var_tags:-ai;gateway;llm}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
+1 -1
View File
@@ -83,13 +83,13 @@ function update_script() {
[[ -f /opt/paperless/paperless.conf ]] && cp /opt/paperless/paperless.conf "$BACKUP_DIR/"
msg_ok "Backup completed to $BACKUP_DIR"
PYTHON_VERSION="3.13" setup_uv
if ((BRIDGE_UPDATE)); then
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "v2.20.15" "/opt/paperless" "paperless*tar.xz"
else
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "latest" "/opt/paperless" "paperless*tar.xz"
fi
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "jbig2enc" "ie13/jbig2enc" "tarball" "latest" "/opt/jbig2enc"
PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/paperless" setup_uv
. /etc/os-release
if [ "$VERSION_CODENAME" = "bookworm" ]; then
+1
View File
@@ -51,6 +51,7 @@ function update_script() {
/opt/romm/frontend/dist/assets/ruffle
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "romm" "rommapp/romm" "tarball" "latest" "/opt/romm"
PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/romm" setup_uv
echo "__version__ = \"$(cat ~/.romm)\"" >/opt/romm/backend/__version__.py
find /opt/romm/backend/alembic/versions -maxdepth 1 -type f -name '1.*.py' -delete 2>/dev/null || true
+29 -24
View File
@@ -38,35 +38,20 @@ function update_script() {
[[ -f /etc/systemd/system/scanopy-daemon.service ]] && systemctl stop scanopy-daemon
msg_ok "Stopped services"
create_backup /opt/scanopy/.env /opt/scanopy/oidc.toml
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Scanopy" "scanopy/scanopy" "tarball" "latest" "/opt/scanopy"
restore_backup
ensure_dependencies pkg-config libssl-dev
TOOLCHAIN="$(grep "channel" /opt/scanopy/backend/rust-toolchain.toml | awk -F\" '{print $2}')"
RUST_TOOLCHAIN=$TOOLCHAIN setup_rust
cp -f /usr/bin/scanopy-server /usr/bin/scanopy-server.bak 2>/dev/null || true
cp -f /opt/scanopy/.env /opt/scanopy/.env.bak
cp -f /etc/systemd/system/scanopy-server.service /etc/systemd/system/scanopy-server.service.bak
if ! grep -q "PUBLIC_URL" /opt/scanopy/.env; then
sed -i "\|_PATH=|a\\scanopy_PUBLIC_URL=http://${LOCAL_IP}:60072" /opt/scanopy/.env
sed -i "\|_PATH=|a\\SCANOPY_PUBLIC_URL=http://${LOCAL_IP}:60072" /opt/scanopy/.env
fi
sed -i 's|_TARGET=.*$|_URL=http://127.0.0.1:60072|' /opt/scanopy/.env
sed -i '/^SCANOPY_WEB_EXTERNAL_PATH=/d' /opt/scanopy/.env
sed -i 's|^WorkingDirectory=/opt/scanopy/backend$|WorkingDirectory=/opt/scanopy|' /etc/systemd/system/scanopy-server.service
systemctl daemon-reload
msg_info "Building Scanopy Server (patience)"
cd /opt/scanopy/backend
CARGO_BUILD_JOBS="$(get_parallel_jobs)" $STD cargo build --release --bin server --bin generate-fixtures
$STD ./target/release/generate-fixtures --output-dir /opt/scanopy/ui/src/lib/data
mv ./target/release/server /usr/bin/scanopy-server
msg_ok "Built Scanopy Server"
msg_info "Creating frontend UI"
export PUBLIC_SERVER_HOSTNAME=default
export PUBLIC_SERVER_PORT=""
cd /opt/scanopy/ui
$STD npm ci --no-fund --no-audit
$STD npm run build
msg_ok "Created frontend UI"
fetch_and_deploy_gh_release "Scanopy" "scanopy/scanopy" "singlefile" "latest" "/usr/bin" "scanopy-server-linux-$(arch_resolve)"
mv -f /usr/bin/Scanopy /usr/bin/scanopy-server
if [[ -f /etc/systemd/system/scanopy-daemon.service ]]; then
fetch_and_deploy_gh_release "Scanopy Daemon" "scanopy/scanopy" "singlefile" "latest" "/usr/local/bin" "scanopy-daemon-linux-$(arch_resolve)"
@@ -81,6 +66,26 @@ function update_script() {
msg_info "Starting services"
systemctl start scanopy-server
healthy=0
for _ in {1..30}; do
if curl -fsS -o /dev/null http://127.0.0.1:60072/api/health 2>/dev/null; then
healthy=1
break
fi
sleep 2
done
if [[ "$healthy" -ne 1 ]]; then
systemctl stop scanopy-server
[[ -f /usr/bin/scanopy-server.bak ]] && mv -f /usr/bin/scanopy-server.bak /usr/bin/scanopy-server
mv -f /opt/scanopy/.env.bak /opt/scanopy/.env
mv -f /etc/systemd/system/scanopy-server.service.bak /etc/systemd/system/scanopy-server.service
systemctl daemon-reload
systemctl start scanopy-server
msg_error "New server did not answer /api/health, restored the previous version"
exit 1
fi
rm -rf /opt/scanopy/backend /opt/scanopy/ui
rm -f /usr/bin/scanopy-server.bak /opt/scanopy/.env.bak /etc/systemd/system/scanopy-server.service.bak
[[ -f /etc/systemd/system/scanopy-daemon.service ]] && systemctl start scanopy-daemon
msg_ok "Updated successfully!"
fi
+1 -1
View File
@@ -33,7 +33,6 @@ function update_script() {
fi
NODE_VERSION="24" setup_nodejs
PYTHON_VERSION="3.14" setup_uv
if check_for_gh_release "shelfmark" "calibrain/shelfmark"; then
msg_info "Stopping Service(s)"
@@ -68,6 +67,7 @@ function update_script() {
$STD apt remove -y chromium-driver
fi
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "shelfmark" "calibrain/shelfmark" "tarball" "latest" "/opt/shelfmark"
PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/shelfmark" setup_uv
restore_backup
RELEASE_VERSION=$(cat "$HOME/.shelfmark")
+25
View File
@@ -31,6 +31,31 @@ function update_script() {
exit
fi
if [[ ! -f /var/lib/clickhouse/user_scripts/histogramQuantile ]]; then
fetch_and_deploy_gh_release "histogram-quantile" "SigNoz/signoz" "prebuild" "histogram-quantile/v0.0.1" "/opt/histogram-quantile" "histogram-quantile_linux_$(arch_resolve).tar.gz"
msg_info "Adding ClickHouse histogramQuantile Function"
mkdir -p /var/lib/clickhouse/user_scripts
install -m 755 -o clickhouse -g clickhouse /opt/histogram-quantile/histogram-quantile /var/lib/clickhouse/user_scripts/histogramQuantile
cat <<EOF >/etc/clickhouse-server/histogram_quantile_function.yaml
functions:
name: histogramQuantile
type: executable
format: CSV
command: ./histogramQuantile
return_type: Float64
argument:
- name: buckets
type: Array(Float64)
- name: counts
type: Array(Float64)
- name: quantile
type: Float64
EOF
systemctl restart clickhouse-server
msg_ok "Added ClickHouse histogramQuantile Function"
fi
if check_for_gh_release "signoz" "SigNoz/signoz"; then
msg_info "Stopping Services"
systemctl stop signoz
+1 -2
View File
@@ -31,8 +31,6 @@ function update_script() {
exit
fi
PYTHON_VERSION="3.14" setup_uv
if check_for_gh_release "spoolman" "Donkie/Spoolman"; then
msg_info "Stopping Service"
systemctl stop spoolman
@@ -41,6 +39,7 @@ function update_script() {
create_backup /opt/spoolman/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "spoolman" "Donkie/Spoolman" "prebuild" "latest" "/opt/spoolman" "spoolman.zip"
PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/spoolman" setup_uv
restore_backup
+1 -2
View File
@@ -32,8 +32,6 @@ function update_script() {
exit
fi
setup_uv
if check_for_gh_release "wizarr" "wizarrrr/wizarr"; then
msg_info "Stopping Service"
systemctl stop wizarr
@@ -46,6 +44,7 @@ function update_script() {
msg_ok "Backup Created"
fetch_and_deploy_gh_release "wizarr" "wizarrrr/wizarr" "tarball"
UV_PROJECT_DIR="/opt/wizarr" setup_uv
msg_info "Updating Wizarr"
cd /opt/wizarr
+1
View File
@@ -41,6 +41,7 @@ function update_script() {
create_backup /opt/yamtrack/src/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "yamtrack" "FuzzyGrim/Yamtrack" "tarball"
PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/yamtrack" setup_uv
restore_backup
+1
View File
@@ -40,6 +40,7 @@ function update_script() {
msg_ok "Stopped Services"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "yubal" "guillevc/yubal" "tarball" "latest" "/opt/yubal"
PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/yubal" setup_uv
msg_info "Building Frontend"
cd /opt/yubal/web
+1 -1
View File
@@ -22,7 +22,7 @@ $STD apt install -y \
python3-dev
msg_ok "Installed Dependencies"
UV_PYTHON="3.12" setup_uv
PYTHON_VERSION="3.12" setup_uv
PG_VERSION="16" setup_postgresql
PG_DB_NAME="airflow" PG_DB_USER="airflow" setup_postgresql_db
+1 -1
View File
@@ -25,7 +25,7 @@ msg_ok "Installed Dependencies"
PG_VERSION="16" setup_postgresql
PG_DB_NAME="audiomuse" PG_DB_USER="audiomuse" setup_postgresql_db
UV_PYTHON="3.12" setup_uv
PYTHON_VERSION="3.12" setup_uv
setup_hwaccel
fetch_and_deploy_gh_release "audiomuse-ai" "NeptuneHub/AudioMuse-AI" "tarball"
+1 -1
View File
@@ -53,7 +53,6 @@ msg_ok "Installed Dependencies"
NODE_VERSION="26" NODE_MODULE=pnpm@12 setup_nodejs
setup_yq
RUST_PROFILE="minimal" RUST_TOOLCHAIN="stable" setup_rust
UV_PYTHON_INSTALL_DIR="/usr/local/bin" PYTHON_VERSION="3.14.7" setup_uv
PG_VERSION="17" setup_postgresql
PG_DB_NAME="authentik" PG_DB_USER="authentik" PG_DB_GRANT_SUPERUSER="true" setup_postgresql_db
@@ -63,6 +62,7 @@ fetch_and_deploy_gh_release "xmlsec" "lsh123/xmlsec" "tarball" "${XMLSEC_VERSION
fetch_and_deploy_gh_release "authentik" "goauthentik/authentik" "tarball" "${AUTHENTIK_VERSION}" "/opt/authentik"
GO_VERSION="$(grep -m1 '^go ' /opt/authentik/go.mod | awk '{print $2}')" setup_go
fetch_and_deploy_gh_release "geoipupdate" "maxmind/geoipupdate" "binary"
UV_PYTHON_INSTALL_DIR="/usr/local/bin" PYTHON_VERSION="3.14.7" UV_PROJECT_DIR="/opt/authentik" setup_uv
msg_info "Setting up xmlsec"
cd /opt/xmlsec
+1 -2
View File
@@ -54,9 +54,8 @@ $STD /opt/calibre/calibre_postinstall
CALIBRE_VERSION=$(cat ~/.calibre)
msg_ok "Installed Calibre"
setup_uv
fetch_and_deploy_codeberg_release "autocaliweb" "gelbphoenix/autocaliweb" "tarball" "latest" "/opt/autocaliweb"
setup_uv $INSTALL_DIR
msg_info "Configuring Autocaliweb"
INSTALL_DIR="/opt/autocaliweb"
+1 -1
View File
@@ -33,9 +33,9 @@ msg_ok "Installed Dependencies"
PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
PG_DB_NAME="baserow" PG_DB_USER="baserow" setup_postgresql_db
NODE_VERSION="24" setup_nodejs
setup_uv
fetch_and_deploy_gh_release "baserow" "baserow/baserow" "tarball"
UV_PROJECT_DIR="/opt/baserow/backend" setup_uv
msg_info "Installing Backend Dependencies"
cd /opt/baserow/backend
+1 -2
View File
@@ -13,9 +13,8 @@ setting_up_container
network_check
update_os
PYTHON_VERSION="3.14" setup_uv
fetch_and_deploy_gh_release "beaverhabits" "daya0576/beaverhabits" "tarball"
PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/beaverhabits" setup_uv
msg_info "Installing Dependencies"
cd /opt/beaverhabits
+2 -2
View File
@@ -32,7 +32,7 @@ $STD apt install -y \
sshpass
msg_ok "Installed Dependencies"
UV_PYTHON="3.12" setup_uv
PYTHON_VERSION="3.12" setup_uv
NODE_VERSION="22" setup_nodejs
fetch_and_deploy_gh_release "borg-ui" "karanhudia/borg-ui" "tarball"
@@ -111,7 +111,7 @@ Type=simple
User=root
WorkingDirectory=/opt/borg-ui
EnvironmentFile=/opt/borg-ui/.env
ExecStart=/opt/borg-ui/.venv/bin/gunicorn app.main:app --bind 0.0.0.0:8081 --workers 2 --worker-class uvicorn.workers.UvicornWorker --timeout 300
ExecStart=/opt/borg-ui/.venv/bin/gunicorn app.main:app --bind 0.0.0.0:8081 --workers 1 --worker-class uvicorn.workers.UvicornWorker --timeout 300
Restart=on-failure
RestartSec=5
+1 -1
View File
@@ -52,8 +52,8 @@ $STD apt -y install --no-install-recommends \
fonts-tlwg-loma-otf
msg_ok "Installed Dependencies"
setup_uv
fetch_and_deploy_gh_release "Byparr" "ThePhaseless/Byparr" "tarball" "latest"
UV_PROJECT_DIR="/opt/Byparr" setup_uv
msg_info "Configuring Byparr"
cd /opt/Byparr
+1 -1
View File
@@ -34,12 +34,12 @@ $STD apt install -y \
libswscale-dev
msg_ok "Installed Dependencies"
setup_uv
NODE_VERSION="24" setup_nodejs
PG_VERSION="16" setup_postgresql
PG_DB_NAME="dispatcharr_db" PG_DB_USER="dispatcharr_usr" setup_postgresql_db
fetch_and_deploy_gh_release "dispatcharr" "Dispatcharr/Dispatcharr" "tarball"
fetch_and_deploy_gh_release "Comskip" "erikkaashoek/Comskip" "tarball"
UV_PROJECT_DIR="/opt/dispatcharr" setup_uv
msg_info "Compiling Comskip"
cd /opt/Comskip
+1 -1
View File
@@ -36,7 +36,7 @@ $STD apt install -y \
msg_ok "Installed Dependencies"
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
UV_PYTHON="3.14" setup_uv
PYTHON_VERSION="3.14" setup_uv
setup_mariadb
msg_info "Configuring MariaDB for ERPNext"
+1
View File
@@ -44,6 +44,7 @@ NODE_VERSION=24 setup_nodejs
PYTHON_VERSION=3.14 setup_uv
fetch_and_deploy_gh_release "fireshare" "ShaneIsrael/fireshare" "tarball"
UV_PROJECT_DIR="/opt/fireshare" setup_uv
msg_info "Compiling SVT-AV1 (Patience)"
cd /tmp
+1
View File
@@ -14,6 +14,7 @@ network_check
update_os
fetch_and_deploy_gh_release "flatnotes" "dullage/flatnotes" "tarball"
UV_PROJECT_DIR="/opt/flatnotes" setup_uv
PYTHON_VERSION="3.13" setup_uv
NODE_VERSION="24" setup_nodejs
+1 -1
View File
@@ -20,7 +20,7 @@ $STD apt install -y \
caddy
msg_ok "Installed Dependencies"
UV_PYTHON="3.13" setup_uv
PYTHON_VERSION="3.13" setup_uv
NODE_VERSION="20" setup_nodejs
fetch_and_deploy_gh_release "homelable" "Pouzor/homelable" "tarball" "latest" "/opt/homelable"
+1 -1
View File
@@ -30,9 +30,9 @@ msg_ok "Installed Dependencies"
setup_ffmpeg
PG_VERSION="17" setup_postgresql
PG_DB_NAME="journiv" PG_DB_USER="journiv" setup_postgresql_db
UV_PYTHON="3.12" setup_uv
fetch_and_deploy_gh_release "journiv" "journiv/journiv-app" "tarball"
PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/journiv" setup_uv
msg_info "Setting up Python Environment"
cd /opt/journiv
+1 -1
View File
@@ -38,10 +38,10 @@ $STD apt install -y \
libicu-dev
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.14" setup_uv
fetch_and_deploy_gh_release "kitchenowl" "TomBursch/kitchenowl" "tarball" "latest" "/opt/kitchenowl"
rm -rf /opt/kitchenowl/web
fetch_and_deploy_gh_release "kitchenowl-web" "TomBursch/kitchenowl" "prebuild" "latest" "/opt/kitchenowl/web" "kitchenowl_Web.tar.gz"
PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/kitchenowl/backend" setup_uv
msg_info "Setting up KitchenOwl"
cd /opt/kitchenowl/backend
+1 -1
View File
@@ -18,7 +18,7 @@ setup_meilisearch
PG_VERSION="17" PG_MODULES="pgvector" setup_postgresql
PG_DB_NAME="ragapi" PG_DB_USER="ragapi" PG_DB_EXTENSIONS="vector" setup_postgresql_db
NODE_VERSION="24" setup_nodejs
UV_PYTHON="3.12" setup_uv
PYTHON_VERSION="3.12" setup_uv
fetch_and_deploy_gh_tag "librechat" "danny-avila/LibreChat"
fetch_and_deploy_gh_release "rag-api" "danny-avila/rag_api" "tarball"
+1 -1
View File
@@ -26,8 +26,8 @@ $STD apt install -y \
msg_ok "Installed Dependencies"
NODE_VERSION="22" setup_nodejs
setup_uv
fetch_and_deploy_gh_release "linkding" "sissbruecker/linkding" "tarball"
UV_PROJECT_DIR="/opt/linkding" setup_uv
msg_info "Building Frontend"
cd /opt/linkding
+1 -1
View File
@@ -23,7 +23,7 @@ $STD apt install -y \
iproute2
msg_ok "Installed Dependencies"
UV_PYTHON="3.12" setup_uv
PYTHON_VERSION="3.12" setup_uv
msg_info "Setting up Matter Server"
mkdir -p /opt/matter-server/data/credentials
+1 -1
View File
@@ -27,9 +27,9 @@ $STD apt install -y \
iproute2
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.12" setup_uv
PG_VERSION="16" setup_postgresql
fetch_and_deploy_gh_release "mealie" "mealie-recipes/mealie" "tarball"
PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/mealie" setup_uv
PG_DB_NAME="mealie_db" PG_DB_USER="mealie_user" PG_DB_GRANT_SUPERUSER="true" setup_postgresql_db
if [[ -f /opt/mealie/frontend/pnpm-lock.yaml ]]; then
+1 -1
View File
@@ -20,7 +20,6 @@ fi
setup_yq
NODE_VERSION="24" setup_nodejs
setup_uv
PG_VERSION="17" setup_postgresql
msg_info "Setting up PostgreSQL"
@@ -39,6 +38,7 @@ EOF
msg_ok "Set up PostgreSQL"
fetch_and_deploy_gh_release "MediaManager" "maxdorninger/MediaManager" "tarball" "latest" "/opt/mediamanager"
UV_PROJECT_DIR="/opt/mediamanager" setup_uv
msg_info "Configuring MediaManager"
MM_DIR="/opt/mm"
+1 -1
View File
@@ -22,7 +22,6 @@ $STD apt install -y \
ffmpeg
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.13" setup_uv
NODE_VERSION="24" NODE_MODULE="corepack,pnpm" setup_nodejs
msg_info "Installing Deno"
@@ -34,6 +33,7 @@ curl -fsSL https://deno.land/install.sh | $STD sh -s -- -y
msg_ok "Installed Deno"
fetch_and_deploy_gh_release "metube" "alexta69/metube" "tarball" "latest"
PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/metube" setup_uv
msg_info "Installing MeTube"
cd /opt/metube/ui
+1 -2
View File
@@ -13,9 +13,8 @@ setting_up_container
network_check
update_os
setup_uv
fetch_and_deploy_gh_release "notediscovery" "gamosoft/NoteDiscovery" "tarball"
UV_PROJECT_DIR="/opt/notediscovery" setup_uv
msg_info "Installing Dependencies"
cd /opt/notediscovery
+1 -1
View File
@@ -45,8 +45,8 @@ msg_ok "Installed Dependencies"
PG_VERSION="18" setup_postgresql
PG_DB_NAME="paperlessdb" PG_DB_USER="paperless" setup_postgresql_db
PYTHON_VERSION="3.13" setup_uv
fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "latest" "/opt/paperless" "paperless*tar.xz"
PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/paperless" setup_uv
msg_info "Setup Paperless-ngx"
cd /opt/paperless
+1 -1
View File
@@ -20,7 +20,7 @@ $STD apt install -y \
tesseract-ocr
msg_ok "Installed Dependencies"
UV_PYTHON="3.13" setup_uv
PYTHON_VERSION="3.13" setup_uv
msg_info "Setting up pyLoad"
mkdir -p /opt/pyload_data/{userdir,downloads}
+1 -1
View File
@@ -76,7 +76,6 @@ function decodeBase64(r) {
export default { decodeBase64 };
EOF
msg_ok "Installed Angie with mod_zip and njs modules"
PYTHON_VERSION="3.13" setup_uv
NODE_VERSION="24" setup_nodejs
setup_mariadb
MARIADB_DB_NAME="romm" MARIADB_DB_USER="romm" setup_mariadb_db
@@ -161,6 +160,7 @@ else
fi
fetch_and_deploy_gh_release "romm" "rommapp/romm" "tarball"
PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/romm" setup_uv
echo "__version__ = \"$(cat ~/.romm)\"" >/opt/romm/backend/__version__.py
msg_info "Creating environment file"
+8 -65
View File
@@ -13,40 +13,16 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y \
build-essential \
libssl-dev \
pkg-config
msg_ok "Installed Dependencies"
PG_VERSION=17 setup_postgresql
NODE_VERSION="24" setup_nodejs
PG_DB_NAME="scanopy_db" PG_DB_USER="scanopy" PG_DB_GRANT_SUPERUSER="true" setup_postgresql_db
fetch_and_deploy_gh_release "Scanopy" "scanopy/scanopy" "tarball" "latest" "/opt/scanopy"
TOOLCHAIN="$(grep "channel" /opt/scanopy/backend/rust-toolchain.toml | awk -F\" '{print $2}')"
RUST_TOOLCHAIN=$TOOLCHAIN setup_rust
fetch_and_deploy_gh_release "Scanopy" "scanopy/scanopy" "singlefile" "latest" "/usr/bin" "scanopy-server-linux-$(arch_resolve)"
mv -f /usr/bin/Scanopy /usr/bin/scanopy-server
msg_info "Building Scanopy Server (patience)"
cd /opt/scanopy/backend
CARGO_BUILD_JOBS="$(get_parallel_jobs)" $STD cargo build --release --bin server --bin generate-fixtures
$STD ./target/release/generate-fixtures --output-dir /opt/scanopy/ui/src/lib/data
mv ./target/release/server /usr/bin/scanopy-server
msg_ok "Built Scanopy Server"
msg_info "Creating frontend UI"
export PUBLIC_SERVER_HOSTNAME=default
export PUBLIC_SERVER_PORT=""
cd /opt/scanopy/ui
$STD npm ci --no-fund --no-audit
$STD npm run build
msg_ok "Created frontend UI"
msg_info "Configuring server for first-run"
msg_info "Configuring Scanopy"
mkdir -p /opt/scanopy
cat <<EOF >/opt/scanopy/.env
### - SERVER
SCANOPY_DATABASE_URL=postgresql://$PG_DB_USER:$PG_DB_PASS@localhost:5432/$PG_DB_NAME
SCANOPY_WEB_EXTERNAL_PATH="/opt/scanopy/ui/build"
SCANOPY_PUBLIC_URL=http://${LOCAL_IP}:60072
SCANOPY_SERVER_PORT=60072
SCANOPY_LOG_LEVEL=info
@@ -73,7 +49,9 @@ SCANOPY_HEARTBEAT_INTERVAL=30
### - see https://github.com/scanopy/scanopy/blob/main/docs/CONFIGURATION.md for more options
EOF
msg_ok "Configured Scanopy"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/scanopy-server.service
[Unit]
Description=Scanopy Network Discovery Server
@@ -81,7 +59,7 @@ After=network.target postgresql.service
[Service]
Type=simple
WorkingDirectory=/opt/scanopy/backend
WorkingDirectory=/opt/scanopy
EnvironmentFile=/opt/scanopy/.env
ExecStart=/usr/bin/scanopy-server
Restart=always
@@ -92,43 +70,8 @@ StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now scanopy-server
# Creating short script to configure scanopy-daemon
# cat <<EOF >~/configure_daemon.sh
# #!/usr/bin/env bash
#
# echo "Auto-configuring integrated daemon..."
#
# NETWORK_ID="\$(sudo -u postgres psql -1 -t -d "${PG_DB_NAME}" -c 'SELECT id FROM networks;')"
# API_KEY="\$(sudo -u postgres psql -1 -t -d "${PG_DB_NAME}" -c 'SELECT key FROM api_keys;')"
#
# cat <<END >/etc/systemd/system/scanopy-daemon.service
# [Unit]
# Description=Scanopy Network Discovery Daemon
# After=network-online.target
# Wants=network-online.target
#
# [Service]
# Type=simple
# User=root
# ExecStart=/usr/bin/scanopy-daemon --server-url http://127.0.0.1:60072 --network-id \${NETWORK_ID} --daemon-api-key \${API_KEY} --mode push
# Restart=always
# RestartSec=10
# StandardOutput=journal
# StandardError=journal
#
# [Install]
# WantedBy=multi-user.target
# END
#
# systemctl enable -q --now scanopy-daemon
# echo "Scanopy daemon configured and running"
#
# EOF
# chmod +x ~/configure_daemon.sh
msg_ok "Scanopy server running - please create an account, daemon API key and daemon in the Scanopy UI."
msg_ok "Created Service"
motd_ssh
customize
+1 -1
View File
@@ -24,7 +24,7 @@ msg_ok "Installed Dependencies"
PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
PG_DB_NAME="securo" PG_DB_USER="securo" PG_DB_EXTENSIONS="vector" setup_postgresql_db
NODE_VERSION="22" setup_nodejs
UV_PYTHON="3.12" setup_uv
PYTHON_VERSION="3.12" setup_uv
fetch_and_deploy_gh_release "securo" "securo-finance/securo" "tarball"
+1 -1
View File
@@ -121,9 +121,9 @@ else
fi
NODE_VERSION="24" setup_nodejs
PYTHON_VERSION="3.14" setup_uv
fetch_and_deploy_gh_release "shelfmark" "calibrain/shelfmark" "tarball" "latest" "/opt/shelfmark"
PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/shelfmark" setup_uv
RELEASE_VERSION=$(cat "$HOME/.shelfmark")
msg_info "Building Shelfmark frontend"
+22
View File
@@ -36,6 +36,28 @@ export DEBIAN_FRONTEND=noninteractive
$STD apt install -y clickhouse-server clickhouse-client
msg_ok "Setup ClickHouse"
fetch_and_deploy_gh_release "histogram-quantile" "SigNoz/signoz" "prebuild" "histogram-quantile/v0.0.1" "/opt/histogram-quantile" "histogram-quantile_linux_$(arch_resolve).tar.gz"
msg_info "Setting up ClickHouse histogramQuantile Function"
mkdir -p /var/lib/clickhouse/user_scripts
install -m 755 -o clickhouse -g clickhouse /opt/histogram-quantile/histogram-quantile /var/lib/clickhouse/user_scripts/histogramQuantile
cat <<EOF >/etc/clickhouse-server/histogram_quantile_function.yaml
functions:
name: histogramQuantile
type: executable
format: CSV
command: ./histogramQuantile
return_type: Float64
argument:
- name: buckets
type: Array(Float64)
- name: counts
type: Array(Float64)
- name: quantile
type: Float64
EOF
msg_ok "Setup ClickHouse histogramQuantile Function"
msg_info "Setting up Zookeeper"
ZOOURL=$(curl -fsSL https://dlcdn.apache.org/zookeeper/current/ | grep -o 'apache-zookeeper-[0-9.]\+-bin\.tar\.gz' | head -n1)
curl -fsSL "https://dlcdn.apache.org/zookeeper/current/$ZOOURL" -o ~/zookeeper.tar.gz
+1 -1
View File
@@ -22,7 +22,7 @@ $STD apt install -y \
ffmpeg
msg_ok "Installed Dependencies"
UV_PYTHON="3.11" setup_uv
PYTHON_VERSION="3.11" setup_uv
NODE_VERSION="24" setup_nodejs
fetch_and_deploy_gh_release "soulsync" "Nezreka/SoulSync" "tarball"
+1
View File
@@ -22,6 +22,7 @@ $STD apt install -y \
msg_ok "Installed Dependencies"
fetch_and_deploy_gh_release "spoolman" "Donkie/Spoolman" "prebuild" "latest" "/opt/spoolman" "spoolman.zip"
UV_PROJECT_DIR="/opt/spoolman" setup_uv
PYTHON_VERSION="3.14" setup_uv
msg_info "Setting up Spoolman"
+1 -1
View File
@@ -17,7 +17,7 @@ msg_info "Installing Dependencies"
$STD apt install -y build-essential
msg_ok "Installed Dependencies"
UV_PYTHON="3.12" setup_uv
PYTHON_VERSION="3.12" setup_uv
NODE_VERSION="22" setup_nodejs
fetch_and_deploy_gh_release "suggestarr" "giuseppe99barchetta/SuggestArr" "tarball"
+1 -1
View File
@@ -13,7 +13,7 @@ setting_up_container
network_check
update_os
UV_PYTHON="3.13" setup_uv
PYTHON_VERSION="3.13" setup_uv
NODE_VERSION="25" setup_nodejs
setup_ffmpeg
setup_gs
+1 -1
View File
@@ -34,7 +34,7 @@ $STD apt install -y \
pkg-config
msg_ok "Installed Dependencies"
UV_PYTHON="3.13" setup_uv
PYTHON_VERSION="3.13" setup_uv
NODE_VERSION="24" setup_nodejs
fetch_and_deploy_gh_release "deno" "denoland/deno" "prebuild" "latest" "/usr/local/bin" "deno-$(arch_resolve "x86_64" "aarch64")-unknown-linux-gnu.zip"
+1 -1
View File
@@ -17,10 +17,10 @@ msg_info "Installing Dependencies"
$STD apt install -y sqlite3
msg_ok "Installed Dependencies"
setup_uv
NODE_VERSION="22" setup_nodejs
fetch_and_deploy_gh_release "wizarr" "wizarrrr/wizarr" "tarball"
UV_PROJECT_DIR="/opt/wizarr" setup_uv
msg_info "Configure Wizarr"
cd /opt/wizarr
+1 -1
View File
@@ -21,9 +21,9 @@ msg_ok "Installed Dependencies"
PG_VERSION="16" setup_postgresql
PG_DB_NAME="yamtrack" PG_DB_USER="yamtrack" setup_postgresql_db
PYTHON_VERSION="3.12" setup_uv
fetch_and_deploy_gh_release "yamtrack" "FuzzyGrim/Yamtrack" "tarball"
PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/yamtrack" setup_uv
msg_info "Installing Python Dependencies"
cd /opt/yamtrack
+1 -2
View File
@@ -30,8 +30,6 @@ ln -sf /opt/bun/bin/bun /usr/local/bin/bun
ln -sf /opt/bun/bin/bunx /usr/local/bin/bunx
msg_ok "Installed Bun"
UV_VERSION="0.7.19" PYTHON_VERSION="3.12" setup_uv
msg_info "Installing Deno"
$STD sh -c "curl -fsSL https://deno.land/install.sh | DENO_INSTALL=/usr/local sh -s -- -y"
msg_ok "Installed Deno"
@@ -43,6 +41,7 @@ mkdir -p /opt/yubal \
msg_ok "Created directories"
fetch_and_deploy_gh_release "yubal" "guillevc/yubal" "tarball" "latest" "/opt/yubal"
PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/yubal" setup_uv
msg_info "Building Frontend"
cd /opt/yubal/web
+6
View File
@@ -0,0 +1,6 @@
___ __ __ _
/ | / /___ ___ ____ _/ / (_)___ __ ___ __
/ /| | / / __ `__ \/ __ `/ / / / __ \/ / / / |/_/
/ ___ |/ / / / / / / /_/ / /___/ / / / / /_/ /> <
/_/ |_/_/_/ /_/ /_/\__,_/_____/_/_/ /_/\__,_/_/|_|
+6
View File
@@ -0,0 +1,6 @@
____ __ _
/ __ \___ / /_ (_)___ _____
/ / / / _ \/ __ \/ / __ `/ __ \
/ /_/ / __/ /_/ / / /_/ / / / /
/_____/\___/_.___/_/\__,_/_/ /_/
+6
View File
@@ -0,0 +1,6 @@
__ ____ __
/ / / / /_ __ ______ / /___ __
/ / / / __ \/ / / / __ \/ __/ / / /
/ /_/ / /_/ / /_/ / / / / /_/ /_/ /
\____/_.___/\__,_/_/ /_/\__/\__,_/