Compare commits

..

40 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
f7d013287b Update CHANGELOG.md (#10405)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-29 00:16:26 +00:00
community-scripts-pr-app[bot]
6b1a7228d3 Update versions.json (#10404)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-29 01:16:02 +01:00
community-scripts-pr-app[bot]
9667c7a17e Update CHANGELOG.md (#10403)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 23:39:13 +00:00
CanbiZ (MickLesk)
b4a25160e4 Linkwarden: enable Corepack and prepare Yarn v4 before running yarn (#10390) 2025-12-29 00:38:46 +01:00
community-scripts-pr-app[bot]
547043e842 Update CHANGELOG.md (#10402)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 23:38:27 +00:00
CanbiZ (MickLesk)
1d278f53f6 fix(metube): use pnpm + corepack for frontend build (#10392) 2025-12-29 00:38:05 +01:00
community-scripts-pr-app[bot]
a471006c3d Update .app files (#10396)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-12-28 21:34:07 +01:00
community-scripts-pr-app[bot]
7b08f8d8a2 Update CHANGELOG.md (#10397)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 20:30:27 +00:00
community-scripts-pr-app[bot]
cc8bb3ec9f Update CHANGELOG.md (#10395)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 20:30:11 +00:00
community-scripts-pr-app[bot]
8c02a1023f Update date in json (#10394)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-12-28 20:30:06 +00:00
push-app-to-main[bot]
e17a42f905 Add mail-archiver (ct) (#10393)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2025-12-28 21:29:51 +01:00
community-scripts-pr-app[bot]
bef77dde87 Update CHANGELOG.md (#10389)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 19:21:38 +00:00
durzo
59a752a6ab Fix mongodb update logic (#10388)
* Fix mongodb update logic

* Simplify MongoDB installation check

---------

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-12-28 20:21:16 +01:00
community-scripts-pr-app[bot]
99a7f30b06 Update .app files (#10386)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-12-28 18:30:20 +01:00
community-scripts-pr-app[bot]
a1586a748d Update CHANGELOG.md (#10385)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 17:02:09 +00:00
durzo
9a5d121910 fix pulse downloading incorrect tarball (#10383) 2025-12-28 18:01:46 +01:00
community-scripts-pr-app[bot]
dfb4e00550 Update versions.json (#10382)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 13:06:22 +01:00
community-scripts-pr-app[bot]
d095da7949 Update CHANGELOG.md (#10381)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 09:33:35 +00:00
michaelb
73c626bd3c Updated Frontend Debian and Ubuntu VM notes so links can be copied quickly. (#10379)
* Refactor code structure for improved readability and maintainability

* Revert "Refactor code structure for improved readability and maintainability"

This reverts commit 17389aeb34.

* Changed Frontend Debian and Ubuntu VM discusson links so they can be copied quickly.
2025-12-28 10:33:14 +01:00
community-scripts-pr-app[bot]
7bfb9447b2 Update CHANGELOG.md (#10380)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 08:04:28 +00:00
James Polley
8526a25541 Set default LANG in locale configuration (#9440) (#10378)
Ensures LANG is set to en_US.UTF-8 by default if not already defined before updating /etc/locale.gen.

Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-12-28 09:04:05 +01:00
community-scripts-pr-app[bot]
5671d554f1 Update CHANGELOG.md (#10375)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 00:16:34 +00:00
community-scripts-pr-app[bot]
1962eb3d5b Update versions.json (#10374)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-28 01:16:13 +01:00
community-scripts-pr-app[bot]
2f7c54b827 Update CHANGELOG.md (#10372)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-27 21:02:23 +00:00
community-scripts-pr-app[bot]
e912ef1e7d Update CHANGELOG.md (#10371)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-27 21:02:05 +00:00
community-scripts-pr-app[bot]
6251b24eff Update date in json (#10370)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-12-27 21:01:58 +00:00
push-app-to-main[bot]
6fa0d47ff2 nextcloud-exporter (#10314)
* Add nextcloud-exporter (addon)

* rename

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2025-12-27 22:01:41 +01:00
community-scripts-pr-app[bot]
1cab60ac6a Update CHANGELOG.md (#10369)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-27 20:55:31 +00:00
Slaviša Arežina
0e89a65597 Fix need for verbose (#10368) 2025-12-27 21:55:06 +01:00
community-scripts-pr-app[bot]
183b92dc4b Update versions.json (#10363)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-27 13:06:32 +01:00
community-scripts-pr-app[bot]
375076d294 Update CHANGELOG.md (#10361)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-27 09:17:51 +00:00
durzo
9582910787 Fix build for 2.13.5 (#10340) 2025-12-27 10:17:30 +01:00
community-scripts-pr-app[bot]
046e50778c Update CHANGELOG.md (#10360)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-27 09:01:09 +00:00
Slaviša Arežina
1d34ecc981 Database cred fixes (#10359) 2025-12-27 10:00:41 +01:00
community-scripts-pr-app[bot]
c62b78f34b Update CHANGELOG.md (#10357)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-27 00:14:40 +00:00
community-scripts-pr-app[bot]
fcfb4e9f4b Update versions.json (#10356)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-27 01:14:17 +01:00
community-scripts-pr-app[bot]
a25a469177 Update CHANGELOG.md (#10354)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-26 18:59:02 +00:00
CanbiZ (MickLesk)
e5943404f9 fix(phpipam): use PHP 8.4 with correct mysql module for PDO support (#10348) 2025-12-26 19:58:38 +01:00
community-scripts-pr-app[bot]
023a6e54a4 Update CHANGELOG.md (#10353)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-26 18:58:11 +00:00
CanbiZ (MickLesk)
bbc326ec23 fix(hyperion): increase disk to 4GB and fix /root/. path error (#10349) 2025-12-26 19:57:49 +01:00
31 changed files with 908 additions and 1202 deletions

View File

@@ -10,8 +10,59 @@
> [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
## 2025-12-29
## 2025-12-28
### 🆕 New Scripts
- Mail-Archiver ([#10393](https://github.com/community-scripts/ProxmoxVE/pull/10393))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Fix mongodb update logic [@durzo](https://github.com/durzo) ([#10388](https://github.com/community-scripts/ProxmoxVE/pull/10388))
- fix pulse downloading incorrect tarball [@durzo](https://github.com/durzo) ([#10383](https://github.com/community-scripts/ProxmoxVE/pull/10383))
- #### 🔧 Refactor
- Linkwarden: enable Corepack and prepare Yarn v4 before running yarn [@MickLesk](https://github.com/MickLesk) ([#10390](https://github.com/community-scripts/ProxmoxVE/pull/10390))
- metube: use pnpm + corepack for frontend build [@MickLesk](https://github.com/MickLesk) ([#10392](https://github.com/community-scripts/ProxmoxVE/pull/10392))
### 💾 Core
- #### 🐞 Bug Fixes
- Set default LANG in locale configuration [@jamezpolley](https://github.com/jamezpolley) ([#10378](https://github.com/community-scripts/ProxmoxVE/pull/10378))
### ❔ Uncategorized
- Updated Frontend Debian and Ubuntu VM notes so links can be copied quickly. [@mzb2xeo](https://github.com/mzb2xeo) ([#10379](https://github.com/community-scripts/ProxmoxVE/pull/10379))
## 2025-12-27
### 🆕 New Scripts
- nextcloud-exporter ([#10314](https://github.com/community-scripts/ProxmoxVE/pull/10314))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Dotnet ASP Web API: Fix need for verbose [@tremor021](https://github.com/tremor021) ([#10368](https://github.com/community-scripts/ProxmoxVE/pull/10368))
- Npm: fix build for 2.13.5 [@durzo](https://github.com/durzo) ([#10340](https://github.com/community-scripts/ProxmoxVE/pull/10340))
- Outline: Fix for database connection string [@tremor021](https://github.com/tremor021) ([#10359](https://github.com/community-scripts/ProxmoxVE/pull/10359))
## 2025-12-26
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- phpipam: use PHP 8.4 with correct mysql module for PDO support [@MickLesk](https://github.com/MickLesk) ([#10348](https://github.com/community-scripts/ProxmoxVE/pull/10348))
- hyperion: increase disk to 4GB and tools.func: fix /root/. path error [@MickLesk](https://github.com/MickLesk) ([#10349](https://github.com/community-scripts/ProxmoxVE/pull/10349))
### ❔ Uncategorized
- fix: zoraxy: category [@CrazyWolf13](https://github.com/CrazyWolf13) ([#10344](https://github.com/community-scripts/ProxmoxVE/pull/10344))

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

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

View File

@@ -9,7 +9,7 @@ APP="Hyperion"
var_tags="${var_tags:-ambient-lightning}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"

View File

@@ -42,8 +42,20 @@ function update_script() {
fetch_and_deploy_gh_release "linkwarden" "linkwarden/linkwarden"
msg_info "Updating ${APP}"
msg_info "Updating Linkwarden"
cd /opt/linkwarden
yarn_ver="4.12.0"
if [[ -f package.json ]]; then
pkg_manager=$(jq -r '.packageManager // empty' package.json 2>/dev/null || true)
if [[ -n "$pkg_manager" && "$pkg_manager" == yarn@* ]]; then
yarn_spec="${pkg_manager#yarn@}"
yarn_ver="${yarn_spec%%+*}"
fi
fi
if command -v corepack >/dev/null 2>&1; then
$STD corepack enable
$STD corepack prepare "yarn@${yarn_ver}" --activate || true
fi
$STD yarn
$STD npx playwright install-deps
$STD yarn playwright install
@@ -55,7 +67,7 @@ function update_script() {
rm -rf ~/.cargo/registry ~/.cargo/git ~/.cargo/.package-cache
rm -rf /root/.cache/yarn
rm -rf /opt/linkwarden/.next/cache
msg_ok "Updated ${APP}"
msg_ok "Updated Linkwarden"
msg_info "Starting Service"
systemctl start linkwarden

71
ct/mail-archiver.sh Normal file
View File

@@ -0,0 +1,71 @@
#!/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/s1t5/mail-archiver
APP="Mail-Archiver"
var_tags="${var_tags:-mail-archiver}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-2048}"
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/mail-archiver ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "mail-archiver" "s1t5/mail-archiver"; then
msg_info "Stopping Mail-Archiver"
systemctl stop mail-archiver
msg_ok "Stopped Mail-Archiver"
msg_info "Creating Backup"
cp /opt/mail-archiver/appsettings.json /opt/mail-archiver/.env /opt/
[[ -d /opt/mail-archiver/DataProtection-Keys ]] && cp -r /opt/mail-archiver/DataProtection-Keys /opt
msg_ok "Created Backup"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "mail-archiver" "s1t5/mail-archiver" "tarball"
msg_info "Updating Mail-Archiver"
mv /opt/mail-archiver /opt/mail-archiver-build
cd /opt/mail-archiver-build
$STD dotnet restore
$STD dotnet publish -c Release -o /opt/mail-archiver
rm -rf /opt/mail-archiver-build
msg_ok "Updated Mail-Archiver"
msg_info "Restoring Backup"
cp /opt/appsettings.json /opt/.env /opt/mail-archiver
[[ -d /opt/DataProtection-Keys ]] && cp -r /opt/DataProtection-Keys /opt/mail-archiver/
msg_ok "Restored Backup"
msg_info "Starting Mail-Archiver"
systemctl start mail-archiver
msg_ok "Started Mail-Archiver"
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}:5000${CL}"

View File

@@ -40,6 +40,8 @@ function update_script() {
fi
fi
NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs
if check_for_gh_release "metube" "alexta69/metube"; then
msg_info "Stopping Service"
systemctl stop metube
@@ -56,8 +58,12 @@ function update_script() {
msg_info "Building Frontend"
cd /opt/metube/ui
$STD npm install
$STD node_modules/.bin/ng build
if command -v corepack >/dev/null 2>&1; then
$STD corepack enable
$STD corepack prepare pnpm --activate || true
fi
$STD pnpm install --frozen-lockfile
$STD pnpm run build
msg_ok "Built Frontend"
PYTHON_VERSION="3.13" setup_uv

View File

@@ -23,13 +23,14 @@ function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/apt/sources.list.d/mongodb-org-7.0.list && ! -f /etc/apt/sources.list.d/mongodb-org-8.0.list ]]; then
msg_error "No ${APP} Installation Found!"
exit
if ! command -v mongod &>/dev/null; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP} LXC"
msg_info "Updating MongoDB LXC"
$STD apt update
$STD apt -y upgrade
$STD apt upgrade -y
msg_ok "Updated successfully!"
exit
}

View File

@@ -53,7 +53,7 @@ function update_script() {
#grep "tag_name" |
#awk '{print substr($2, 3, length($2)-4) }')
RELEASE="2.13.4"
RELEASE="2.13.5"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "nginxproxymanager" "NginxProxyManager/nginx-proxy-manager" "tarball" "v${RELEASE}" "/opt/nginxproxymanager"
msg_info "Stopping Services"
@@ -126,6 +126,7 @@ function update_script() {
# Replace node-sass with sass in package.json before installation
sed -E -i 's/"node-sass" *: *"([^"]*)"/"sass": "\1"/g' package.json
$STD yarn install --network-timeout 600000
$STD yarn locale-compile
$STD yarn build
cp -r /opt/nginxproxymanager/frontend/dist/* /app/frontend
cp -r /opt/nginxproxymanager/frontend/public/images/* /app/frontend/images

View File

@@ -33,7 +33,7 @@ function update_script() {
systemctl stop apache2
msg_ok "Stopped Service"
PHP_VERSION="8.3" PHP_APACHE="YES" PHP_FPM="YES" PHP_MODULE="mysql,gmp,snmp,ldap,apcu" setup_php
PHP_VERSION="8.4" PHP_APACHE="YES" PHP_FPM="YES" PHP_MODULE="mysql,gmp,snmp,ldap,apcu" setup_php
msg_info "Installing PHP-PEAR"
$STD apt install -y \

View File

@@ -38,7 +38,7 @@ function update_script() {
rm -f /opt/pulse/pulse
fi
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "pulse-v*-linux-amd64.tar.gz"
ln -sf /opt/pulse/bin/pulse /usr/local/bin/pulse
mkdir -p /etc/pulse
chown pulse:pulse /etc/pulse

View File

@@ -37,11 +37,11 @@
"type": "info"
},
{
"text": "After installation, checkout: ´https://github.com/community-scripts/ProxmoxVE/discussions/836´ for useful Debian commands",
"text": "For additional Debian commands and tips after installation, checkout: `https://github.com/community-scripts/ProxmoxVE/discussions/836`",
"type": "info"
},
{
"text": "If you use Cloud-init, checkout after installation: ´https://github.com/community-scripts/ProxmoxVE/discussions/272´",
"text": "If you use Cloud-init, checkout cloud-init discussion: `https://github.com/community-scripts/ProxmoxVE/discussions/272`",
"type": "info"
}
]

View File

@@ -37,7 +37,7 @@
"type": "info"
},
{
"text": "After installation, checkout: ´https://github.com/community-scripts/ProxmoxVE/discussions/836´ for useful Debian commands",
"text": "For additional Debian commands and tips after installation, checkout: `https://github.com/community-scripts/ProxmoxVE/discussions/836`",
"type": "info"
}
]

View File

@@ -21,7 +21,7 @@
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 2,
"hdd": 4,
"os": "debian",
"version": "13"
}

View File

@@ -0,0 +1,35 @@
{
"name": "Mail-Archiver",
"slug": "mail-archiver",
"categories": [
7
],
"date_created": "2025-12-28",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 5000,
"documentation": "https://github.com/s1t5/mail-archiver/blob/main/doc/Index.md",
"config_path": "/opt/mail-archiver/.env, /opt/mail-archiver/appsettings.json",
"website": "https://github.com/s1t5/mail-archiver",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/mail-archiver.webp",
"description": "Mail-Archiver is a web application for archiving, searching, and exporting emails from multiple accounts. Featuring folder sync, attachment support, mailbox migration and a dashboard.",
"install_methods": [
{
"type": "default",
"script": "ct/mail-archiver.sh",
"resources": {
"cpu": 1,
"ram": 2048,
"hdd": 8,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": "admin",
"password": "secure123!"
},
"notes": []
}

View File

@@ -0,0 +1,35 @@
{
"name": "Nextcloud Exporter",
"slug": "nextcloud-exporter",
"categories": [
9
],
"date_created": "2025-12-27",
"type": "addon",
"updateable": true,
"privileged": false,
"interface_port": 9205,
"documentation": "https://github.com/xperimental/nextcloud-exporter",
"website": "https://github.com/xperimental/nextcloud-exporter",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/nextcloud.webp",
"config_path": "/etc/nextcloud-exporter.env",
"description": "Prometheus exporter for Nextcloud servers. ",
"install_methods": [
{
"type": "default",
"script": "tools/addon/nextcloud-exporter.sh",
"resources": {
"cpu": null,
"ram": null,
"hdd": null,
"os": null,
"version": null
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -33,7 +33,7 @@
},
"notes": [
{
"text": "after installation, checkout: ´https://github.com/community-scripts/ProxmoxVE/discussions/272´",
"text": "This VM uses Cloud-init, for more information see cloud-init discussion: `https://github.com/community-scripts/ProxmoxVE/discussions/272`",
"type": "info"
}
]

View File

@@ -33,7 +33,7 @@
},
"notes": [
{
"text": "after installation, checkout: ´https://github.com/community-scripts/ProxmoxVE/discussions/272´",
"text": "This VM uses Cloud-init, for more information see cloud-init discussion: `https://github.com/community-scripts/ProxmoxVE/discussions/272`",
"type": "info"
}
]

View File

@@ -33,7 +33,7 @@
},
"notes": [
{
"text": "after installation, checkout: ´https://github.com/community-scripts/ProxmoxVE/discussions/272´",
"text": "This VM uses Cloud-init, for more information see cloud-init discussion: `https://github.com/community-scripts/ProxmoxVE/discussions/272`",
"type": "info"
}
]

View File

@@ -1,28 +1,68 @@
[
{
"name": "laurent22/joplin",
"version": "server-v3.5.2",
"date": "2025-12-19T21:28:55Z"
"name": "chrisbenincasa/tunarr",
"version": "v1.0.11",
"date": "2025-12-28T23:39:20Z"
},
{
"name": "theonedev/onedev",
"version": "v13.1.7",
"date": "2025-12-26T07:59:41Z"
"name": "Lidarr/Lidarr",
"version": "v3.1.0.4875",
"date": "2025-11-16T22:40:18Z"
},
{
"name": "Radarr/Radarr",
"version": "v6.0.4.10291",
"date": "2025-11-16T22:39:01Z"
},
{
"name": "scanopy/scanopy",
"version": "v0.12.7",
"date": "2025-12-28T16:51:10Z"
},
{
"name": "bluenviron/mediamtx",
"version": "v1.15.6",
"date": "2025-12-28T16:38:35Z"
},
{
"name": "release-argus/Argus",
"version": "0.29.0",
"date": "2025-12-28T14:32:36Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.31.0",
"date": "2025-12-28T11:41:41Z"
},
{
"name": "pommee/goaway",
"version": "v0.63.3",
"date": "2025-12-28T10:17:20Z"
},
{
"name": "linkwarden/linkwarden",
"version": "v2.13.5",
"date": "2025-12-28T09:15:51Z"
},
{
"name": "kimai/kimai",
"version": "2.45.0",
"date": "2025-12-28T06:32:47Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.4.14",
"date": "2025-12-16T05:42:34Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.24.545",
"date": "2025-12-26T05:55:25Z"
"version": "v0.24.590",
"date": "2025-12-28T05:55:38Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.40.0-rc2",
"date": "2025-12-26T02:02:43Z"
},
{
"name": "jeedom/core",
"version": "4.5.1",
"date": "2025-12-26T00:27:05Z"
"name": "hyperion-project/hyperion.ng",
"version": "2.1.1",
"date": "2025-06-14T17:45:06Z"
},
{
"name": "steveiliop56/tinyauth",
@@ -30,20 +70,110 @@
"date": "2025-11-23T12:13:34Z"
},
{
"name": "linkwarden/linkwarden",
"version": "v2.13.4",
"date": "2025-12-25T21:38:43Z"
"name": "jeedom/core",
"version": "4.5.1",
"date": "2025-12-28T00:27:09Z"
},
{
"name": "dani-garcia/vaultwarden",
"version": "1.35.0",
"date": "2025-12-27T23:07:12Z"
},
{
"name": "laurent22/joplin",
"version": "server-v3.5.2",
"date": "2025-12-19T21:28:55Z"
},
{
"name": "crafty-controller/crafty-4",
"version": "v4.7.0",
"date": "2025-12-27T20:37:54Z"
},
{
"name": "hargata/lubelog",
"version": "v1.5.6",
"date": "2025-12-27T20:29:53Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.4.5",
"date": "2025-12-27T19:40:14Z"
},
{
"name": "keycloak/keycloak",
"version": "26.4.7",
"date": "2025-12-01T08:14:11Z"
},
{
"name": "alam00000/bentopdf",
"version": "v1.15.1",
"date": "2025-12-27T16:29:08Z"
},
{
"name": "rcourtman/Pulse",
"version": "v5.0.5",
"date": "2025-12-27T11:47:48Z"
},
{
"name": "alexta69/metube",
"version": "2025.12.27",
"date": "2025-12-27T10:24:02Z"
},
{
"name": "karlomikus/bar-assistant",
"version": "v5.11.1",
"date": "2025-12-27T09:55:49Z"
},
{
"name": "fuma-nama/fumadocs",
"version": "fumadocs-ui@16.4.1",
"date": "2025-12-27T09:40:37Z"
},
{
"name": "sysadminsmedia/homebox",
"version": "v0.22.3",
"date": "2025-12-26T22:31:20Z"
},
{
"name": "seerr-team/seerr",
"version": "preview-music-support",
"date": "2025-12-26T22:24:19Z"
},
{
"name": "metabase/metabase",
"version": "v0.58.x",
"date": "2025-12-26T19:49:03Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.48.0",
"date": "2025-12-26T19:23:50Z"
},
{
"name": "toniebox-reverse-engineering/teddycloud",
"version": "tc_v0.6.6",
"date": "2025-12-26T18:45:22Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.40.0-rc3",
"date": "2025-12-26T16:06:54Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w52-4.14.2",
"date": "2025-12-19T13:31:21Z"
},
{
"name": "theonedev/onedev",
"version": "v13.1.7",
"date": "2025-12-26T07:59:41Z"
},
{
"name": "HydroshieldMKII/Guardian",
"version": "v1.3.3",
"date": "2025-12-25T20:19:52Z"
},
{
"name": "alexta69/metube",
"version": "2025.12.25",
"date": "2025-12-25T19:34:19Z"
},
{
"name": "matze/wastebin",
"version": "3.4.0",
@@ -54,16 +184,6 @@
"version": "3000.8.0",
"date": "2025-12-25T15:10:19Z"
},
{
"name": "metabase/metabase",
"version": "v0.58.x",
"date": "2025-12-25T15:06:53Z"
},
{
"name": "rcourtman/Pulse",
"version": "v5.0.3",
"date": "2025-12-25T13:51:42Z"
},
{
"name": "PatchMon/PatchMon",
"version": "v1.3.7",
@@ -114,11 +234,6 @@
"version": "v25.12",
"date": "2025-12-24T12:19:42Z"
},
{
"name": "fuma-nama/fumadocs",
"version": "fumadocs-ui@16.4.0",
"date": "2025-12-24T10:16:33Z"
},
{
"name": "emqx/emqx",
"version": "6.1.0-rc.1",
@@ -129,11 +244,6 @@
"version": "v0.6.0",
"date": "2025-12-24T03:32:16Z"
},
{
"name": "hyperion-project/hyperion.ng",
"version": "2.1.1",
"date": "2025-06-14T17:45:06Z"
},
{
"name": "advplyr/audiobookshelf",
"version": "v2.32.1",
@@ -144,11 +254,6 @@
"version": "n8n@2.1.4",
"date": "2025-12-23T20:53:07Z"
},
{
"name": "scanopy/scanopy",
"version": "v0.12.6",
"date": "2025-12-23T19:24:15Z"
},
{
"name": "prometheus-pve/prometheus-pve-exporter",
"version": "v3.8.0",
@@ -189,11 +294,6 @@
"version": "v3.8.1",
"date": "2025-12-16T09:59:22Z"
},
{
"name": "keycloak/keycloak",
"version": "26.4.7",
"date": "2025-12-01T08:14:11Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.543",
@@ -219,11 +319,6 @@
"version": "v2.1.13",
"date": "2025-12-23T10:14:48Z"
},
{
"name": "pommee/goaway",
"version": "v0.63.2",
"date": "2025-12-23T09:32:55Z"
},
{
"name": "syncthing/syncthing",
"version": "v2.0.12",
@@ -264,16 +359,6 @@
"version": "latest",
"date": "2025-12-22T16:21:19Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.30.25",
"date": "2025-12-22T16:03:19Z"
},
{
"name": "chrisbenincasa/tunarr",
"version": "v1.0.9",
"date": "2025-12-22T15:55:49Z"
},
{
"name": "openhab/openhab-core",
"version": "5.1.0",
@@ -294,11 +379,6 @@
"version": "v0.6.43",
"date": "2025-12-22T06:03:45Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.4.14",
"date": "2025-12-16T05:42:34Z"
},
{
"name": "benjaminjonard/koillection",
"version": "1.7.1",
@@ -329,11 +409,6 @@
"version": "v0.8.2",
"date": "2025-12-21T03:53:53Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.4.4",
"date": "2025-12-20T22:12:02Z"
},
{
"name": "CyferShepard/Jellystat",
"version": "1.1.7",
@@ -374,11 +449,6 @@
"version": "v1.0.0-beta21",
"date": "2025-12-19T23:04:27Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.47.0",
"date": "2025-12-19T19:42:50Z"
},
{
"name": "YunoHost/yunohost",
"version": "debian/12.1.37",
@@ -404,11 +474,6 @@
"version": "v1.19.0",
"date": "2025-12-19T13:37:00Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w52-4.14.2",
"date": "2025-12-19T13:31:21Z"
},
{
"name": "fccview/jotty",
"version": "1.14.4",
@@ -424,11 +489,6 @@
"version": "v15.0.0-dev",
"date": "2025-12-19T11:43:47Z"
},
{
"name": "release-argus/Argus",
"version": "0.28.3",
"date": "2025-12-19T11:05:10Z"
},
{
"name": "mattermost/mattermost",
"version": "v11.1.2",
@@ -469,11 +529,6 @@
"version": "v1.25.3",
"date": "2025-12-18T18:11:48Z"
},
{
"name": "karlomikus/bar-assistant",
"version": "v5.11.0",
"date": "2025-12-18T18:06:05Z"
},
{
"name": "neo4j/neo4j",
"version": "2025.11.2",
@@ -579,11 +634,6 @@
"version": "1.1.7",
"date": "2025-12-16T21:44:58Z"
},
{
"name": "crafty-controller/crafty-4",
"version": "v4.6.2",
"date": "2025-12-16T17:54:19Z"
},
{
"name": "azukaar/Cosmos-Server",
"version": "v0.19.0",
@@ -639,16 +689,6 @@
"version": "v2.3.0.5236",
"date": "2025-11-16T22:41:22Z"
},
{
"name": "Lidarr/Lidarr",
"version": "v3.1.0.4875",
"date": "2025-11-16T22:40:18Z"
},
{
"name": "Radarr/Radarr",
"version": "v6.0.4.10291",
"date": "2025-11-16T22:39:01Z"
},
{
"name": "jellyfin/jellyfin",
"version": "v10.11.5",
@@ -704,11 +744,6 @@
"version": "v4.3.1",
"date": "2025-12-13T15:38:37Z"
},
{
"name": "alam00000/bentopdf",
"version": "v1.11.2",
"date": "2025-12-13T15:28:49Z"
},
{
"name": "autobrr/autobrr",
"version": "v1.71.0",
@@ -814,11 +849,6 @@
"version": "v1.4.7",
"date": "2025-12-09T11:44:49Z"
},
{
"name": "seerr-team/seerr",
"version": "preview-test-fix-subscriptions",
"date": "2025-12-08T23:15:30Z"
},
{
"name": "hansmi/prometheus-paperless-exporter",
"version": "v0.0.9",
@@ -849,16 +879,6 @@
"version": "v6.11.1",
"date": "2025-12-07T19:19:08Z"
},
{
"name": "bluenviron/mediamtx",
"version": "v1.15.5",
"date": "2025-12-07T12:24:21Z"
},
{
"name": "sysadminsmedia/homebox",
"version": "v0.22.0-rc.2",
"date": "2025-12-06T21:24:28Z"
},
{
"name": "Koenkk/zigbee2mqtt",
"version": "2.7.1",
@@ -879,11 +899,6 @@
"version": "v0.28.0",
"date": "2025-12-06T13:32:18Z"
},
{
"name": "toniebox-reverse-engineering/teddycloud",
"version": "tc_v0.6.5",
"date": "2025-12-06T10:32:07Z"
},
{
"name": "inspircd/inspircd",
"version": "v4.9.0",
@@ -984,11 +999,6 @@
"version": "v2.4.7",
"date": "2025-11-30T20:59:51Z"
},
{
"name": "hargata/lubelog",
"version": "v1.5.5",
"date": "2025-11-30T18:33:20Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v1.16.0",
@@ -1094,11 +1104,6 @@
"version": "v4.3.2",
"date": "2025-10-18T12:11:00Z"
},
{
"name": "kimai/kimai",
"version": "2.44.0",
"date": "2025-11-20T11:01:01Z"
},
{
"name": "Athou/commafeed",
"version": "5.12.0",
@@ -1509,11 +1514,6 @@
"version": "v2.1.1867",
"date": "2025-07-31T18:08:43Z"
},
{
"name": "dani-garcia/vaultwarden",
"version": "1.34.3",
"date": "2025-07-30T09:10:59Z"
},
{
"name": "eko/pihole-exporter",
"version": "v1.2.0",

View File

@@ -26,11 +26,8 @@ $STD apt-get install -y \
nginx
msg_ok "Installed Dependencies"
msg_info "Configure Application"
var_project_name="default"
read -r -p "${TAB3}Type the assembly name of the project: " var_project_name
echo "Target assembly: '${var_project_name}'"
msg_ok "Application Configured"
msg_info "Setting up FTP Server"
useradd ftpuser

View File

@@ -19,37 +19,34 @@ $STD apt install -y \
build-essential
msg_ok "Installed Dependencies"
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
NODE_VERSION="22" setup_nodejs
PG_VERSION="16" setup_postgresql
RUST_CRATES="monolith" setup_rust
msg_info "Setting up PostgreSQL DB"
DB_NAME=linkwardendb
DB_USER=linkwarden
DB_PASS="$(openssl rand -base64 18 | tr -d '/' | cut -c1-13)"
SECRET_KEY="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)"
$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 "Linkwarden-Credentials"
echo "Linkwarden Database User: $DB_USER"
echo "Linkwarden Database Password: $DB_PASS"
echo "Linkwarden Database Name: $DB_NAME"
echo "Linkwarden Secret: $SECRET_KEY"
} >>~/linkwarden.creds
msg_ok "Set up PostgreSQL DB"
PG_DB_NAME="linkwardendb" PG_DB_USER="linkwarden" setup_postgresql_db
read -r -p "${TAB3}Would you like to add Adminer? <y/N> " prompt
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
setup_adminer
fi
msg_info "Installing Linkwarden (Patience)"
fetch_and_deploy_gh_release "linkwarden" "linkwarden/linkwarden"
msg_info "Installing Linkwarden (Patience)"
SECRET_KEY="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)"
echo "Linkwarden Secret: $SECRET_KEY" >>"${HOME}/linkwarden.creds"
cd /opt/linkwarden
yarn_ver="4.12.0"
if [[ -f package.json ]]; then
pkg_manager=$(jq -r '.packageManager // empty' package.json 2>/dev/null || true)
if [[ -n "$pkg_manager" && "$pkg_manager" == yarn@* ]]; then
yarn_spec="${pkg_manager#yarn@}"
yarn_ver="${yarn_spec%%+*}"
fi
fi
if command -v corepack >/dev/null 2>&1; then
$STD corepack enable
$STD corepack prepare "yarn@${yarn_ver}" --activate || true
fi
$STD yarn
$STD npx playwright install-deps
$STD yarn playwright install
@@ -57,7 +54,7 @@ IP=$(hostname -I | awk '{print $1}')
cat <<EOF >/opt/linkwarden/.env
NEXTAUTH_SECRET=${SECRET_KEY}
NEXTAUTH_URL=http://${IP}:3000
DATABASE_URL=postgresql://${DB_USER}:${DB_PASS}@localhost:5432/${DB_NAME}
DATABASE_URL=postgresql://${PG_DB_USER}:${PG_DB_PASS}@localhost:5432/${PG_DB_NAME}
EOF
$STD yarn prisma:generate
$STD yarn web:build

View File

@@ -0,0 +1,68 @@
#!/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/s1t5/mail-archiver
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
setup_deb822_repo \
"microsoft" \
"https://packages.microsoft.com/keys/microsoft-2025.asc" \
"https://packages.microsoft.com/debian/13/prod/" \
"trixie" \
"main"
$STD apt install -y \
dotnet-sdk-10.0 \
aspnetcore-runtime-8.0
msg_ok "Installed Dependencies"
PG_VERSION="17" setup_postgresql
PG_DB_NAME="mailarchiver_db" PG_DB_USER="mailarchiver" setup_postgresql_db
fetch_and_deploy_gh_release "mail-archiver" "s1t5/mail-archiver" "tarball"
msg_info "Setting up Mail-Archiver"
mv /opt/mail-archiver /opt/mail-archiver-build
cd /opt/mail-archiver-build
$STD dotnet restore
$STD dotnet publish -c Release -o /opt/mail-archiver
cp /opt/mail-archiver-build/appsettings.json /opt/mail-archiver/appsettings.json
sed -i "s|\"DefaultConnection\": \"[^\"]*\"|\"DefaultConnection\": \"Host=localhost;Database=mailarchiver_db;Username=mailarchiver;Password=$PG_DB_PASS\"|" /opt/mail-archiver/appsettings.json
rm -rf /opt/mail-archiver-build
cat <<EOF >/opt/mail-archiver/.env
ASPNETCORE_URLS=http://+:5000
ASPNETCORE_ENVIRONMENT=Production
TZ=UTC
EOF
msg_ok "Setup Mail-Archiver"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/mail-archiver.service
[Unit]
Description=Mail-Archiver Service
After=network.target
[Service]
EnvironmentFile=/opt/mail-archiver/.env
WorkingDirectory=/opt/mail-archiver
ExecStart=/usr/bin/dotnet MailArchiver.dll
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now mail-archiver
msg_info "Created Service"
motd_ssh
customize
cleanup_lxc

View File

@@ -23,7 +23,7 @@ $STD apt install -y \
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.13" setup_uv
NODE_VERSION="24" setup_nodejs
NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs
msg_info "Installing Deno"
export DENO_INSTALL="/usr/local"
@@ -37,8 +37,12 @@ fetch_and_deploy_gh_release "metube" "alexta69/metube" "tarball" "latest"
msg_info "Installing MeTube"
cd /opt/metube/ui
$STD npm ci
$STD node_modules/.bin/ng build --configuration production
if command -v corepack >/dev/null 2>&1; then
$STD corepack enable
$STD corepack prepare pnpm --activate || true
fi
$STD pnpm install --frozen-lockfile
$STD pnpm run build
cd /opt/metube
$STD uv sync
mkdir -p /opt/metube_downloads /opt/metube_downloads/.metube /opt/metube_downloads/music /opt/metube_downloads/videos

View File

@@ -57,9 +57,9 @@ NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
# RELEASE=$(curl -fsSL https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest |
# grep "tag_name" |
# awk '{print substr($2, 3, length($2)-4) }')
RELEASE="2.13.4"
RELEASE="2.13.5"
fetch_and_deploy_gh_release "nginxproxymanager" "NginxProxyManager/nginx-proxy-manager" "tarball" "v2.13.4"
fetch_and_deploy_gh_release "nginxproxymanager" "NginxProxyManager/nginx-proxy-manager" "tarball" "v2.13.5"
msg_info "Setting up Environment"
ln -sf /usr/bin/python3 /usr/bin/python
@@ -117,6 +117,7 @@ cd /opt/nginxproxymanager/frontend
# Replace node-sass with sass in package.json before installation
sed -E -i 's/"node-sass" *: *"([^"]*)"/"sass": "\1"/g' package.json
$STD yarn install --network-timeout 600000
$STD yarn locale-compile
$STD yarn build
cp -r /opt/nginxproxymanager/frontend/dist/* /app/frontend
cp -r /opt/nginxproxymanager/frontend/public/images/* /app/frontend/images

View File

@@ -33,7 +33,7 @@ cp .env.sample .env
export NODE_ENV=development
sed -i 's/NODE_ENV=production/NODE_ENV=development/g' /opt/outline/.env
sed -i "s/generate_a_new_key/${SECRET_KEY}/g" /opt/outline/.env
sed -i "s/user:pass@postgres/${DB_USER}:${DB_PASS}@localhost/g" /opt/outline/.env
sed -i "s/user:pass@postgres/${PG_DB_USER}:${PG_DB_PASS}@localhost/g" /opt/outline/.env
sed -i 's/redis:6379/localhost:6379/g' /opt/outline/.env
sed -i "5s#URL=#URL=http://${LOCAL_IP}#g" /opt/outline/.env
sed -i 's/FORCE_HTTPS=true/FORCE_HTTPS=false/g' /opt/outline/.env

View File

@@ -17,7 +17,7 @@ msg_info "Installing Dependencies"
$STD apt install -y fping
msg_ok "Installed Dependencies"
PHP_VERSION="8.3" PHP_APACHE="YES" PHP_FPM="YES" PHP_MODULE="pdo,pdo-mysql,gmp,snmp,ldap,apcu" setup_php
PHP_VERSION="8.4" PHP_APACHE="YES" PHP_FPM="YES" PHP_MODULE="mysql,gmp,snmp,ldap,apcu" setup_php
msg_info "Installing PHP-PEAR"
$STD apt install -y \
@@ -39,7 +39,7 @@ sed -i -e "s/\(\$disable_installer = \).*/\1true;/" \
-e "s/\(\$db\['pass'\] = \).*/\1'$MARIADB_DB_PASS';/" \
-e "s/\(\$db\['name'\] = \).*/\1'$MARIADB_DB_NAME';/" \
/opt/phpipam/config.php
sed -i '/max_execution_time/s/= .*/= 600/' /etc/php/8.3/apache2/php.ini
sed -i '/max_execution_time/s/= .*/= 600/' /etc/php/8.4/apache2/php.ini
msg_ok "Installed phpIPAM"
msg_info "Creating Service"

View File

@@ -29,7 +29,7 @@ else
fi
mkdir -p /etc/pulse
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "pulse-v*-linux-amd64.tar.gz"
ln -sf /opt/pulse/bin/pulse /usr/local/bin/pulse
chown -R pulse:pulse /etc/pulse /opt/pulse
msg_ok "Installed Pulse"

View File

@@ -3181,7 +3181,8 @@ EOF'
pct exec "$CTID" -- ash -c "apk add bash newt curl openssh nano mc ncurses jq >/dev/null"
else
sleep 3
pct exec "$CTID" -- bash -c "sed -i '/$LANG/ s/^# //' /etc/locale.gen"
LANG=${LANG:-en_US.UTF-8}
pct exec "$CTID" -- bash -c "sed -i \"/$LANG/ s/^# //\" /etc/locale.gen"
pct exec "$CTID" -- bash -c "locale_line=\$(grep -v '^#' /etc/locale.gen | grep -E '^[a-zA-Z]' | awk '{print \$1}' | head -n 1) && \
echo LANG=\$locale_line >/etc/default/locale && \
locale-gen >/dev/null && \

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,209 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/xperimental/nextcloud-exporter
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/core.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/tools.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/error_handler.func)
# Enable error handling
set -Eeuo pipefail
trap 'error_handler' ERR
load_functions
# ==============================================================================
# CONFIGURATION
# ==============================================================================
VERBOSE=${var_verbose:-no}
APP="nextcloud-exporter"
APP_TYPE="tools"
BINARY_PATH="/usr/bin/nextcloud-exporter"
CONFIG_PATH="/etc/nextcloud-exporter.env"
SERVICE_PATH="/etc/systemd/system/nextcloud-exporter.service"
# ==============================================================================
# OS DETECTION
# ==============================================================================
if ! grep -qE 'ID=debian|ID=ubuntu' /etc/os-release 2>/dev/null; then
echo -e "${CROSS} Unsupported OS detected. This script only supports Debian and Ubuntu."
exit 1
fi
# ==============================================================================
# UNINSTALL
# ==============================================================================
function uninstall() {
msg_info "Uninstalling Nextcloud-Exporter"
systemctl disable -q --now nextcloud-exporter
rm -f "$SERVICE_PATH"
if dpkg -l | grep -q nextcloud-exporter; then
$STD apt-get remove -y nextcloud-exporter || $STD dpkg -r nextcloud-exporter
fi
rm -f "$CONFIG_PATH"
rm -f "/usr/local/bin/update_nextcloud-exporter"
rm -f "$HOME/.nextcloud-exporter"
msg_ok "Nextcloud-Exporter has been uninstalled"
}
# ==============================================================================
# UPDATE
# ==============================================================================
function update() {
if check_for_gh_release "nextcloud-exporter" "xperimental/nextcloud-exporter"; then
msg_info "Stopping service"
systemctl stop nextcloud-exporter
msg_ok "Stopped service"
fetch_and_deploy_gh_release "nextcloud-exporter" "xperimental/nextcloud-exporter" "binary" "latest"
msg_info "Starting service"
systemctl start nextcloud-exporter
msg_ok "Started service"
msg_ok "Updated successfully"
exit
fi
}
# ==============================================================================
# INSTALL
# ==============================================================================
function install() {
read -erp "Enter URL of Nextcloud, example: (http://127.0.0.1:8080): " NEXTCLOUD_SERVER
read -rsp "Enter Nextcloud auth token (press Enter to use username/password instead): " NEXTCLOUD_AUTH_TOKEN
printf "\n"
if [[ -z "$NEXTCLOUD_AUTH_TOKEN" ]]; then
read -erp "Enter Nextcloud username: " NEXTCLOUD_USERNAME
read -rsp "Enter Nextcloud password: " NEXTCLOUD_PASSWORD
printf "\n"
fi
read -erp "Query additional info for apps? [Y/n]: " QUERY_APPS
if [[ "${QUERY_APPS,,}" =~ ^(n|no)$ ]]; then
NEXTCLOUD_INFO_APPS="false"
fi
read -erp "Query update information? [Y/n]: " QUERY_UPDATES
if [[ "${QUERY_UPDATES,,}" =~ ^(n|no)$ ]]; then
NEXTCLOUD_INFO_UPDATE="false"
fi
read -erp "Do you want to skip TLS-Verification (if using a self-signed Certificate on Nextcloud) [y/N]: " SKIP_TLS
if [[ "${SKIP_TLS,,}" =~ ^(y|yes)$ ]]; then
NEXTCLOUD_TLS_SKIP_VERIFY="true"
fi
fetch_and_deploy_gh_release "nextcloud-exporter" "xperimental/nextcloud-exporter" "binary" "latest"
msg_info "Creating configuration"
cat <<EOF >"$CONFIG_PATH"
# https://github.com/xperimental/nextcloud-exporter
NEXTCLOUD_SERVER="${NEXTCLOUD_SERVER}"
NEXTCLOUD_AUTH_TOKEN="${NEXTCLOUD_AUTH_TOKEN:-}"
NEXTCLOUD_USERNAME="${NEXTCLOUD_USERNAME:-}"
NEXTCLOUD_PASSWORD="${NEXTCLOUD_PASSWORD:-}"
NEXTCLOUD_INFO_UPDATE=${NEXTCLOUD_INFO_UPDATE:-"true"}
NEXTCLOUD_INFO_APPS=${NEXTCLOUD_INFO_APPS:-"true"}
NEXTCLOUD_TLS_SKIP_VERIFY=${NEXTCLOUD_TLS_SKIP_VERIFY:-"false"}
NEXTCLOUD_LISTEN_ADDRESS=":9205"
EOF
msg_ok "Created configuration"
msg_info "Creating service"
cat <<EOF >"$SERVICE_PATH"
[Unit]
Description=nextcloud-exporter
After=network.target
[Service]
User=root
EnvironmentFile=$CONFIG_PATH
ExecStart=$BINARY_PATH
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable -q --now nextcloud-exporter
msg_ok "Created and started service"
# Create update script
msg_info "Creating update script"
ensure_usr_local_bin_persist
cat <<'UPDATEEOF' >/usr/local/bin/update_nextcloud-exporter
#!/usr/bin/env bash
# nextcloud-exporter Update Script
type=update bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/nextcloud-exporter.sh)"
UPDATEEOF
chmod +x /usr/local/bin/update_nextcloud-exporter
msg_ok "Created update script (/usr/local/bin/update_nextcloud-exporter)"
echo ""
msg_ok "Nextcloud-Exporter installed successfully"
msg_ok "Metrics: ${BL}http://${LOCAL_IP}:9205/metrics${CL}"
msg_ok "Config: ${BL}${CONFIG_PATH}${CL}"
}
# ==============================================================================
# MAIN
# ==============================================================================
header_info
ensure_usr_local_bin_persist
import_local_ip
# Handle type=update (called from update script)
if [[ "${type:-}" == "update" ]]; then
if [[ -f "$BINARY_PATH" ]]; then
update
else
msg_error "Nextcloud-Exporter is not installed. Nothing to update."
exit 1
fi
exit 0
fi
# Check if already installed
if [[ -f "$BINARY_PATH" ]]; then
msg_warn "Nextcloud-Exporter is already installed."
echo ""
echo -n "${TAB}Uninstall Nextcloud-Exporter? (y/N): "
read -r uninstall_prompt
if [[ "${uninstall_prompt,,}" =~ ^(y|yes)$ ]]; then
uninstall
exit 0
fi
echo -n "${TAB}Update Nextcloud-Exporter? (y/N): "
read -r update_prompt
if [[ "${update_prompt,,}" =~ ^(y|yes)$ ]]; then
update
exit 0
fi
msg_warn "No action selected. Exiting."
exit 0
fi
# Fresh installation
msg_warn "Nextcloud-Exporter is not installed."
echo ""
echo -e "${TAB}${INFO} This will install:"
echo -e "${TAB} - Nextcloud Exporter (binary)"
echo -e "${TAB} - Systemd service"
echo ""
echo -n "${TAB}Install Nextcloud-Exporter? (y/N): "
read -r install_prompt
if [[ "${install_prompt,,}" =~ ^(y|yes)$ ]]; then
install
else
msg_warn "Installation cancelled. Exiting."
exit 0
fi

View File

@@ -0,0 +1,6 @@
__ __ __ __
____ ___ _ __/ /______/ /___ __ ______/ / ___ _ ______ ____ _____/ /____ _____
/ __ \/ _ \| |/_/ __/ ___/ / __ \/ / / / __ /_____/ _ \| |/_/ __ \/ __ \/ ___/ __/ _ \/ ___/
/ / / / __/> </ /_/ /__/ / /_/ / /_/ / /_/ /_____/ __/> </ /_/ / /_/ / / / /_/ __/ /
/_/ /_/\___/_/|_|\__/\___/_/\____/\__,_/\__,_/ \___/_/|_/ .___/\____/_/ \__/\___/_/
/_/