Compare commits

...

43 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
9dc31f48ef Update CHANGELOG.md (#8530)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-21 00:12:57 +00:00
community-scripts-pr-app[bot]
49c8e29a56 Update versions.json (#8529)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-21 02:12:28 +02:00
community-scripts-pr-app[bot]
0f1abd953f Update CHANGELOG.md (#8524)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-20 19:02:06 +00:00
Tobias
56c5067853 palmr: update node to v24 (#8521) 2025-10-20 21:01:43 +02:00
community-scripts-pr-app[bot]
ee8e7f5bf0 Update CHANGELOG.md (#8523)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-20 19:01:14 +00:00
Tobias
b2b892c430 jellyfin: fix: version conflict (#8520) 2025-10-20 21:00:48 +02:00
CanbiZ
ef4fab1a2c nextcloudpi: to deb12 2025-10-20 09:32:39 -07:00
CanbiZ
dc358da26f nextcloudpi: to deb12 2025-10-20 09:32:17 -07:00
community-scripts-pr-app[bot]
345708aae6 Update CHANGELOG.md (#8512)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-20 16:02:14 +00:00
CanbiZ
bcdbbc4678 Enhance error message for container creation failure (#8511) 2025-10-20 18:01:51 +02:00
community-scripts-pr-app[bot]
af0bd86db4 Update CHANGELOG.md (#8510)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-20 14:21:58 +00:00
Tobias
c188984601 jellyfin: add: intel dependencies (#8508) 2025-10-20 16:21:31 +02:00
community-scripts-pr-app[bot]
489339ce4e Update CHANGELOG.md (#8509)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-20 14:19:24 +00:00
CanbiZ
523d2b66bd Paperless-AI: Increase CPU and RAM (#8507)
* Paperless-AI: Increase CPU and RAM

* Paperless-AI: Increase CPU and RAM
2025-10-20 16:19:01 +02:00
community-scripts-pr-app[bot]
9a40d53d06 Update versions.json (#8506)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-20 14:07:12 +02:00
CanbiZ
a257a77f63 Remove GoMFT scripts and related files (#8499) 2025-10-20 12:58:33 +02:00
CanbiZ
25251add27 qf: remove unoconv 2025-10-20 12:27:06 +02:00
community-scripts-pr-app[bot]
ea1021095d Update CHANGELOG.md (#8498)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-20 07:36:03 +00:00
CanbiZ
932de62b38 Filebrowser-Quantum: change initial config to newer default (#8497) 2025-10-20 09:35:38 +02:00
community-scripts-pr-app[bot]
8fd8bb407e Update CHANGELOG.md (#8495)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-20 06:28:44 +00:00
CanbiZ
8ece0e3676 Jellyfin: ensure libjemalloc is used / increase hdd space (#8494)
* Jellyfin: ensure libjemalloc used

* Enhance Jellyfin update script with libjemalloc checks

Added checks for libjemalloc2 installation and symlink creation before updating Jellyfin.

* Change apt-get to apt for installing libjemalloc2

* Increase default disk size from 8GB to 16GB

* Increase HDD size for Jellyfin configuration

Updated HDD size from 8GB to 16GB in jellyfin.json.
2025-10-20 08:28:22 +02:00
CanbiZ
b34a449d9f Refactor Yarn installation into setup_nodejs
Removed Yarn installation check and integrated it into the setup_nodejs function.
2025-10-20 07:51:33 +02:00
community-scripts-pr-app[bot]
60be24660d Update CHANGELOG.md (#8491)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-20 00:15:17 +00:00
community-scripts-pr-app[bot]
a2be293397 Update versions.json (#8490)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-20 02:14:51 +02:00
community-scripts-pr-app[bot]
e44e8a30d1 Update CHANGELOG.md (#8486)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-19 20:06:12 +00:00
community-scripts-pr-app[bot]
3cd8d0d08b Update CHANGELOG.md (#8485)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-19 20:05:54 +00:00
Chris
2d95a73923 rwMarkable: Increase RAM (#8482) 2025-10-19 22:05:52 +02:00
Tobias
3743af8c78 changedetection: fix: update (#8480) 2025-10-19 22:05:27 +02:00
community-scripts-pr-app[bot]
f91daa6b72 Update versions.json (#8474)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-19 14:04:54 +02:00
community-scripts-pr-app[bot]
4685612685 Update CHANGELOG.md (#8468)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-19 00:15:17 +00:00
community-scripts-pr-app[bot]
f4106db935 Update versions.json (#8467)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-19 02:14:50 +02:00
community-scripts-pr-app[bot]
4a4dbfa15e Update versions.json (#8460)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-18 14:06:00 +02:00
community-scripts-pr-app[bot]
475ccd7a33 Update CHANGELOG.md (#8459)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-18 11:33:21 +00:00
CanbiZ
b36b4258cc Refactor: Nginx Proxy Manager (#8453) 2025-10-18 13:33:00 +02:00
community-scripts-pr-app[bot]
8ab6e2d469 Update CHANGELOG.md (#8458)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-18 10:58:32 +00:00
community-scripts-pr-app[bot]
22e71e5a05 Update CHANGELOG.md (#8457)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-18 10:58:25 +00:00
Slaviša Arežina
edb105fad9 Dont copy init.d service file (#8451) 2025-10-18 12:58:12 +02:00
community-scripts-pr-app[bot]
6584d658e1 Update CHANGELOG.md (#8456)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-18 10:58:02 +00:00
community-scripts-pr-app[bot]
6877f53853 Update CHANGELOG.md (#8455)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-18 10:57:41 +00:00
community-scripts-pr-app[bot]
83ad8433bd Update date in json (#8454)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-10-18 10:57:37 +00:00
push-app-to-main[bot]
da552dcbd8 'Add new script' (#8452)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2025-10-18 12:57:20 +02:00
CanbiZ
77aba17771 fix libheif trixie 2025-10-18 08:24:19 +02:00
CanbiZ
3df8fadbba fix libheif trixie 2025-10-18 08:23:52 +02:00
31 changed files with 737 additions and 620 deletions

View File

@@ -10,8 +10,57 @@
> [!CAUTION] > [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes. Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
## 2025-10-21
## 2025-10-20
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- jellyfin: fix: version conflict [@CrazyWolf13](https://github.com/CrazyWolf13) ([#8520](https://github.com/community-scripts/ProxmoxVE/pull/8520))
- Paperless-AI: Increase CPU and RAM [@MickLesk](https://github.com/MickLesk) ([#8507](https://github.com/community-scripts/ProxmoxVE/pull/8507))
- #### ✨ New Features
- Enhance error message for container creation failure [@MickLesk](https://github.com/MickLesk) ([#8511](https://github.com/community-scripts/ProxmoxVE/pull/8511))
- Filebrowser-Quantum: change initial config to newer default [@MickLesk](https://github.com/MickLesk) ([#8497](https://github.com/community-scripts/ProxmoxVE/pull/8497))
- #### 💥 Breaking Changes
- Remove: GoMFT [@MickLesk](https://github.com/MickLesk) ([#8499](https://github.com/community-scripts/ProxmoxVE/pull/8499))
- #### 🔧 Refactor
- palmr: update node to v24 [@CrazyWolf13](https://github.com/CrazyWolf13) ([#8521](https://github.com/community-scripts/ProxmoxVE/pull/8521))
- jellyfin: add: intel dependencies [@CrazyWolf13](https://github.com/CrazyWolf13) ([#8508](https://github.com/community-scripts/ProxmoxVE/pull/8508))
- Jellyfin: ensure libjemalloc is used / increase hdd space [@MickLesk](https://github.com/MickLesk) ([#8494](https://github.com/community-scripts/ProxmoxVE/pull/8494))
## 2025-10-19
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- rwMarkable: Increase RAM [@vhsdream](https://github.com/vhsdream) ([#8482](https://github.com/community-scripts/ProxmoxVE/pull/8482))
- changedetection: fix: update [@CrazyWolf13](https://github.com/CrazyWolf13) ([#8480](https://github.com/community-scripts/ProxmoxVE/pull/8480))
## 2025-10-18 ## 2025-10-18
### 🆕 New Scripts
- Open-Archiver ([#8452](https://github.com/community-scripts/ProxmoxVE/pull/8452))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Cronicle: Dont copy init.d service file [@tremor021](https://github.com/tremor021) ([#8451](https://github.com/community-scripts/ProxmoxVE/pull/8451))
- #### 🔧 Refactor
- Refactor: Nginx Proxy Manager [@MickLesk](https://github.com/MickLesk) ([#8453](https://github.com/community-scripts/ProxmoxVE/pull/8453))
## 2025-10-17 ## 2025-10-17
### 🚀 Updated Scripts ### 🚀 Updated Scripts

View File

@@ -57,7 +57,7 @@ function update_script() {
$STD /opt/browserless/node_modules/playwright-core/cli.js install --force chrome $STD /opt/browserless/node_modules/playwright-core/cli.js install --force chrome
$STD /opt/browserless/node_modules/playwright-core/cli.js install --force msedge $STD /opt/browserless/node_modules/playwright-core/cli.js install --force msedge
$STD /opt/browserless/node_modules/playwright-core/cli.js install chromium firefox webkit $STD /opt/browserless/node_modules/playwright-core/cli.js install chromium firefox webkit
$STD npm install --prefix /opt/browserless esbuild typescript ts-node @types/node $STD npm install --prefix /opt/browserless esbuild typescript ts-node @types/node --save-dev
$STD npm run build --prefix /opt/browserless $STD npm run build --prefix /opt/browserless
$STD npm run build:function --prefix /opt/browserless $STD npm run build:function --prefix /opt/browserless
$STD npm prune production --prefix /opt/browserless $STD npm prune production --prefix /opt/browserless

View File

@@ -61,9 +61,6 @@ function update_script() {
$STD node bin/build.js dist $STD node bin/build.js dist
sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json
$STD /opt/cronicle/bin/control.sh start $STD /opt/cronicle/bin/control.sh start
$STD cp /opt/cronicle/bin/cronicled.init /etc/init.d/cronicled
chmod 775 /etc/init.d/cronicled
$STD update-rc.d cronicled defaults
msg_ok "Installed Cronicle Worker" msg_ok "Installed Cronicle Worker"
echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n" echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n"

View File

@@ -1,53 +0,0 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/StarFleetCPTN/GoMFT
APP="GoMFT"
var_tags="${var_tags:-backup}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
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/gomft" ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "gomft" "StarFleetCPTN/GoMFT"; then
msg_info "Stopping $APP"
systemctl stop gomft
msg_ok "Stopped $APP"
fetch_and_deploy_gh_release "gomft" "StarFleetCPTN/GoMFT" "singlefile" "latest" "/opt/gomft" "gomft*linux-amd64"
msg_info "Starting $APP"
systemctl start gomft
msg_ok "Started $APP"
msg_ok "Update Successful"
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 "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"

View File

@@ -1,6 +0,0 @@
______ __ _______________
/ ____/___ / |/ / ____/_ __/
/ / __/ __ \/ /|_/ / /_ / /
/ /_/ / /_/ / / / / __/ / /
\____/\____/_/ /_/_/ /_/

6
ct/headers/open-archiver Normal file
View File

@@ -0,0 +1,6 @@
____ ___ __ _
/ __ \____ ___ ____ / | __________/ /_ (_) _____ _____
/ / / / __ \/ _ \/ __ \______/ /| | / ___/ ___/ __ \/ / | / / _ \/ ___/
/ /_/ / /_/ / __/ / / /_____/ ___ |/ / / /__/ / / / /| |/ / __/ /
\____/ .___/\___/_/ /_/ /_/ |_/_/ \___/_/ /_/_/ |___/\___/_/
/_/

View File

@@ -9,7 +9,7 @@ APP="Jellyfin"
var_tags="${var_tags:-media}" var_tags="${var_tags:-media}"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}" var_disk="${var_disk:-16}"
var_os="${var_os:-ubuntu}" var_os="${var_os:-ubuntu}"
var_version="${var_version:-24.04}" var_version="${var_version:-24.04}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
@@ -27,11 +27,28 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
msg_info "Updating ${APP} LXC"
$STD apt-get update if ! grep -qEi 'ubuntu' /etc/os-release; then
$STD apt-get -y upgrade msg_info "Updating Intel Dependencies"
$STD apt-get -y --with-new-pkgs upgrade jellyfin jellyfin-server fetch_and_deploy_gh_release "intel-igc-core-2" "intel/intel-graphics-compiler" "binary" "latest" "" "intel-igc-core-2_*_amd64.deb"
msg_ok "Updated ${APP} LXC" fetch_and_deploy_gh_release "intel-igc-opencl-2" "intel/intel-graphics-compiler" "binary" "latest" "" "intel-igc-opencl-2_*_amd64.deb"
fetch_and_deploy_gh_release "intel-libgdgmm12" "intel/compute-runtime" "binary" "latest" "" "libigdgmm12_*_amd64.deb"
fetch_and_deploy_gh_release "intel-opencl-icd" "intel/compute-runtime" "binary" "latest" "" "intel-opencl-icd_*_amd64.deb"
msg_ok "Updated Intel Dependencies"
fi
msg_info "Updating Jellyfin"
if ! dpkg -s libjemalloc2 >/dev/null 2>&1; then
$STD apt install -y libjemalloc2
fi
if [[ ! -f /usr/lib/libjemalloc.so ]]; then
ln -sf /usr/lib/x86_64-linux-gnu/libjemalloc.so.2 /usr/lib/libjemalloc.so
fi
$STD apt update
$STD apt -y upgrade
$STD apt -y --with-new-pkgs upgrade jellyfin jellyfin-server
msg_ok "Updated Jellyfin"
msg_ok "Update Successfully!"
exit exit
} }

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}" var_disk="${var_disk:-8}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -28,12 +28,8 @@ function update_script() {
exit exit
fi fi
if ! command -v pnpm &>/dev/null; then NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
msg_info "Installing pnpm" export NODE_OPTIONS="--openssl-legacy-provider"
#export NODE_OPTIONS=--openssl-legacy-provider
$STD npm install -g pnpm@8.15
msg_ok "Installed pnpm"
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest | RELEASE=$(curl -fsSL https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest |
grep "tag_name" | grep "tag_name" |
@@ -49,9 +45,10 @@ function update_script() {
sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" backend/package.json sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" backend/package.json
sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" frontend/package.json sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" frontend/package.json
cd ./frontend || exit cd ./frontend || exit
$STD pnpm install # Replace node-sass with sass in package.json before installation
$STD pnpm upgrade sed -i 's/"node-sass".*$/"sass": "^1.92.1",/g' package.json
$STD pnpm run build $STD yarn install --network-timeout 600000
$STD yarn build
) )
msg_ok "Built Frontend" msg_ok "Built Frontend"
@@ -71,7 +68,7 @@ function update_script() {
msg_info "Setting up Environment" msg_info "Setting up Environment"
ln -sf /usr/bin/python3 /usr/bin/python ln -sf /usr/bin/python3 /usr/bin/python
ln -sf /usr/bin/certbot /opt/certbot/bin/certbot ln -sf /opt/certbot/bin/certbot /usr/local/bin/certbot
ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx
ln -sf /usr/local/openresty/nginx/ /etc/nginx ln -sf /usr/local/openresty/nginx/ /etc/nginx
sed -i 's+^daemon+#daemon+g' docker/rootfs/etc/nginx/nginx.conf sed -i 's+^daemon+#daemon+g' docker/rootfs/etc/nginx/nginx.conf
@@ -113,7 +110,12 @@ function update_script() {
cp -r frontend/app-images/* /app/frontend/images cp -r frontend/app-images/* /app/frontend/images
cp -r backend/* /app cp -r backend/* /app
cp -r global/* /app/global cp -r global/* /app/global
$STD python3 -m pip install --no-cache-dir --break-system-packages certbot-dns-cloudflare
# Update Certbot and plugins in virtual environment
if [ -d /opt/certbot ]; then
$STD /opt/certbot/bin/pip install --upgrade pip setuptools wheel
$STD /opt/certbot/bin/pip install --upgrade certbot certbot-dns-cloudflare
fi
msg_ok "Setup Environment" msg_ok "Setup Environment"
msg_info "Initializing Backend" msg_info "Initializing Backend"
@@ -134,7 +136,8 @@ function update_script() {
EOF EOF
fi fi
cd /app || exit cd /app || exit
$STD pnpm install export NODE_OPTIONS="--openssl-legacy-provider"
$STD yarn install --network-timeout 600000
msg_ok "Initialized Backend" msg_ok "Initialized Backend"
msg_info "Starting Services" msg_info "Starting Services"

61
ct/open-archiver.sh Normal file
View File

@@ -0,0 +1,61 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://openarchiver.com/
APP="Open-Archiver"
var_tags="${var_tags:-os}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-3072}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
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/openarchiver ]]; then
msg_error "No Open Archiver Installation Found!"
exit
fi
if check_for_gh_release "openarchiver" "LogicLabs-OU/OpenArchiver"; then
msg_info "Stopping Services"
systemctl stop openarchiver
msg_ok "Stopped Services"
cp /opt/openarchiver/.env /opt/openarchiver.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "openarchiver" "LogicLabs-OU/OpenArchiver" "tarball" "latest" "/opt/openarchiver"
mv /opt/openarchiver.env /opt/openarchiver/.env
msg_info "Updating Open Archiver"
$STD pnpm install --shamefully-hoist --frozen-lockfile --prod=false
$STD pnpm build
$STD pnpm db:migrate
msg_ok "Updated Open Archiver"
msg_info "Starting Services"
systemctl start openarchiver
msg_ok "Started Services"
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 "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -37,7 +37,7 @@ function update_script() {
fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "latest" "/opt/palmr" fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "latest" "/opt/palmr"
PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)" PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)"
NODE_VERSION="20" NODE_MODULE="$PNPM" setup_nodejs NODE_VERSION="24" NODE_MODULE="$PNPM" setup_nodejs
msg_info "Updating ${APP}" msg_info "Updating ${APP}"
cd /opt/palmr/apps/server cd /opt/palmr/apps/server

View File

@@ -7,8 +7,8 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
APP="Paperless-AI" APP="Paperless-AI"
var_tags="${var_tags:-ai;document}" var_tags="${var_tags:-ai;document}"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-4096}"
var_disk="${var_disk:-20}" var_disk="${var_disk:-20}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-13}"

View File

@@ -34,7 +34,7 @@ function update_script() {
fetch_and_deploy_gh_release "photoprism" "photoprism/photoprism" "prebuild" "latest" "/opt/photoprism" "*linux-amd64.tar.gz" fetch_and_deploy_gh_release "photoprism" "photoprism/photoprism" "prebuild" "latest" "/opt/photoprism" "*linux-amd64.tar.gz"
LIBHEIF_URL=$(curl -fsSL "https://dl.photoprism.app/dist/libheif/" | grep -oP "libheif-$(lsb_release -cs)-amd64-v[0-9\.]+\.tar\.gz" | sort -V | tail -n 1) LIBHEIF_URL=$(curl -fsSL "https://dl.photoprism.app/dist/libheif/" | grep -oP "libheif-bookworm-amd64-v[0-9\.]+\.tar\.gz" | sort -V | tail -n 1)
if [[ "${LIBHEIF_URL}" != "$(cat ~/.photoprism_libheif 2>/dev/null)" ]] || [[ ! -f ~/.photoprism_libheif ]]; then if [[ "${LIBHEIF_URL}" != "$(cat ~/.photoprism_libheif 2>/dev/null)" ]] || [[ ! -f ~/.photoprism_libheif ]]; then
msg_info "Updating PhotoPrism LibHeif" msg_info "Updating PhotoPrism LibHeif"
$STD apt install -y libvips42 $STD apt install -y libvips42

View File

@@ -8,7 +8,7 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
APP="rwMarkable" APP="rwMarkable"
var_tags="${var_tags:-tasks;notes}" var_tags="${var_tags:-tasks;notes}"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-3072}"
var_disk="${var_disk:-6}" var_disk="${var_disk:-6}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-13}"

View File

@@ -1,40 +0,0 @@
{
"name": "GoMFT",
"slug": "gomft",
"categories": [
7
],
"date_created": "2025-03-18",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8080,
"documentation": "https://github.com/StarFleetCPTN/GoMFT#configuration",
"website": "https://github.com/StarFleetCPTN/GoMFT",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/gomft.webp",
"config_path": "/opt/gomft/.env",
"description": "GoMFT is a web-based managed file transfer application built with Go, leveraging rclone for robust file transfer capabilities. It provides a user-friendly interface for configuring, scheduling, and monitoring file transfers across various storage providers.",
"install_methods": [
{
"type": "default",
"script": "ct/gomft.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 4,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": "admin@example.com",
"password": "admin"
},
"notes": [
{
"text": "For additional configuration options check the documentation.",
"type": "info"
}
]
}

View File

@@ -21,7 +21,7 @@
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 8, "hdd": 16,
"os": "ubuntu", "os": "ubuntu",
"version": "24.04" "version": "24.04"
} }

View File

@@ -23,7 +23,7 @@
"ram": 2048, "ram": 2048,
"hdd": 8, "hdd": 8,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
}, },
{ {

View File

@@ -0,0 +1,40 @@
{
"name": "Open-Archiver",
"slug": "open-archiver",
"categories": [
7
],
"date_created": "2025-10-18",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": "https://docs.openarchiver.com/",
"config_path": "/opt/openarchiver/.env",
"website": "https://openarchiver.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/OpenArchiver.webp",
"description": "Open Archiver is a secure, self-hosted email archiving solution, and it's completely open source. Get an email archiver that enables full-text search across email and attachments. Create a permanent, searchable, and compliant mail archive from Google Workspace, Microsoft 35, and any IMAP server.",
"install_methods": [
{
"type": "default",
"script": "ct/open-archiver.sh",
"resources": {
"cpu": 2,
"ram": 3072,
"hdd": 8,
"os": "debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Data directory is: `/opt/openarchiver-data`. If you have a lot of email, you might consider mounting external storage to this directory.",
"type": "info"
}
]
}

View File

@@ -19,8 +19,8 @@
"type": "default", "type": "default",
"script": "ct/paperless-ai.sh", "script": "ct/paperless-ai.sh",
"resources": { "resources": {
"cpu": 2, "cpu": 4,
"ram": 2048, "ram": 4096,
"hdd": 20, "hdd": 20,
"os": "debian", "os": "debian",
"version": "13" "version": "13"

View File

@@ -20,7 +20,7 @@
"script": "ct/rwmarkable.sh", "script": "ct/rwmarkable.sh",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 3072,
"hdd": 6, "hdd": 6,
"os": "debian", "os": "debian",
"version": "13" "version": "13"

View File

@@ -1,4 +1,274 @@
[ [
{
"name": "goauthentik/authentik",
"version": "version/2025.10.0-rc1",
"date": "2025-10-20T23:43:29Z"
},
{
"name": "henrygd/beszel",
"version": "v0.14.1",
"date": "2025-10-20T22:10:56Z"
},
{
"name": "booklore-app/booklore",
"version": "v1.8.1",
"date": "2025-10-20T20:53:56Z"
},
{
"name": "coder/code-server",
"version": "v4.105.1",
"date": "2025-10-20T20:19:23Z"
},
{
"name": "pymedusa/Medusa",
"version": "v1.0.23",
"date": "2025-10-20T19:51:33Z"
},
{
"name": "chrisbenincasa/tunarr",
"version": "v0.23.0-alpha.16",
"date": "2025-10-20T19:29:20Z"
},
{
"name": "MediaBrowser/Emby.Releases",
"version": "4.9.1.80",
"date": "2025-09-30T20:25:16Z"
},
{
"name": "kyantech/Palmr",
"version": "v3.2.4-beta",
"date": "2025-10-20T17:58:55Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.91.0-pre",
"date": "2025-10-20T16:18:51Z"
},
{
"name": "meilisearch/meilisearch",
"version": "prototype-v1.24.0.ignore-embedding-failures-1",
"date": "2025-10-20T16:17:45Z"
},
{
"name": "louislam/uptime-kuma",
"version": "2.0.1",
"date": "2025-10-20T16:11:12Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.29.2",
"date": "2025-10-20T16:07:20Z"
},
{
"name": "chrisvel/tududi",
"version": "v0.84.1",
"date": "2025-10-20T15:32:24Z"
},
{
"name": "rclone/rclone",
"version": "v1.71.2",
"date": "2025-10-20T15:25:52Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.16.0-rc1",
"date": "2025-10-20T13:16:20Z"
},
{
"name": "crowdsecurity/crowdsec",
"version": "v1.7.1",
"date": "2025-10-15T10:44:03Z"
},
{
"name": "Graylog2/graylog2-server",
"version": "7.0.0-rc.1",
"date": "2025-10-20T11:53:31Z"
},
{
"name": "Kareadita/Kavita",
"version": "v0.8.8",
"date": "2025-10-20T11:26:24Z"
},
{
"name": "wizarrrr/wizarr",
"version": "v2025.10.4",
"date": "2025-10-20T10:45:54Z"
},
{
"name": "apache/cassandra",
"version": "cassandra-4.0.19",
"date": "2025-10-20T09:08:49Z"
},
{
"name": "jupyter/notebook",
"version": "@jupyter-notebook/ui-components@7.5.0-beta.1",
"date": "2025-10-20T07:01:38Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.24.159",
"date": "2025-10-20T05:53:23Z"
},
{
"name": "inventree/InvenTree",
"version": "1.0.7",
"date": "2025-10-20T05:23:10Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.4.2",
"date": "2025-10-07T08:11:58Z"
},
{
"name": "jellyfin/jellyfin",
"version": "v10.11.0",
"date": "2025-10-20T00:45:19Z"
},
{
"name": "esphome/esphome",
"version": "2025.10.2",
"date": "2025-10-20T00:42:57Z"
},
{
"name": "pelican-dev/panel",
"version": "v1.0.0-beta27",
"date": "2025-10-20T00:38:13Z"
},
{
"name": "jeedom/core",
"version": "4.4.20",
"date": "2025-10-20T00:27:05Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.0.1",
"date": "2025-10-15T16:53:55Z"
},
{
"name": "seriousm4x/UpSnap",
"version": "5.2.3",
"date": "2025-10-19T20:50:15Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.50.27",
"date": "2025-10-19T20:31:07Z"
},
{
"name": "verdaccio/verdaccio",
"version": "generator-verdaccio-plugin@6.0.0-next-8.24",
"date": "2025-10-19T19:43:46Z"
},
{
"name": "Part-DB/Part-DB-server",
"version": "v2.2.1",
"date": "2025-10-19T14:30:11Z"
},
{
"name": "benzino77/tasmocompiler",
"version": "v13.0.0",
"date": "2025-10-19T10:03:18Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.3",
"date": "2025-09-20T12:12:33Z"
},
{
"name": "Prowlarr/Prowlarr",
"version": "v2.0.5.5160",
"date": "2025-08-23T21:23:11Z"
},
{
"name": "Lidarr/Lidarr",
"version": "v2.14.5.4836",
"date": "2025-10-08T15:30:50Z"
},
{
"name": "BerriAI/litellm",
"version": "v1.78.5.rc.1",
"date": "2025-10-18T23:17:14Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.3.3",
"date": "2025-10-18T22:27:42Z"
},
{
"name": "ellite/Wallos",
"version": "v4.5.0",
"date": "2025-10-18T22:00:50Z"
},
{
"name": "leiweibau/Pi.Alert",
"version": "v2025-10-18",
"date": "2025-10-18T20:35:54Z"
},
{
"name": "moghtech/komodo",
"version": "v1.19.5",
"date": "2025-09-27T20:59:46Z"
},
{
"name": "project-zot/zot",
"version": "v2.1.10",
"date": "2025-10-18T18:46:36Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.42.1",
"date": "2025-10-18T18:31:38Z"
},
{
"name": "YunoHost/yunohost",
"version": "debian/12.1.29",
"date": "2025-10-18T17:35:19Z"
},
{
"name": "Notifiarr/notifiarr",
"version": "v0.9.0",
"date": "2025-10-18T17:03:56Z"
},
{
"name": "TasmoAdmin/TasmoAdmin",
"version": "v4.3.2",
"date": "2025-10-18T12:11:00Z"
},
{
"name": "laurent22/joplin",
"version": "server-v3.4.4",
"date": "2025-09-25T13:19:26Z"
},
{
"name": "readeck/readeck",
"version": "0.20.4",
"date": "2025-10-18T10:00:42Z"
},
{
"name": "theonedev/onedev",
"version": "v13.0.9",
"date": "2025-10-18T09:59:25Z"
},
{
"name": "runtipi/runtipi",
"version": "v4.5.1",
"date": "2025-10-18T08:12:19Z"
},
{
"name": "nzbgetcom/nzbget",
"version": "v25.4",
"date": "2025-10-09T10:27:01Z"
},
{
"name": "TwiN/gatus",
"version": "v5.27.0",
"date": "2025-10-18T02:44:26Z"
},
{
"name": "9001/copyparty",
"version": "v1.19.17",
"date": "2025-10-17T23:40:02Z"
},
{ {
"name": "gtsteffaniak/filebrowser", "name": "gtsteffaniak/filebrowser",
"version": "v0.8.9-beta", "version": "v0.8.9-beta",
@@ -9,46 +279,21 @@
"version": "2025.10.3", "version": "2025.10.3",
"date": "2025-10-17T21:15:07Z" "date": "2025-10-17T21:15:07Z"
}, },
{
"name": "coder/code-server",
"version": "v4.105.0",
"date": "2025-10-17T19:55:55Z"
},
{
"name": "BerriAI/litellm",
"version": "v1.78.3-nightly",
"date": "2025-10-17T19:38:04Z"
},
{
"name": "MediaBrowser/Emby.Releases",
"version": "4.9.1.80",
"date": "2025-09-30T20:25:16Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.42.0",
"date": "2025-10-17T19:15:35Z"
},
{ {
"name": "forgejo/forgejo", "name": "forgejo/forgejo",
"version": "v13.0.1", "version": "v13.0.1",
"date": "2025-10-17T18:54:16Z" "date": "2025-10-17T18:54:16Z"
}, },
{
"name": "keycloak/keycloak",
"version": "26.4.1",
"date": "2025-10-16T07:21:53Z"
},
{ {
"name": "grokability/snipe-it", "name": "grokability/snipe-it",
"version": "v8.3.4", "version": "v8.3.4",
"date": "2025-10-17T18:13:24Z" "date": "2025-10-17T18:13:24Z"
}, },
{
"name": "msgbyte/tianji",
"version": "v1.29.0",
"date": "2025-10-17T17:03:33Z"
},
{
"name": "chrisvel/tududi",
"version": "v0.83.2",
"date": "2025-10-07T14:30:15Z"
},
{ {
"name": "NodeBB/NodeBB", "name": "NodeBB/NodeBB",
"version": "v4.6.1", "version": "v4.6.1",
@@ -59,16 +304,16 @@
"version": "v2.40.1", "version": "v2.40.1",
"date": "2025-10-17T13:42:04Z" "date": "2025-10-17T13:42:04Z"
}, },
{
"name": "neo4j/neo4j",
"version": "5.26.14",
"date": "2025-10-17T12:38:22Z"
},
{ {
"name": "mattermost/mattermost", "name": "mattermost/mattermost",
"version": "server/public/v0.1.21", "version": "server/public/v0.1.21",
"date": "2025-10-16T09:46:16Z" "date": "2025-10-16T09:46:16Z"
}, },
{
"name": "dgtlmoon/changedetection.io",
"version": "0.50.26",
"date": "2025-10-17T12:09:59Z"
},
{ {
"name": "wazuh/wazuh", "name": "wazuh/wazuh",
"version": "coverity-w42-4.14.0", "version": "coverity-w42-4.14.0",
@@ -79,11 +324,6 @@
"version": "v0.307.1", "version": "v0.307.1",
"date": "2025-10-17T08:41:04Z" "date": "2025-10-17T08:41:04Z"
}, },
{
"name": "nzbgetcom/nzbget",
"version": "v25.4",
"date": "2025-10-09T10:27:01Z"
},
{ {
"name": "zwave-js/zwave-js-ui", "name": "zwave-js/zwave-js-ui",
"version": "v11.5.2", "version": "v11.5.2",
@@ -99,36 +339,11 @@
"version": "v0.26.1", "version": "v0.26.1",
"date": "2025-06-06T11:22:02Z" "date": "2025-06-06T11:22:02Z"
}, },
{
"name": "Jackett/Jackett",
"version": "v0.24.145",
"date": "2025-10-17T05:55:22Z"
},
{
"name": "booklore-app/booklore",
"version": "v1.7.0",
"date": "2025-10-17T05:51:41Z"
},
{ {
"name": "diced/zipline", "name": "diced/zipline",
"version": "v4.3.2", "version": "v4.3.2",
"date": "2025-10-17T04:13:23Z" "date": "2025-10-17T04:13:23Z"
}, },
{
"name": "jeedom/core",
"version": "4.4.20",
"date": "2025-10-17T00:27:08Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.0.1",
"date": "2025-10-15T16:53:55Z"
},
{
"name": "chrisbenincasa/tunarr",
"version": "v0.22.8",
"date": "2025-10-16T23:57:39Z"
},
{ {
"name": "Stirling-Tools/Stirling-PDF", "name": "Stirling-Tools/Stirling-PDF",
"version": "v1.5.0", "version": "v1.5.0",
@@ -144,21 +359,11 @@
"version": "v0.12.6-rc1", "version": "v0.12.6-rc1",
"date": "2025-10-16T16:36:25Z" "date": "2025-10-16T16:36:25Z"
}, },
{
"name": "runtipi/runtipi",
"version": "nightly",
"date": "2025-10-16T19:43:25Z"
},
{ {
"name": "minio/minio", "name": "minio/minio",
"version": "RELEASE.2025-10-15T17-29-55Z", "version": "RELEASE.2025-10-15T17-29-55Z",
"date": "2025-10-16T19:33:51Z" "date": "2025-10-16T19:33:51Z"
}, },
{
"name": "keycloak/keycloak",
"version": "26.4.1",
"date": "2025-10-16T07:21:53Z"
},
{ {
"name": "SigNoz/signoz", "name": "SigNoz/signoz",
"version": "v0.98.0-rc.1", "version": "v0.98.0-rc.1",
@@ -174,11 +379,6 @@
"version": "v3.2.8", "version": "v3.2.8",
"date": "2025-10-16T14:21:48Z" "date": "2025-10-16T14:21:48Z"
}, },
{
"name": "esphome/esphome",
"version": "2025.10.1",
"date": "2025-10-16T10:00:10Z"
},
{ {
"name": "rcourtman/Pulse", "name": "rcourtman/Pulse",
"version": "v4.24.0", "version": "v4.24.0",
@@ -189,11 +389,6 @@
"version": "v4.4.0", "version": "v4.4.0",
"date": "2025-10-16T07:20:34Z" "date": "2025-10-16T07:20:34Z"
}, },
{
"name": "morpheus65535/bazarr",
"version": "v1.5.3",
"date": "2025-09-20T12:12:33Z"
},
{ {
"name": "cloudreve/cloudreve", "name": "cloudreve/cloudreve",
"version": "4.9.2", "version": "4.9.2",
@@ -204,11 +399,6 @@
"version": "v1.0.0-test8", "version": "v1.0.0-test8",
"date": "2025-10-16T01:32:14Z" "date": "2025-10-16T01:32:14Z"
}, },
{
"name": "inventree/InvenTree",
"version": "1.0.6",
"date": "2025-10-15T22:10:17Z"
},
{ {
"name": "Ombi-app/Ombi", "name": "Ombi-app/Ombi",
"version": "v4.47.1", "version": "v4.47.1",
@@ -224,11 +414,6 @@
"version": "v2.1.0", "version": "v2.1.0",
"date": "2025-10-15T19:24:14Z" "date": "2025-10-15T19:24:14Z"
}, },
{
"name": "laurent22/joplin",
"version": "server-v3.4.4",
"date": "2025-09-25T13:19:26Z"
},
{ {
"name": "karlomikus/bar-assistant", "name": "karlomikus/bar-assistant",
"version": "v5.9.0", "version": "v5.9.0",
@@ -239,11 +424,6 @@
"version": "v2.13.1", "version": "v2.13.1",
"date": "2025-10-15T13:29:37Z" "date": "2025-10-15T13:29:37Z"
}, },
{
"name": "meilisearch/meilisearch",
"version": "prototype-docker-alpine-3-22-v8",
"date": "2025-10-15T13:20:20Z"
},
{ {
"name": "TandoorRecipes/recipes", "name": "TandoorRecipes/recipes",
"version": "2.3.3", "version": "2.3.3",
@@ -254,11 +434,6 @@
"version": "jenkins-2.528.1", "version": "jenkins-2.528.1",
"date": "2025-10-15T12:51:20Z" "date": "2025-10-15T12:51:20Z"
}, },
{
"name": "Graylog2/graylog2-server",
"version": "7.0.0-beta.5",
"date": "2025-10-15T11:43:16Z"
},
{ {
"name": "cockpit-project/cockpit", "name": "cockpit-project/cockpit",
"version": "349", "version": "349",
@@ -269,16 +444,6 @@
"version": "v0.14.1", "version": "v0.14.1",
"date": "2024-08-29T22:32:51Z" "date": "2024-08-29T22:32:51Z"
}, },
{
"name": "crowdsecurity/crowdsec",
"version": "v1.7.1",
"date": "2025-10-15T10:44:03Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.15.2",
"date": "2025-10-15T07:42:29Z"
},
{ {
"name": "wavelog/wavelog", "name": "wavelog/wavelog",
"version": "2.1.2", "version": "2.1.2",
@@ -289,11 +454,6 @@
"version": "preview-seerr", "version": "preview-seerr",
"date": "2025-10-14T22:21:33Z" "date": "2025-10-14T22:21:33Z"
}, },
{
"name": "apache/cassandra",
"version": "5.0.6-tentative",
"date": "2025-10-14T20:36:34Z"
},
{ {
"name": "cloudflare/cloudflared", "name": "cloudflare/cloudflared",
"version": "2025.10.0", "version": "2025.10.0",
@@ -309,11 +469,6 @@
"version": "v4.5.5", "version": "v4.5.5",
"date": "2025-10-14T18:48:36Z" "date": "2025-10-14T18:48:36Z"
}, },
{
"name": "tailscale/tailscale",
"version": "v1.88.4",
"date": "2025-10-14T17:57:52Z"
},
{ {
"name": "plankanban/planka", "name": "plankanban/planka",
"version": "planka-1.1.0", "version": "planka-1.1.0",
@@ -324,11 +479,6 @@
"version": "16.2", "version": "16.2",
"date": "2025-09-08T14:03:25Z" "date": "2025-09-08T14:03:25Z"
}, },
{
"name": "project-zot/zot",
"version": "v2.1.9",
"date": "2025-10-14T16:18:49Z"
},
{ {
"name": "element-hq/synapse", "name": "element-hq/synapse",
"version": "v1.140.0", "version": "v1.140.0",
@@ -339,21 +489,11 @@
"version": "n8n@1.115.3", "version": "n8n@1.115.3",
"date": "2025-10-14T14:40:17Z" "date": "2025-10-14T14:40:17Z"
}, },
{
"name": "Prowlarr/Prowlarr",
"version": "v2.0.5.5160",
"date": "2025-08-23T21:23:11Z"
},
{ {
"name": "rogerfar/rdt-client", "name": "rogerfar/rdt-client",
"version": "v2.0.119", "version": "v2.0.119",
"date": "2025-10-13T23:15:11Z" "date": "2025-10-13T23:15:11Z"
}, },
{
"name": "jellyfin/jellyfin",
"version": "v10.10.7",
"date": "2025-04-05T19:14:59Z"
},
{ {
"name": "hargata/lubelog", "name": "hargata/lubelog",
"version": "v1.5.3", "version": "v1.5.3",
@@ -384,36 +524,11 @@
"version": "v0.29.0-rc.0", "version": "v0.29.0-rc.0",
"date": "2025-10-10T01:13:27Z" "date": "2025-10-10T01:13:27Z"
}, },
{
"name": "moghtech/komodo",
"version": "v1.19.5",
"date": "2025-09-27T20:59:46Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.4.2",
"date": "2025-10-07T08:11:58Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.3.2",
"date": "2025-10-12T21:30:43Z"
},
{ {
"name": "globaleaks/globaleaks-whistleblowing-software", "name": "globaleaks/globaleaks-whistleblowing-software",
"version": "v5.0.85", "version": "v5.0.85",
"date": "2025-10-12T19:55:18Z" "date": "2025-10-12T19:55:18Z"
}, },
{
"name": "ellite/Wallos",
"version": "v4.4.1",
"date": "2025-10-12T15:38:24Z"
},
{
"name": "YunoHost/yunohost",
"version": "debian/12.1.28",
"date": "2025-10-12T14:55:27Z"
},
{ {
"name": "PrivateBin/PrivateBin", "name": "PrivateBin/PrivateBin",
"version": "2.0.1", "version": "2.0.1",
@@ -489,11 +604,6 @@
"version": "v3.4.2", "version": "v3.4.2",
"date": "2025-10-09T19:05:48Z" "date": "2025-10-09T19:05:48Z"
}, },
{
"name": "henrygd/beszel",
"version": "v0.13.2",
"date": "2025-10-09T18:33:46Z"
},
{ {
"name": "ErsatzTV/ErsatzTV", "name": "ErsatzTV/ErsatzTV",
"version": "v25.7.1", "version": "v25.7.1",
@@ -509,11 +619,6 @@
"version": "11.0.1", "version": "11.0.1",
"date": "2025-10-09T12:34:15Z" "date": "2025-10-09T12:34:15Z"
}, },
{
"name": "theonedev/onedev",
"version": "v13.0.8",
"date": "2025-10-09T07:13:00Z"
},
{ {
"name": "documenso/documenso", "name": "documenso/documenso",
"version": "v1.12.10", "version": "v1.12.10",
@@ -529,11 +634,6 @@
"version": "v0.38.1", "version": "v0.38.1",
"date": "2025-10-08T21:34:07Z" "date": "2025-10-08T21:34:07Z"
}, },
{
"name": "pelican-dev/panel",
"version": "v1.0.0-beta26",
"date": "2025-10-08T20:12:11Z"
},
{ {
"name": "autobrr/autobrr", "name": "autobrr/autobrr",
"version": "v1.68.0", "version": "v1.68.0",
@@ -554,16 +654,6 @@
"version": "v4.3.3", "version": "v4.3.3",
"date": "2025-10-08T15:45:21Z" "date": "2025-10-08T15:45:21Z"
}, },
{
"name": "Lidarr/Lidarr",
"version": "v2.14.5.4836",
"date": "2025-10-08T15:30:50Z"
},
{
"name": "wizarrrr/wizarr",
"version": "v2025.10.3",
"date": "2025-10-08T15:29:15Z"
},
{ {
"name": "FlowiseAI/Flowise", "name": "FlowiseAI/Flowise",
"version": "flowise@3.0.8", "version": "flowise@3.0.8",
@@ -614,11 +704,6 @@
"version": "v2.2.2", "version": "v2.2.2",
"date": "2025-10-06T21:31:07Z" "date": "2025-10-06T21:31:07Z"
}, },
{
"name": "TwiN/gatus",
"version": "v5.26.0",
"date": "2025-10-06T17:57:27Z"
},
{ {
"name": "fuma-nama/fumadocs", "name": "fuma-nama/fumadocs",
"version": "fumadocs-ui@15.8.4", "version": "fumadocs-ui@15.8.4",
@@ -644,21 +729,11 @@
"version": "2.1.1", "version": "2.1.1",
"date": "2025-06-14T17:45:06Z" "date": "2025-06-14T17:45:06Z"
}, },
{
"name": "9001/copyparty",
"version": "v1.19.16",
"date": "2025-10-05T23:28:59Z"
},
{ {
"name": "BookStackApp/BookStack", "name": "BookStackApp/BookStack",
"version": "v25.07.3", "version": "v25.07.3",
"date": "2025-10-05T14:47:20Z" "date": "2025-10-05T14:47:20Z"
}, },
{
"name": "seriousm4x/UpSnap",
"version": "5.2.2",
"date": "2025-10-05T09:12:17Z"
},
{ {
"name": "pommee/goaway", "name": "pommee/goaway",
"version": "v0.62.11", "version": "v0.62.11",
@@ -674,11 +749,6 @@
"version": "8.2.2", "version": "8.2.2",
"date": "2025-10-03T06:22:38Z" "date": "2025-10-03T06:22:38Z"
}, },
{
"name": "kyantech/Palmr",
"version": "v3.2.3-beta",
"date": "2025-10-02T13:48:14Z"
},
{ {
"name": "actualbudget/actual", "name": "actualbudget/actual",
"version": "v25.10.0", "version": "v25.10.0",
@@ -724,26 +794,11 @@
"version": "v1.7.4", "version": "v1.7.4",
"date": "2025-09-30T13:34:30Z" "date": "2025-09-30T13:34:30Z"
}, },
{
"name": "neo4j/neo4j",
"version": "4.4.46",
"date": "2025-09-30T13:21:24Z"
},
{ {
"name": "thomiceli/opengist", "name": "thomiceli/opengist",
"version": "v1.11.1", "version": "v1.11.1",
"date": "2025-09-30T00:24:16Z" "date": "2025-09-30T00:24:16Z"
}, },
{
"name": "goauthentik/authentik",
"version": "version/2025.8.4",
"date": "2025-09-30T00:03:11Z"
},
{
"name": "verdaccio/verdaccio",
"version": "v6.2.0",
"date": "2025-09-29T20:59:23Z"
},
{ {
"name": "influxdata/telegraf", "name": "influxdata/telegraf",
"version": "v1.36.2", "version": "v1.36.2",
@@ -764,11 +819,6 @@
"version": "1.0.0", "version": "1.0.0",
"date": "2025-09-29T13:53:50Z" "date": "2025-09-29T13:53:50Z"
}, },
{
"name": "jupyter/notebook",
"version": "@jupyter-notebook/ui-components@7.5.0-beta.0",
"date": "2025-09-29T09:16:42Z"
},
{ {
"name": "lazy-media/Reactive-Resume", "name": "lazy-media/Reactive-Resume",
"version": "v1.2.6", "version": "v1.2.6",
@@ -819,11 +869,6 @@
"version": "1.2.39", "version": "1.2.39",
"date": "2025-09-25T15:57:02Z" "date": "2025-09-25T15:57:02Z"
}, },
{
"name": "rclone/rclone",
"version": "v1.71.1",
"date": "2025-09-24T16:32:16Z"
},
{ {
"name": "alexta69/metube", "name": "alexta69/metube",
"version": "2025.09.24", "version": "2025.09.24",
@@ -844,11 +889,6 @@
"version": "v12.2.0", "version": "v12.2.0",
"date": "2025-09-23T23:47:02Z" "date": "2025-09-23T23:47:02Z"
}, },
{
"name": "Part-DB/Part-DB-server",
"version": "v2.2.0",
"date": "2025-09-23T21:46:21Z"
},
{ {
"name": "postgres/postgres", "name": "postgres/postgres",
"version": "REL_18_0", "version": "REL_18_0",
@@ -899,11 +939,6 @@
"version": "release-1.24.0", "version": "release-1.24.0",
"date": "2025-09-18T08:36:55Z" "date": "2025-09-18T08:36:55Z"
}, },
{
"name": "TasmoAdmin/TasmoAdmin",
"version": "v4.3.1",
"date": "2025-07-22T20:10:08Z"
},
{ {
"name": "eclipse-mosquitto/mosquitto", "name": "eclipse-mosquitto/mosquitto",
"version": "2.1.0-test1", "version": "2.1.0-test1",
@@ -929,11 +964,6 @@
"version": "v2.4.0p12", "version": "v2.4.0p12",
"date": "2025-09-16T12:53:03Z" "date": "2025-09-16T12:53:03Z"
}, },
{
"name": "readeck/readeck",
"version": "0.20.3",
"date": "2025-09-16T07:29:49Z"
},
{ {
"name": "Paymenter/Paymenter", "name": "Paymenter/Paymenter",
"version": "v1.3.4", "version": "v1.3.4",
@@ -999,11 +1029,6 @@
"version": "0.6", "version": "0.6",
"date": "2025-09-05T06:05:04Z" "date": "2025-09-05T06:05:04Z"
}, },
{
"name": "louislam/uptime-kuma",
"version": "2.0.0-beta.2-temp",
"date": "2025-03-28T08:45:58Z"
},
{ {
"name": "healthchecks/healthchecks", "name": "healthchecks/healthchecks",
"version": "v3.11.2", "version": "v3.11.2",
@@ -1139,11 +1164,6 @@
"version": "v2.1.1867", "version": "v2.1.1867",
"date": "2025-07-31T18:08:43Z" "date": "2025-07-31T18:08:43Z"
}, },
{
"name": "leiweibau/Pi.Alert",
"version": "v2025-07-30",
"date": "2025-07-30T17:13:40Z"
},
{ {
"name": "danielbrendel/hortusfox-web", "name": "danielbrendel/hortusfox-web",
"version": "v5.2", "version": "v5.2",
@@ -1214,11 +1234,6 @@
"version": "250707-d28b3101e", "version": "250707-d28b3101e",
"date": "2025-07-07T15:15:21Z" "date": "2025-07-07T15:15:21Z"
}, },
{
"name": "Kareadita/Kavita",
"version": "v0.8.7",
"date": "2025-07-05T20:08:58Z"
},
{ {
"name": "qbittorrent/qBittorrent", "name": "qbittorrent/qBittorrent",
"version": "release-5.1.2", "version": "release-5.1.2",
@@ -1254,11 +1269,6 @@
"version": "v4.0.15.2941", "version": "v4.0.15.2941",
"date": "2025-06-20T17:20:54Z" "date": "2025-06-20T17:20:54Z"
}, },
{
"name": "benzino77/tasmocompiler",
"version": "v12.7.0",
"date": "2025-06-20T08:31:16Z"
},
{ {
"name": "prometheus-pve/prometheus-pve-exporter", "name": "prometheus-pve/prometheus-pve-exporter",
"version": "v3.5.5", "version": "v3.5.5",
@@ -1474,11 +1484,6 @@
"version": "v0.7.3", "version": "v0.7.3",
"date": "2024-12-15T10:18:06Z" "date": "2024-12-15T10:18:06Z"
}, },
{
"name": "pymedusa/Medusa",
"version": "v1.0.22",
"date": "2024-12-13T12:22:19Z"
},
{ {
"name": "phpipam/phpipam", "name": "phpipam/phpipam",
"version": "v1.7.3", "version": "v1.7.3",
@@ -1499,11 +1504,6 @@
"version": "v2024.10.22-7ca5933", "version": "v2024.10.22-7ca5933",
"date": "2024-10-22T09:58:03Z" "date": "2024-10-22T09:58:03Z"
}, },
{
"name": "Notifiarr/notifiarr",
"version": "v0.8.3",
"date": "2024-10-04T23:49:07Z"
},
{ {
"name": "FunkeyFlo/ps5-mqtt", "name": "FunkeyFlo/ps5-mqtt",
"version": "v1.4.0", "version": "v1.4.0",

View File

@@ -24,9 +24,6 @@ $STD node bin/build.js dist
sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json
$STD /opt/cronicle/bin/control.sh setup $STD /opt/cronicle/bin/control.sh setup
$STD /opt/cronicle/bin/control.sh start $STD /opt/cronicle/bin/control.sh start
$STD cp /opt/cronicle/bin/cronicled.init /etc/init.d/cronicled
chmod 775 /etc/init.d/cronicled
$STD update-rc.d cronicled defaults
msg_ok "Configured Cronicle Primary Server" msg_ok "Configured Cronicle Primary Server"
motd_ssh motd_ssh

View File

@@ -1,78 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/StarFleetCPTN/GoMFT
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
sqlite3 \
rclone \
tzdata \
ca-certificates
msg_ok "Installed Dependencies"
fetch_and_deploy_gh_release "gomft" "StarFleetCPTN/GoMFT" "singlefile" "latest" "/opt/gomft" "gomft*linux-amd64"
msg_info "Configuring ${APPLICATION}"
JWT_SECRET_KEY=$(openssl rand -base64 24 | tr -d '/+=')
cat <<EOF >/opt/gomft/.env
SERVER_ADDRESS=:8080
DATA_DIR=/opt/gomft/data/gomft
BACKUP_DIR=/opt/gomft/data/gomft/backups
JWT_SECRET=$JWT_SECRET_KEY
BASE_URL=http://localhost:8080
# Email configuration
EMAIL_ENABLED=false
EMAIL_HOST=smtp.example.com
EMAIL_PORT=587
EMAIL_FROM_EMAIL=gomft@example.com
EMAIL_FROM_NAME=GoMFT
EMAIL_REPLY_TO=
EMAIL_ENABLE_TLS=true
EMAIL_REQUIRE_AUTH=true
EMAIL_USERNAME=smtp_username
EMAIL_PASSWORD=smtp_password
EOF
msg_ok "Configured ${APPLICATION}"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/gomft.service
[Unit]
Description=GoMFT Service
After=network.target
[Service]
Type=simple
User=root
EnvironmentFile=/opt/gomft/.env
WorkingDirectory=/opt/gomft
ExecStart=/opt/gomft/gomft
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now gomft
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"
motd_ssh
customize

View File

@@ -14,7 +14,16 @@ network_check
update_os update_os
msg_info "Setting Up Hardware Acceleration" msg_info "Setting Up Hardware Acceleration"
$STD apt-get -y install {va-driver-all,ocl-icd-libopencl1,intel-opencl-icd,vainfo,intel-gpu-tools} if ! grep -qEi 'ubuntu' /etc/os-release; then
fetch_and_deploy_gh_release "intel-igc-core-2" "intel/intel-graphics-compiler" "binary" "latest" "" "intel-igc-core-2_*_amd64.deb"
fetch_and_deploy_gh_release "intel-igc-opencl-2" "intel/intel-graphics-compiler" "binary" "latest" "" "intel-igc-opencl-2_*_amd64.deb"
fetch_and_deploy_gh_release "intel-libgdgmm12" "intel/compute-runtime" "binary" "latest" "" "libigdgmm12_*_amd64.deb"
fetch_and_deploy_gh_release "intel-opencl-icd" "intel/compute-runtime" "binary" "latest" "" "intel-opencl-icd_*_amd64.deb"
else
$STD apt -y install intel-ocl-icd
fi
$STD apt -y install {va-driver-all,ocl-icd-libopencl1,vainfo,intel-gpu-tools}
if [[ "$CTTYPE" == "0" ]]; then if [[ "$CTTYPE" == "0" ]]; then
chgrp video /dev/dri chgrp video /dev/dri
chmod 755 /dev/dri chmod 755 /dev/dri
@@ -26,13 +35,16 @@ msg_ok "Set Up Hardware Acceleration"
msg_info "Installing Jellyfin" msg_info "Installing Jellyfin"
VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)" VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)"
# If the keyring directory is absent, create it if ! dpkg -s libjemalloc2 >/dev/null 2>&1; then
$STD apt install -y libjemalloc2
fi
if [[ ! -f /usr/lib/libjemalloc.so ]]; then
ln -sf /usr/lib/x86_64-linux-gnu/libjemalloc.so.2 /usr/lib/libjemalloc.so
fi
if [[ ! -d /etc/apt/keyrings ]]; then if [[ ! -d /etc/apt/keyrings ]]; then
mkdir -p /etc/apt/keyrings mkdir -p /etc/apt/keyrings
fi fi
# Download the repository signing key and install it to the keyring directory
curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor --yes --output /etc/apt/keyrings/jellyfin.gpg curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor --yes --output /etc/apt/keyrings/jellyfin.gpg
# Install the Deb822 format jellyfin.sources entry
cat <<EOF >/etc/apt/sources.list.d/jellyfin.sources cat <<EOF >/etc/apt/sources.list.d/jellyfin.sources
Types: deb Types: deb
URIs: https://repo.jellyfin.org/${PCT_OSTYPE} URIs: https://repo.jellyfin.org/${PCT_OSTYPE}
@@ -41,10 +53,11 @@ Components: main
Architectures: amd64 Architectures: amd64
Signed-By: /etc/apt/keyrings/jellyfin.gpg Signed-By: /etc/apt/keyrings/jellyfin.gpg
EOF EOF
# Install Jellyfin using the metapackage (which will fetch jellyfin-server, jellyfin-web, and jellyfin-ffmpeg5)
$STD apt-get update $STD apt update
$STD apt-get install -y jellyfin $STD apt install -y jellyfin
sed -i 's/"MinimumLevel": "Information"/"MinimumLevel": "Error"/g' /etc/jellyfin/logging.json sed -i 's/"MinimumLevel": "Information"/"MinimumLevel": "Error"/g' /etc/jellyfin/logging.json
chown -R jellyfin:adm /etc/jellyfin chown -R jellyfin:adm /etc/jellyfin
sleep 10 sleep 10
systemctl restart jellyfin systemctl restart jellyfin
@@ -59,6 +72,7 @@ motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
$STD apt-get -y autoremove $STD apt -y autoremove
$STD apt-get -y autoclean $STD apt -y autoclean
$STD apt -y clean
msg_ok "Cleaned" msg_ok "Cleaned"

View File

@@ -13,8 +13,6 @@ setting_up_container
network_check network_check
update_os update_os
setup_go
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt update $STD apt update
$STD apt -y install \ $STD apt -y install \
@@ -31,12 +29,16 @@ $STD apt install -y \
python3-dev \ python3-dev \
python3-pip \ python3-pip \
python3-venv \ python3-venv \
python3-cffi \ python3-cffi
python3-certbot \
python3-certbot-dns-cloudflare
$STD pip3 install --break-system-packages certbot-dns-multi
msg_ok "Installed Python Dependencies" msg_ok "Installed Python Dependencies"
msg_info "Setting up Certbot"
$STD python3 -m venv /opt/certbot
$STD /opt/certbot/bin/pip install --upgrade pip setuptools wheel
$STD /opt/certbot/bin/pip install certbot certbot-dns-cloudflare
ln -sf /opt/certbot/bin/certbot /usr/local/bin/certbot
msg_ok "Set up Certbot"
VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)" VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)"
msg_info "Installing Openresty" msg_info "Installing Openresty"
@@ -53,7 +55,7 @@ $STD apt update
$STD apt -y install openresty $STD apt -y install openresty
msg_ok "Installed Openresty" msg_ok "Installed Openresty"
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
RELEASE=$(curl -fsSL https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest | RELEASE=$(curl -fsSL https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest |
grep "tag_name" | grep "tag_name" |
@@ -66,7 +68,6 @@ msg_ok "Downloaded Nginx Proxy Manager v${RELEASE}"
msg_info "Setting up Environment" msg_info "Setting up Environment"
ln -sf /usr/bin/python3 /usr/bin/python ln -sf /usr/bin/python3 /usr/bin/python
ln -sf /usr/bin/certbot /usr/local/bin/certbot
ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx
ln -sf /usr/local/openresty/nginx/ /etc/nginx ln -sf /usr/local/openresty/nginx/ /etc/nginx
sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" backend/package.json sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" backend/package.json
@@ -118,9 +119,11 @@ msg_ok "Set up Environment"
msg_info "Building Frontend" msg_info "Building Frontend"
cd ./frontend cd ./frontend
$STD pnpm install export NODE_OPTIONS="--openssl-legacy-provider"
$STD pnpm upgrade # Replace node-sass with sass in package.json before installation
$STD pnpm run build sed -i 's/"node-sass".*$/"sass": "^1.92.1",/g' package.json
$STD yarn install --network-timeout 600000
$STD yarn build
cp -r dist/* /app/frontend cp -r dist/* /app/frontend
cp -r app-images/* /app/frontend/images cp -r app-images/* /app/frontend/images
msg_ok "Built Frontend" msg_ok "Built Frontend"
@@ -143,7 +146,8 @@ if [ ! -f /app/config/production.json ]; then
EOF EOF
fi fi
cd /app cd /app
$STD pnpm install export NODE_OPTIONS="--openssl-legacy-provider"
$STD yarn install --network-timeout 600000
msg_ok "Initialized Backend" msg_ok "Initialized Backend"
msg_info "Creating Service" msg_info "Creating Service"

View File

@@ -0,0 +1,124 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://openarchiver.com/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing dependendencies"
$STD apt install -y valkey
msg_ok "Installed dependendencies"
NODE_VERSION="22" NODE_MODULE="pnpm" setup_nodejs
PG_VERSION="17" setup_postgresql
fetch_and_deploy_gh_release "meilisearch" "meilisearch/meilisearch" "binary"
fetch_and_deploy_gh_release "openarchiver" "LogicLabs-OU/OpenArchiver" "tarball"
JWT_KEY="$(openssl rand -hex 32)"
SECRET_KEY="$(openssl rand -hex 32)"
IP_ADDR=$(hostname -I | awk '{print $1}')
msg_info "Setting up PostgreSQL"
DB_NAME="openarchiver_db"
DB_USER="openarchiver"
DB_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-18)"
$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 "Open Archiver DB Credentials"
echo "Database Name: $DB_NAME"
echo "Database User: $DB_USER"
echo "Database Password: $DB_PASS"
} >>~/openarchiver.creds
msg_ok "Set up PostgreSQL"
msg_info "Configuring MeiliSearch"
curl -fsSL https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml -o /etc/meilisearch.toml
MASTER_KEY=$(openssl rand -base64 12)
sed -i \
-e 's|^env =.*|env = "production"|' \
-e "s|^# master_key =.*|master_key = \"$MASTER_KEY\"|" \
-e 's|^db_path =.*|db_path = "/var/lib/meilisearch/data"|' \
-e 's|^dump_dir =.*|dump_dir = "/var/lib/meilisearch/dumps"|' \
-e 's|^snapshot_dir =.*|snapshot_dir = "/var/lib/meilisearch/snapshots"|' \
-e 's|^# no_analytics = true|no_analytics = true|' \
-e 's|^http_addr =.*|http_addr = "127.0.0.1:7700"|' \
/etc/meilisearch.toml
cat <<EOF >/etc/systemd/system/meilisearch.service
[Unit]
Description=Meilisearch
After=network.target
[Service]
ExecStart=/usr/bin/meilisearch --config-file-path /etc/meilisearch.toml
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now meilisearch
sleep 5
msg_ok "Configured MeiliSearch"
msg_info "Setting up Open Archiver"
mkdir -p /opt/openarchiver-data
cd /opt/openarchiver
cp .env.example .env
sed -i "s|^NODE_ENV=.*|NODE_ENV=production|g" /opt/openarchiver/.env
sed -i "s|^POSTGRES_DB=.*|POSTGRES_DB=openarchiver_db|g" /opt/openarchiver/.env
sed -i "s|^POSTGRES_USER=.*|POSTGRES_USER=openarchiver|g" /opt/openarchiver/.env
sed -i "s|^POSTGRES_PASSWORD=.*|POSTGRES_PASSWORD=$DB_PASS|g" /opt/openarchiver/.env
sed -i "s|^DATABASE_URL=.*|DATABASE_URL=\"postgresql://openarchiver:$DB_PASS@localhost:5432/openarchiver_db\"|g" /opt/openarchiver/.env
sed -i "s|^MEILI_HOST=.*|MEILI_HOST=http://localhost:7700|g" /opt/openarchiver/.env
sed -i "s|^MEILI_MASTER_KEY=.*|MEILI_MASTER_KEY=$MASTER_KEY|g" /opt/openarchiver/.env
sed -i "s|^REDIS_HOST=.*|REDIS_HOST=localhost|g" /opt/openarchiver/.env
sed -i "s|^REDIS_PASSWORD=.*|REDIS_PASSWORD=|g" /opt/openarchiver/.env
sed -i "s|^STORAGE_LOCAL_ROOT_PATH=.*|STORAGE_LOCAL_ROOT_PATH=/opt/openarchiver-data|g" /opt/openarchiver/.env
sed -i "s|^JWT_SECRET=.*|JWT_SECRET=$JWT_KEY|g" /opt/openarchiver/.env
sed -i "s|^ENCRYPTION_KEY=.*|ENCRYPTION_KEY=$SECRET_KEY|g" /opt/openarchiver/.env
sed -i "s|^TIKA_URL=.*|TIKA_URL=|g" /opt/openarchiver/.env
echo "ORIGIN=http://$IP_ADDR:3000" >> /opt/openarchiver/.env
$STD pnpm install --shamefully-hoist --frozen-lockfile --prod=false
$STD pnpm build
$STD pnpm db:migrate
msg_ok "Setup Open Archiver"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/openarchiver.service
[Unit]
Description=Open Archiver Service
After=network-online.target
[Service]
Type=simple
User=root
EnvironmentFile=/opt/openarchiver/.env
WorkingDirectory=/opt/openarchiver
ExecStart=/usr/bin/pnpm docker-start
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now openarchiver
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt -y autoremove
$STD apt -y autoclean
$STD apt -y clean
msg_ok "Cleaned"

View File

@@ -15,7 +15,7 @@ update_os
fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "latest" "/opt/palmr" fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "latest" "/opt/palmr"
PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)" PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)"
NODE_VERSION="20" NODE_MODULE="$PNPM" setup_nodejs NODE_VERSION="24" NODE_MODULE="$PNPM" setup_nodejs
msg_info "Configuring palmr backend" msg_info "Configuring palmr backend"
PALMR_DIR="/opt/palmr_data" PALMR_DIR="/opt/palmr_data"

View File

@@ -37,7 +37,7 @@ msg_info "Installing PhotoPrism (Patience)"
mkdir -p /opt/photoprism/{cache,config,photos,storage,temp} mkdir -p /opt/photoprism/{cache,config,photos,storage,temp}
mkdir -p /opt/photoprism/photos/{originals,import} mkdir -p /opt/photoprism/photos/{originals,import}
mkdir -p /opt/photoprism_backups mkdir -p /opt/photoprism_backups
LIBHEIF_URL=$(curl -fsSL "https://dl.photoprism.app/dist/libheif/" | grep -oP "libheif-$(lsb_release -cs)-amd64-v[0-9\.]+\.tar\.gz" | sort -V | tail -n 1) LIBHEIF_URL=$(curl -fsSL "https://dl.photoprism.app/dist/libheif/" | grep -oP "libheif-bookworm-amd64-v[0-9\.]+\.tar\.gz" | sort -V | tail -n 1)
curl -fsSL "https://dl.photoprism.app/dist/libheif/$LIBHEIF_URL" -o /tmp/libheif.tar.gz curl -fsSL "https://dl.photoprism.app/dist/libheif/$LIBHEIF_URL" -o /tmp/libheif.tar.gz
tar -xzf /tmp/libheif.tar.gz -C /usr/local tar -xzf /tmp/libheif.tar.gz -C /usr/local
ldconfig ldconfig

View File

@@ -54,7 +54,6 @@ $STD apt install -y \
libreoffice-base-core \ libreoffice-base-core \
libreoffice-script-provider-python \ libreoffice-script-provider-python \
libreoffice-java-common \ libreoffice-java-common \
unoconv \
pngquant \ pngquant \
weasyprint weasyprint
msg_ok "Installed LibreOffice Components" msg_ok "Installed LibreOffice Components"

View File

@@ -345,7 +345,7 @@ if ! pct create "$CTID" "${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE}" "${PCT_OPTIONS[
msg_error "Template appears to be corrupted re-downloading." msg_error "Template appears to be corrupted re-downloading."
rm -f "$TEMPLATE_PATH" rm -f "$TEMPLATE_PATH"
else else
msg_error "Template is valid, but container creation still failed." msg_error "Template is valid, but container creation failed. Update your whole Proxmox System (pve-container) first or check https://github.com/community-scripts/ProxmoxVE/discussions/8126"
exit 209 exit 209
fi fi

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG # Copyright (c) 2021-2025 community-scripts ORG
# Author: Author: MickLesk # Author: MickLesk
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
function header_info() { function header_info() {
@@ -53,20 +53,9 @@ fi
header_info header_info
function msg_info() { function msg_info() { echo -e "${INFO} ${YW}$1...${CL}"; }
local msg="$1" function msg_ok() { echo -e "${CM} ${GN}$1${CL}"; }
echo -e "${INFO} ${YW}${msg}...${CL}" function msg_error() { echo -e "${CROSS} ${RD}$1${CL}"; }
}
function msg_ok() {
local msg="$1"
echo -e "${CM} ${GN}${msg}${CL}"
}
function msg_error() {
local msg="$1"
echo -e "${CROSS} ${RD}${msg}${CL}"
}
# Detect legacy FileBrowser installation # Detect legacy FileBrowser installation
LEGACY_DB="/usr/local/community-scripts/filebrowser.db" LEGACY_DB="/usr/local/community-scripts/filebrowser.db"
@@ -96,42 +85,32 @@ if [[ -f "$LEGACY_DB" || -f "$LEGACY_BIN" && ! -f "$CONFIG_PATH" ]]; then
fi fi
fi fi
# Check existing installation # Existing installation
if [[ -f "$INSTALL_PATH" ]]; then if [[ -f "$INSTALL_PATH" ]]; then
echo -e "${YW}⚠️ ${APP} is already installed.${CL}" echo -e "${YW}⚠️ ${APP} is already installed.${CL}"
echo -n "Uninstall ${APP}? (y/N): " echo -n "Uninstall ${APP}? (y/N): "
read -r uninstall_prompt read -r uninstall_prompt
if [[ "${uninstall_prompt,,}" =~ ^(y|yes)$ ]]; then if [[ "${uninstall_prompt,,}" =~ ^(y|yes)$ ]]; then
msg_info "Uninstalling ${APP}" msg_info "Uninstalling ${APP}"
if [[ "$OS" == "Debian" ]]; then if [[ "$OS" == "Debian" ]]; then
systemctl disable --now filebrowser.service &>/dev/null systemctl disable --now filebrowser.service &>/dev/null
rm -f "$SERVICE_PATH" rm -f "$SERVICE_PATH"
else else
rc-service filebrowser stop &>/dev/null rc-service filebrowser stop &>/dev/null
rc-update del filebrowser &>/dev/null rc-update del filebrowser &>/dev/null
rm -f "$SERVICE_PATH" rm -f "$SERVICE_PATH"
fi
rm -f "$INSTALL_PATH" "$CONFIG_PATH"
msg_ok "${APP} has been uninstalled."
exit 0
fi fi
rm -f "$INSTALL_PATH" "$CONFIG_PATH"
echo -n "Update ${APP}? (y/N): " msg_ok "${APP} has been uninstalled."
read -r update_prompt exit 0
fi
echo -n "Update ${APP}? (y/N): "
read -r update_prompt
if [[ "${update_prompt,,}" =~ ^(y|yes)$ ]]; then if [[ "${update_prompt,,}" =~ ^(y|yes)$ ]]; then
msg_info "Updating ${APP}" msg_info "Updating ${APP}"
tmp="${INSTALL_PATH}.tmp.$$" curl -fsSL https://github.com/gtsteffaniak/filebrowser/releases/latest/download/linux-amd64-filebrowser -o "$INSTALL_PATH"
if ! curl -fSL https://github.com/gtsteffaniak/filebrowser/releases/latest/download/linux-amd64-filebrowser -o "$tmp"; then chmod +x "$INSTALL_PATH"
msg_error "Download failed"
rm -f "$tmp"
exit 1
fi
chmod 0755 "$tmp"
if ! mv -f "$tmp" "$INSTALL_PATH"; then
msg_error "Install failed (cannot move into $INSTALL_PATH)"
rm -f "$tmp"
exit 1
fi
msg_ok "Updated ${APP}" msg_ok "Updated ${APP}"
exit 0 exit 0
else else
@@ -147,72 +126,80 @@ PORT=${PORT:-$DEFAULT_PORT}
echo -n "Install ${APP}? (y/n): " echo -n "Install ${APP}? (y/n): "
read -r install_prompt read -r install_prompt
if [[ "${install_prompt,,}" =~ ^(y|yes)$ ]]; then if ! [[ "${install_prompt,,}" =~ ^(y|yes)$ ]]; then
msg_info "Installing ${APP} on ${OS}" echo -e "${YW}⚠️ Installation skipped. Exiting.${CL}"
$PKG_MANAGER curl ffmpeg &>/dev/null exit 0
curl -fsSL https://github.com/gtsteffaniak/filebrowser/releases/latest/download/linux-amd64-filebrowser -o "$INSTALL_PATH" fi
chmod +x "$INSTALL_PATH"
msg_ok "Installed ${APP}"
msg_info "Preparing configuration directory" msg_info "Installing ${APP} on ${OS}"
mkdir -p /usr/local/community-scripts $PKG_MANAGER curl ffmpeg &>/dev/null
chown root:root /usr/local/community-scripts curl -fsSL https://github.com/gtsteffaniak/filebrowser/releases/latest/download/linux-amd64-filebrowser -o "$INSTALL_PATH"
chmod 755 /usr/local/community-scripts chmod +x "$INSTALL_PATH"
msg_ok "Directory prepared" msg_ok "Installed ${APP}"
echo -n "Use No Authentication? (y/N): " msg_info "Preparing configuration directory"
read -r noauth_prompt mkdir -p /usr/local/community-scripts
chown root:root /usr/local/community-scripts
chmod 755 /usr/local/community-scripts
msg_ok "Directory prepared"
if [[ "${noauth_prompt,,}" =~ ^(y|yes)$ ]]; then echo -n "Use No Authentication? (y/N): "
cat <<EOF >"$CONFIG_PATH" read -r noauth_prompt
# === YAML CONFIG GENERATION ===
if [[ "${noauth_prompt,,}" =~ ^(y|yes)$ ]]; then
cat <<EOF >"$CONFIG_PATH"
server: server:
port: $PORT port: $PORT
sources: sources:
- path: "$SRC_DIR" - path: "$SRC_DIR"
name: "RootFS"
config: config:
denyByDefault: false
disableIndexing: false disableIndexing: false
indexingIntervalMinutes: 240 indexingIntervalMinutes: 240
exclude: conditionals:
folderPaths: rules:
- "/proc" - neverWatchPath: "/proc"
- "/sys" - neverWatchPath: "/sys"
- "/dev" - neverWatchPath: "/dev"
- "/run" - neverWatchPath: "/run"
- "/tmp" - neverWatchPath: "/tmp"
- "/lost+found" - neverWatchPath: "/lost+found"
auth: auth:
methods: methods:
noauth: true noauth: true
EOF EOF
msg_ok "Configured with no authentication" msg_ok "Configured with no authentication"
else else
cat <<EOF >"$CONFIG_PATH" cat <<EOF >"$CONFIG_PATH"
server: server:
port: $PORT port: $PORT
sources: sources:
- path: "$SRC_DIR" - path: "$SRC_DIR"
name: "RootFS"
config: config:
denyByDefault: false
disableIndexing: false disableIndexing: false
indexingIntervalMinutes: 240 indexingIntervalMinutes: 240
exclude: conditionals:
folderPaths: rules:
- "/proc" - neverWatchPath: "/proc"
- "/sys" - neverWatchPath: "/sys"
- "/dev" - neverWatchPath: "/dev"
- "/run" - neverWatchPath: "/run"
- "/tmp" - neverWatchPath: "/tmp"
- "/lost+found" - neverWatchPath: "/lost+found"
auth: auth:
adminUsername: admin adminUsername: admin
adminPassword: helper-scripts.com adminPassword: helper-scripts.com
EOF EOF
msg_ok "Configured with default admin (admin / helper-scripts.com)" msg_ok "Configured with default admin (admin / helper-scripts.com)"
fi fi
msg_info "Creating service" msg_info "Creating service"
if [[ "$OS" == "Debian" ]]; then
if [[ "$OS" == "Debian" ]]; then cat <<EOF >"$SERVICE_PATH"
cat <<EOF >"$SERVICE_PATH"
[Unit] [Unit]
Description=FileBrowser Quantum Description=FileBrowser Quantum
After=network.target After=network.target
@@ -226,9 +213,9 @@ Restart=always
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
EOF EOF
systemctl enable --now filebrowser &>/dev/null systemctl enable --now filebrowser &>/dev/null
else else
cat <<EOF >"$SERVICE_PATH" cat <<EOF >"$SERVICE_PATH"
#!/sbin/openrc-run #!/sbin/openrc-run
command="/usr/local/bin/filebrowser" command="/usr/local/bin/filebrowser"
@@ -241,14 +228,10 @@ depend() {
need net need net
} }
EOF EOF
chmod +x "$SERVICE_PATH" chmod +x "$SERVICE_PATH"
rc-update add filebrowser default &>/dev/null rc-update add filebrowser default &>/dev/null
rc-service filebrowser start &>/dev/null rc-service filebrowser start &>/dev/null
fi
msg_ok "Service created successfully"
echo -e "${CM} ${GN}${APP} is reachable at: ${BL}http://$IP:$PORT${CL}"
else
echo -e "${YW}⚠️ Installation skipped. Exiting.${CL}"
exit 0
fi fi
msg_ok "Service created successfully"
echo -e "${CM} ${GN}${APP} is reachable at: ${BL}http://$IP:$PORT${CL}"