mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-06-30 11:15:01 +02:00
Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2645f4cf4d | |||
| a0b55b6934 | |||
| b263dc25fe | |||
| ac308c931e | |||
| a16dfb6d82 | |||
| 63e9bc3729 | |||
| 3735f9251b | |||
| fc2559c702 | |||
| 5f2d463408 | |||
| 69e0dc6968 | |||
| fccb8a923a | |||
| 53dbb9d705 | |||
| 236c5296b8 | |||
| 76c7e3a67f | |||
| 4dbb139c60 | |||
| c581704fdd | |||
| e0641d1573 | |||
| 058e860f6d | |||
| 2b87aa6d52 | |||
| 9640caf7bc | |||
| fc044a73ca |
+9
-3
@@ -89,9 +89,15 @@ jobs:
|
||||
slug=$(jq -r '.slug // empty' "$json_file" 2>/dev/null)
|
||||
[[ -z "$slug" ]] && continue
|
||||
|
||||
# Find corresponding install script
|
||||
install_script="install/${slug}-install.sh"
|
||||
[[ ! -f "$install_script" ]] && continue
|
||||
# Find corresponding script (install script or addon script)
|
||||
install_script=""
|
||||
if [[ -f "install/${slug}-install.sh" ]]; then
|
||||
install_script="install/${slug}-install.sh"
|
||||
elif [[ -f "tools/addon/${slug}.sh" ]]; then
|
||||
install_script="tools/addon/${slug}.sh"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
|
||||
# Look for fetch_and_deploy_gh_release calls
|
||||
# Pattern: fetch_and_deploy_gh_release "app" "owner/repo" ["mode"] ["version"]
|
||||
|
||||
@@ -401,8 +401,42 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
</details>
|
||||
|
||||
## 2026-02-11
|
||||
|
||||
## 2026-02-10
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Immich: Pin version to 2.5.6 [@vhsdream](https://github.com/vhsdream) ([#11775](https://github.com/community-scripts/ProxmoxVE/pull/11775))
|
||||
- Libretranslate: Fix setuptools [@tremor021](https://github.com/tremor021) ([#11772](https://github.com/community-scripts/ProxmoxVE/pull/11772))
|
||||
- Element Synapse: prevent systemd invoke failure during apt install [@MickLesk](https://github.com/MickLesk) ([#11758](https://github.com/community-scripts/ProxmoxVE/pull/11758))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Refactor: Slskd & Soularr [@vhsdream](https://github.com/vhsdream) ([#11674](https://github.com/community-scripts/ProxmoxVE/pull/11674))
|
||||
|
||||
### 🗑️ Deleted Scripts
|
||||
|
||||
- move paperless-exporter from LXC to addon ([#11737](https://github.com/community-scripts/ProxmoxVE/pull/11737))
|
||||
|
||||
### 🧰 Tools
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- feat: improve storage parsing & add guestname [@carlosmaroot](https://github.com/carlosmaroot) ([#11752](https://github.com/community-scripts/ProxmoxVE/pull/11752))
|
||||
|
||||
### 📂 Github
|
||||
|
||||
- Github-Version Workflow: include addon scripts in extraction [@MickLesk](https://github.com/MickLesk) ([#11757](https://github.com/community-scripts/ProxmoxVE/pull/11757))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 📝 Script Information
|
||||
|
||||
- Snowshare: fix typo in config file path on website [@BirdMakingStuff](https://github.com/BirdMakingStuff) ([#11754](https://github.com/community-scripts/ProxmoxVE/pull/11754))
|
||||
|
||||
## 2026-02-09
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
____ __ __ ____ __ _ _________ __ ______ __
|
||||
/ __ \_________ ____ ___ ___ / /_/ /_ ___ __ _______ / __ \____ _____ ___ _____/ /__ __________ / | / / ____/ |/ / / ____/ ______ ____ _____/ /____ _____
|
||||
/ /_/ / ___/ __ \/ __ `__ \/ _ \/ __/ __ \/ _ \/ / / / ___/_____/ /_/ / __ `/ __ \/ _ \/ ___/ / _ \/ ___/ ___/_____/ |/ / / __ | /_____/ __/ | |/_/ __ \/ __ \/ ___/ __/ _ \/ ___/
|
||||
/ ____/ / / /_/ / / / / / / __/ /_/ / / / __/ /_/ (__ )_____/ ____/ /_/ / /_/ / __/ / / / __(__ |__ )_____/ /| / /_/ // /_____/ /____> </ /_/ / /_/ / / / /_/ __/ /
|
||||
/_/ /_/ \____/_/ /_/ /_/\___/\__/_/ /_/\___/\__,_/____/ /_/ \__,_/ .___/\___/_/ /_/\___/____/____/ /_/ |_/\____//_/|_| /_____/_/|_/ .___/\____/_/ \__/\___/_/
|
||||
/_/ /_/
|
||||
+1
-1
@@ -105,7 +105,7 @@ EOF
|
||||
msg_ok "Image-processing libraries up to date"
|
||||
fi
|
||||
|
||||
RELEASE="2.5.5"
|
||||
RELEASE="2.5.6"
|
||||
if check_for_gh_release "Immich" "immich-app/immich" "${RELEASE}"; then
|
||||
if [[ $(cat ~/.immich) > "2.5.1" ]]; then
|
||||
msg_info "Enabling Maintenance Mode"
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: Andy Grunwald (andygrunwald)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/hansmi/prometheus-paperless-exporter
|
||||
|
||||
APP="Prometheus-Paperless-NGX-Exporter"
|
||||
var_tags="${var_tags:-monitoring;alerting}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-256}"
|
||||
var_disk="${var_disk:-2}"
|
||||
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 [[ ! -f /etc/systemd/system/prometheus-paperless-ngx-exporter.service ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if check_for_gh_release "prom-paperless-exp" "hansmi/prometheus-paperless-exporter"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop prometheus-paperless-ngx-exporter
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
fetch_and_deploy_gh_release "prom-paperless-exp" "hansmi/prometheus-paperless-exporter" "binary"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start prometheus-paperless-ngx-exporter
|
||||
msg_ok "Started Service"
|
||||
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}:8081/metrics${CL}"
|
||||
+52
-37
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: vhsdream
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/slskd/slskd, https://soularr.net
|
||||
# Source: https://github.com/slskd/slskd, https://github.com/mrusse/soularr
|
||||
|
||||
APP="slskd"
|
||||
var_tags="${var_tags:-arr;p2p}"
|
||||
@@ -24,50 +24,65 @@ function update_script() {
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -d /opt/slskd ]] || [[ ! -d /opt/soularr ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
if [[ ! -d /opt/slskd ]]; then
|
||||
msg_error "No Slskd Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -s https://api.github.com/repos/slskd/slskd/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop slskd soularr.timer soularr.service
|
||||
msg_info "Stopped Service"
|
||||
if check_for_gh_release "Slskd" "slskd/slskd"; then
|
||||
msg_info "Stopping Service(s)"
|
||||
systemctl stop slskd
|
||||
[[ -f /etc/systemd/system/soularr.service ]] && systemctl stop soularr.timer soularr.service
|
||||
msg_ok "Stopped Service(s)"
|
||||
|
||||
msg_info "Updating $APP to v${RELEASE}"
|
||||
tmp_file=$(mktemp)
|
||||
curl -fsSL "https://github.com/slskd/slskd/releases/download/${RELEASE}/slskd-${RELEASE}-linux-x64.zip" -o $tmp_file
|
||||
$STD unzip -oj $tmp_file slskd -d /opt/${APP}
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
msg_info "Backing up config"
|
||||
cp /opt/slskd/config/slskd.yml /opt/slskd.yml.bak
|
||||
msg_ok "Backed up config"
|
||||
|
||||
msg_info "Starting Service"
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Slskd" "slskd/slskd" "prebuild" "latest" "/opt/slskd" "slskd-*-linux-x64.zip"
|
||||
|
||||
msg_info "Restoring config"
|
||||
mv /opt/slskd.yml.bak /opt/slskd/config/slskd.yml
|
||||
msg_ok "Restored config"
|
||||
|
||||
msg_info "Starting Service(s)"
|
||||
systemctl start slskd
|
||||
msg_ok "Started Service"
|
||||
rm -rf $tmp_file
|
||||
else
|
||||
msg_ok "No ${APP} update required. ${APP} is already at v${RELEASE}"
|
||||
[[ -f /etc/systemd/system/soularr.service ]] && systemctl start soularr.timer
|
||||
msg_ok "Started Service(s)"
|
||||
msg_ok "Updated Slskd successfully!"
|
||||
fi
|
||||
msg_info "Updating Soularr"
|
||||
cp /opt/soularr/config.ini /opt/config.ini.bak
|
||||
cp /opt/soularr/run.sh /opt/run.sh.bak
|
||||
cd /tmp
|
||||
rm -rf /opt/soularr
|
||||
curl -fsSL -o main.zip https://github.com/mrusse/soularr/archive/refs/heads/main.zip
|
||||
$STD unzip main.zip
|
||||
mv soularr-main /opt/soularr
|
||||
cd /opt/soularr
|
||||
$STD pip install -r requirements.txt
|
||||
mv /opt/config.ini.bak /opt/soularr/config.ini
|
||||
mv /opt/run.sh.bak /opt/soularr/run.sh
|
||||
rm -rf /tmp/main.zip
|
||||
msg_ok "Updated soularr"
|
||||
[[ -d /opt/soularr ]] && if check_for_gh_release "Soularr" "mrusse/soularr"; then
|
||||
if systemctl is-active soularr.timer >/dev/null; then
|
||||
msg_info "Stopping Timer and Service"
|
||||
systemctl stop soularr.timer soularr.service
|
||||
msg_ok "Stopped Timer and Service"
|
||||
fi
|
||||
|
||||
msg_info "Starting soularr timer"
|
||||
systemctl start soularr.timer
|
||||
msg_ok "Started soularr timer"
|
||||
exit
|
||||
msg_info "Backing up Soularr config"
|
||||
cp /opt/soularr/config.ini /opt/soularr_config.ini.bak
|
||||
cp /opt/soularr/run.sh /opt/soularr_run.sh.bak
|
||||
msg_ok "Backed up Soularr config"
|
||||
|
||||
PYTHON_VERSION="3.11" setup_uv
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Soularr" "mrusse/soularr" "tarball" "latest" "/opt/soularr"
|
||||
msg_info "Updating Soularr"
|
||||
cd /opt/soularr
|
||||
$STD uv venv -c venv
|
||||
$STD source venv/bin/activate
|
||||
$STD uv pip install -r requirements.txt
|
||||
deactivate
|
||||
msg_ok "Updated Soularr"
|
||||
|
||||
msg_info "Restoring Soularr config"
|
||||
mv /opt/soularr_config.ini.bak /opt/soularr/config.ini
|
||||
mv /opt/soularr_run.sh.bak /opt/soularr/run.sh
|
||||
msg_ok "Restored Soularr config"
|
||||
|
||||
msg_info "Starting Soularr Timer"
|
||||
systemctl restart soularr.timer
|
||||
msg_ok "Started Soularr Timer"
|
||||
msg_ok "Updated Soularr successfully!"
|
||||
fi
|
||||
}
|
||||
|
||||
start
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"generated": "2026-02-10T00:25:58Z",
|
||||
"generated": "2026-02-11T00:26:07Z",
|
||||
"versions": [
|
||||
{
|
||||
"slug": "2fauth",
|
||||
@@ -15,6 +15,13 @@
|
||||
"pinned": false,
|
||||
"date": "2025-12-08T14:34:55Z"
|
||||
},
|
||||
{
|
||||
"slug": "adguardhome-sync",
|
||||
"repo": "bakito/adguardhome-sync",
|
||||
"version": "v0.8.2",
|
||||
"pinned": false,
|
||||
"date": "2025-10-24T17:13:47Z"
|
||||
},
|
||||
{
|
||||
"slug": "adventurelog",
|
||||
"repo": "seanmorley15/adventurelog",
|
||||
@@ -200,9 +207,9 @@
|
||||
{
|
||||
"slug": "comfyui",
|
||||
"repo": "comfyanonymous/ComfyUI",
|
||||
"version": "v0.12.3",
|
||||
"version": "v0.13.0",
|
||||
"pinned": false,
|
||||
"date": "2026-02-05T07:04:07Z"
|
||||
"date": "2026-02-10T20:27:38Z"
|
||||
},
|
||||
{
|
||||
"slug": "commafeed",
|
||||
@@ -263,16 +270,16 @@
|
||||
{
|
||||
"slug": "dispatcharr",
|
||||
"repo": "Dispatcharr/Dispatcharr",
|
||||
"version": "v0.18.1",
|
||||
"version": "v0.19.0",
|
||||
"pinned": false,
|
||||
"date": "2026-01-27T17:09:11Z"
|
||||
"date": "2026-02-10T21:18:10Z"
|
||||
},
|
||||
{
|
||||
"slug": "docmost",
|
||||
"repo": "docmost/docmost",
|
||||
"version": "v0.25.2",
|
||||
"version": "v0.25.3",
|
||||
"pinned": false,
|
||||
"date": "2026-02-06T19:50:55Z"
|
||||
"date": "2026-02-10T02:58:23Z"
|
||||
},
|
||||
{
|
||||
"slug": "domain-locker",
|
||||
@@ -533,6 +540,13 @@
|
||||
"pinned": false,
|
||||
"date": "2026-02-07T04:44:20Z"
|
||||
},
|
||||
{
|
||||
"slug": "immich-public-proxy",
|
||||
"repo": "alangrainger/immich-public-proxy",
|
||||
"version": "v1.15.1",
|
||||
"pinned": false,
|
||||
"date": "2026-01-26T08:04:27Z"
|
||||
},
|
||||
{
|
||||
"slug": "inspircd",
|
||||
"repo": "inspircd/inspircd",
|
||||
@@ -557,9 +571,16 @@
|
||||
{
|
||||
"slug": "jackett",
|
||||
"repo": "Jackett/Jackett",
|
||||
"version": "v0.24.1074",
|
||||
"version": "v0.24.1089",
|
||||
"pinned": false,
|
||||
"date": "2026-02-09T06:01:19Z"
|
||||
"date": "2026-02-10T05:55:59Z"
|
||||
},
|
||||
{
|
||||
"slug": "jellystat",
|
||||
"repo": "CyferShepard/Jellystat",
|
||||
"version": "V1.1.8",
|
||||
"pinned": false,
|
||||
"date": "2026-02-08T08:15:00Z"
|
||||
},
|
||||
{
|
||||
"slug": "joplin-server",
|
||||
@@ -599,9 +620,9 @@
|
||||
{
|
||||
"slug": "keycloak",
|
||||
"repo": "keycloak/keycloak",
|
||||
"version": "26.5.2",
|
||||
"version": "26.5.3",
|
||||
"pinned": false,
|
||||
"date": "2026-01-23T14:26:58Z"
|
||||
"date": "2026-02-10T07:30:08Z"
|
||||
},
|
||||
{
|
||||
"slug": "kimai",
|
||||
@@ -683,9 +704,9 @@
|
||||
{
|
||||
"slug": "libretranslate",
|
||||
"repo": "LibreTranslate/LibreTranslate",
|
||||
"version": "v1.8.4",
|
||||
"version": "v1.9.0",
|
||||
"pinned": false,
|
||||
"date": "2026-02-02T17:45:16Z"
|
||||
"date": "2026-02-10T19:05:48Z"
|
||||
},
|
||||
{
|
||||
"slug": "lidarr",
|
||||
@@ -718,9 +739,9 @@
|
||||
{
|
||||
"slug": "lubelogger",
|
||||
"repo": "hargata/lubelog",
|
||||
"version": "v1.5.9",
|
||||
"version": "v1.6.0",
|
||||
"pinned": false,
|
||||
"date": "2026-02-09T17:36:13Z"
|
||||
"date": "2026-02-10T20:16:32Z"
|
||||
},
|
||||
{
|
||||
"slug": "mafl",
|
||||
@@ -816,9 +837,9 @@
|
||||
{
|
||||
"slug": "myip",
|
||||
"repo": "jason5ng32/MyIP",
|
||||
"version": "v5.2.0",
|
||||
"version": "v5.2.1",
|
||||
"pinned": false,
|
||||
"date": "2026-01-05T05:56:57Z"
|
||||
"date": "2026-02-10T07:38:47Z"
|
||||
},
|
||||
{
|
||||
"slug": "mylar3",
|
||||
@@ -837,9 +858,9 @@
|
||||
{
|
||||
"slug": "navidrome",
|
||||
"repo": "navidrome/navidrome",
|
||||
"version": "v0.60.2",
|
||||
"version": "v0.60.3",
|
||||
"pinned": false,
|
||||
"date": "2026-02-07T19:42:33Z"
|
||||
"date": "2026-02-10T23:55:04Z"
|
||||
},
|
||||
{
|
||||
"slug": "netbox",
|
||||
@@ -848,6 +869,13 @@
|
||||
"pinned": false,
|
||||
"date": "2026-02-03T13:54:26Z"
|
||||
},
|
||||
{
|
||||
"slug": "nextcloud-exporter",
|
||||
"repo": "xperimental/nextcloud-exporter",
|
||||
"version": "v0.9.0",
|
||||
"pinned": false,
|
||||
"date": "2025-10-12T20:03:10Z"
|
||||
},
|
||||
{
|
||||
"slug": "nginx-ui",
|
||||
"repo": "0xJacky/nginx-ui",
|
||||
@@ -1037,6 +1065,13 @@
|
||||
"pinned": false,
|
||||
"date": "2025-12-01T05:07:31Z"
|
||||
},
|
||||
{
|
||||
"slug": "pihole-exporter",
|
||||
"repo": "eko/pihole-exporter",
|
||||
"version": "v1.2.0",
|
||||
"pinned": false,
|
||||
"date": "2025-07-29T19:15:37Z"
|
||||
},
|
||||
{
|
||||
"slug": "planka",
|
||||
"repo": "plankanban/planka",
|
||||
@@ -1131,9 +1166,9 @@
|
||||
{
|
||||
"slug": "pulse",
|
||||
"repo": "rcourtman/Pulse",
|
||||
"version": "v5.1.6",
|
||||
"version": "v5.1.8",
|
||||
"pinned": false,
|
||||
"date": "2026-02-09T14:43:03Z"
|
||||
"date": "2026-02-10T22:37:58Z"
|
||||
},
|
||||
{
|
||||
"slug": "pve-scripts-local",
|
||||
@@ -1149,6 +1184,13 @@
|
||||
"pinned": false,
|
||||
"date": "2025-11-19T23:54:34Z"
|
||||
},
|
||||
{
|
||||
"slug": "qbittorrent-exporter",
|
||||
"repo": "martabal/qbittorrent-exporter",
|
||||
"version": "v1.13.2",
|
||||
"pinned": false,
|
||||
"date": "2025-12-13T22:59:03Z"
|
||||
},
|
||||
{
|
||||
"slug": "qdrant",
|
||||
"repo": "qdrant/qdrant",
|
||||
@@ -1236,16 +1278,16 @@
|
||||
{
|
||||
"slug": "scanopy",
|
||||
"repo": "scanopy/scanopy",
|
||||
"version": "v0.14.3",
|
||||
"version": "v0.14.4",
|
||||
"pinned": false,
|
||||
"date": "2026-02-04T01:41:01Z"
|
||||
"date": "2026-02-10T03:57:28Z"
|
||||
},
|
||||
{
|
||||
"slug": "scraparr",
|
||||
"repo": "thecfu/scraparr",
|
||||
"version": "v2.2.5",
|
||||
"version": "v3.0.0",
|
||||
"pinned": false,
|
||||
"date": "2025-10-07T12:34:31Z"
|
||||
"date": "2026-02-10T22:30:44Z"
|
||||
},
|
||||
{
|
||||
"slug": "seelf",
|
||||
@@ -1282,6 +1324,13 @@
|
||||
"pinned": false,
|
||||
"date": "2026-01-16T12:08:28Z"
|
||||
},
|
||||
{
|
||||
"slug": "slskd",
|
||||
"repo": "slskd/slskd",
|
||||
"version": "0.24.3",
|
||||
"pinned": false,
|
||||
"date": "2026-01-15T14:40:15Z"
|
||||
},
|
||||
{
|
||||
"slug": "snipeit",
|
||||
"repo": "grokability/snipe-it",
|
||||
@@ -1292,9 +1341,9 @@
|
||||
{
|
||||
"slug": "snowshare",
|
||||
"repo": "TuroYT/snowshare",
|
||||
"version": "v1.3.3",
|
||||
"version": "v1.3.4",
|
||||
"pinned": false,
|
||||
"date": "2026-02-09T10:52:12Z"
|
||||
"date": "2026-02-10T14:17:26Z"
|
||||
},
|
||||
{
|
||||
"slug": "sonarr",
|
||||
@@ -1418,9 +1467,9 @@
|
||||
{
|
||||
"slug": "tracearr",
|
||||
"repo": "connorgallopo/Tracearr",
|
||||
"version": "v1.4.12",
|
||||
"version": "v1.4.16",
|
||||
"pinned": false,
|
||||
"date": "2026-01-28T23:29:37Z"
|
||||
"date": "2026-02-10T20:55:35Z"
|
||||
},
|
||||
{
|
||||
"slug": "tracktor",
|
||||
@@ -1446,9 +1495,9 @@
|
||||
{
|
||||
"slug": "trip",
|
||||
"repo": "itskovacs/TRIP",
|
||||
"version": "1.39.0",
|
||||
"version": "1.40.0",
|
||||
"pinned": false,
|
||||
"date": "2026-02-07T16:59:51Z"
|
||||
"date": "2026-02-10T20:12:53Z"
|
||||
},
|
||||
{
|
||||
"slug": "tududi",
|
||||
@@ -1509,9 +1558,9 @@
|
||||
{
|
||||
"slug": "vaultwarden",
|
||||
"repo": "dani-garcia/vaultwarden",
|
||||
"version": "1.35.2",
|
||||
"version": "1.35.3",
|
||||
"pinned": false,
|
||||
"date": "2026-01-09T18:37:04Z"
|
||||
"date": "2026-02-10T20:37:03Z"
|
||||
},
|
||||
{
|
||||
"slug": "victoriametrics",
|
||||
@@ -1537,9 +1586,9 @@
|
||||
{
|
||||
"slug": "wallos",
|
||||
"repo": "ellite/Wallos",
|
||||
"version": "v4.6.0",
|
||||
"version": "v4.6.1",
|
||||
"pinned": false,
|
||||
"date": "2025-12-20T15:57:51Z"
|
||||
"date": "2026-02-10T21:06:46Z"
|
||||
},
|
||||
{
|
||||
"slug": "wanderer",
|
||||
@@ -1607,9 +1656,9 @@
|
||||
{
|
||||
"slug": "wishlist",
|
||||
"repo": "cmintey/wishlist",
|
||||
"version": "v0.59.0",
|
||||
"version": "v0.60.0",
|
||||
"pinned": false,
|
||||
"date": "2026-01-19T16:42:14Z"
|
||||
"date": "2026-02-10T04:05:26Z"
|
||||
},
|
||||
{
|
||||
"slug": "wizarr",
|
||||
|
||||
@@ -1,44 +1,35 @@
|
||||
{
|
||||
"name": "Prometheus Paperless NGX Exporter",
|
||||
"slug": "prometheus-paperless-ngx-exporter",
|
||||
"categories": [
|
||||
9
|
||||
],
|
||||
"date_created": "2025-02-07",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 8081,
|
||||
"documentation": null,
|
||||
"website": "https://github.com/hansmi/prometheus-paperless-exporter",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/paperless-ngx.webp",
|
||||
"config_path": "",
|
||||
"description": "Prometheus metrics exporter for Paperless-NGX, a document management system transforming physical documents into a searchable online archive. The exporter relies on Paperless' REST API.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/prometheus-paperless-ngx-exporter.sh",
|
||||
"resources": {
|
||||
"cpu": 1,
|
||||
"ram": 256,
|
||||
"hdd": 2,
|
||||
"os": "debian",
|
||||
"version": "13"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": [
|
||||
{
|
||||
"text": "Please adjust the Paperless URL in the systemd unit file: /etc/systemd/system/prometheus-paperless-ngx-exporter.service",
|
||||
"type": "info"
|
||||
},
|
||||
{
|
||||
"text": "Please adjust the Paperless authentication token in the configuration file: /etc/prometheus-paperless-ngx-exporter/paperless_auth_token_file",
|
||||
"type": "info"
|
||||
}
|
||||
]
|
||||
"name": "Prometheus Paperless NGX Exporter",
|
||||
"slug": "prometheus-paperless-ngx-exporter",
|
||||
"categories": [
|
||||
9
|
||||
],
|
||||
"date_created": "2025-02-07",
|
||||
"type": "addon",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 8081,
|
||||
"documentation": "https://github.com/hansmi/prometheus-paperless-exporter",
|
||||
"website": "https://github.com/hansmi/prometheus-paperless-exporter",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/paperless-ngx.webp",
|
||||
"config_path": "/etc/prometheus-paperless-ngx-exporter/config.env",
|
||||
"description": "Prometheus metrics exporter for Paperless-NGX, a document management system transforming physical documents into a searchable online archive. The exporter relies on Paperless' REST API.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "tools/addon/prometheus-paperless-ngx-exporter.sh",
|
||||
"resources": {
|
||||
"cpu": null,
|
||||
"ram": null,
|
||||
"hdd": null,
|
||||
"os": null,
|
||||
"version": null
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": []
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "slskd",
|
||||
"name": "Slskd",
|
||||
"slug": "slskd",
|
||||
"categories": [
|
||||
11
|
||||
@@ -35,10 +35,6 @@
|
||||
{
|
||||
"text": "See /opt/slskd/config/slskd.yml to add your Soulseek credentials",
|
||||
"type": "info"
|
||||
},
|
||||
{
|
||||
"text": "This LXC includes Soularr; it needs to be configured (/opt/soularr/config.ini) before it will work",
|
||||
"type": "info"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"privileged": false,
|
||||
"interface_port": 3000,
|
||||
"documentation": "https://github.com/TuroYT/snowshare",
|
||||
"config_path": "/opt/snowshare/.env",
|
||||
"config_path": "/opt/snowshare.env",
|
||||
"website": "https://github.com/TuroYT/snowshare",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/snowshare.png",
|
||||
"description": "A modern, secure file and link sharing platform built with Next.js, Prisma, and NextAuth. Share URLs, code snippets, and files with customizable expiration, privacy, and QR codes.",
|
||||
|
||||
@@ -31,8 +31,10 @@ setup_deb822_repo "matrix-org" \
|
||||
"main"
|
||||
echo "matrix-synapse-py3 matrix-synapse/server-name string $servername" | debconf-set-selections
|
||||
echo "matrix-synapse-py3 matrix-synapse/report-stats boolean false" | debconf-set-selections
|
||||
echo "exit 101" >/usr/sbin/policy-rc.d
|
||||
chmod +x /usr/sbin/policy-rc.d
|
||||
$STD apt install matrix-synapse-py3 -y
|
||||
systemctl stop matrix-synapse
|
||||
rm -f /usr/sbin/policy-rc.d
|
||||
sed -i 's/127.0.0.1/0.0.0.0/g' /etc/matrix-synapse/homeserver.yaml
|
||||
sed -i 's/'\''::1'\'', //g' /etc/matrix-synapse/homeserver.yaml
|
||||
SECRET=$(openssl rand -hex 32)
|
||||
|
||||
@@ -289,7 +289,7 @@ ML_DIR="${APP_DIR}/machine-learning"
|
||||
GEO_DIR="${INSTALL_DIR}/geodata"
|
||||
mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${INSTALL_DIR}"/cache}
|
||||
|
||||
fetch_and_deploy_gh_release "Immich" "immich-app/immich" "tarball" "v2.5.5" "$SRC_DIR"
|
||||
fetch_and_deploy_gh_release "Immich" "immich-app/immich" "tarball" "v2.5.6" "$SRC_DIR"
|
||||
PNPM_VERSION="$(jq -r '.packageManager | split("@")[1]' ${SRC_DIR}/package.json)"
|
||||
NODE_VERSION="24" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
|
||||
|
||||
|
||||
@@ -45,7 +45,8 @@ fi
|
||||
cd /opt/libretranslate
|
||||
$STD uv venv --clear .venv --python 3.12
|
||||
$STD source .venv/bin/activate
|
||||
$STD uv pip install --upgrade pip setuptools
|
||||
$STD uv pip install --upgrade pip
|
||||
$STD uv pip install "setuptools<81"
|
||||
$STD uv pip install Babel==2.12.1
|
||||
$STD .venv/bin/python scripts/compile_locales.py
|
||||
$STD uv pip install "torch==${TORCH_VERSION}" --extra-index-url https://download.pytorch.org/whl/cpu
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: Andy Grunwald (andygrunwald)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/hansmi/prometheus-paperless-exporter
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
fetch_and_deploy_gh_release "prom-paperless-exp" "hansmi/prometheus-paperless-exporter" "binary"
|
||||
|
||||
msg_info "Configuring Prometheus Paperless NGX Exporter"
|
||||
mkdir -p /etc/prometheus-paperless-ngx-exporter
|
||||
echo "SECRET_AUTH_TOKEN" >/etc/prometheus-paperless-ngx-exporter/paperless_auth_token_file
|
||||
msg_ok "Configured Prometheus Paperless NGX Exporter"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/prometheus-paperless-ngx-exporter.service
|
||||
[Unit]
|
||||
Description=Prometheus Paperless NGX Exporter
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
User=root
|
||||
Restart=always
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/prometheus-paperless-exporter \
|
||||
--paperless_url=http://paperless.example.org \
|
||||
--paperless_auth_token_file=/etc/prometheus-paperless-ngx-exporter/paperless_auth_token_file
|
||||
ExecReload=/bin/kill -HUP \$MAINPID
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now prometheus-paperless-ngx-exporter
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
cleanup_lxc
|
||||
+51
-52
@@ -3,7 +3,7 @@
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: vhsdream
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/slskd/slskd/, https://soularr.net
|
||||
# Source: https://github.com/slskd/slskd/, https://github.com/mrusse/soularr
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
@@ -13,71 +13,71 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt install -y \
|
||||
python3-pip
|
||||
msg_ok "Installed Dependencies"
|
||||
fetch_and_deploy_gh_release "Slskd" "slskd/slskd" "prebuild" "latest" "/opt/slskd" "slskd-*-linux-x64.zip"
|
||||
|
||||
msg_info "Setup ${APPLICATION}"
|
||||
tmp_file=$(mktemp)
|
||||
RELEASE=$(curl -s https://api.github.com/repos/slskd/slskd/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
curl -fsSL "https://github.com/slskd/slskd/releases/download/${RELEASE}/slskd-${RELEASE}-linux-x64.zip" -o $tmp_file
|
||||
$STD unzip $tmp_file -d /opt/${APPLICATION}
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
msg_info "Configuring Slskd"
|
||||
JWT_KEY=$(openssl rand -base64 44)
|
||||
SLSKD_API_KEY=$(openssl rand -base64 44)
|
||||
cp /opt/${APPLICATION}/config/slskd.example.yml /opt/${APPLICATION}/config/slskd.yml
|
||||
cp /opt/slskd/config/slskd.example.yml /opt/slskd/config/slskd.yml
|
||||
sed -i \
|
||||
-e "\|web:|,\|cidr|s|^#||" \
|
||||
-e "\|https:|,\|5031|s|false|true|" \
|
||||
-e '/web:/,/cidr/s/^# //' \
|
||||
-e '/https:/,/port: 5031/s/false/true/' \
|
||||
-e '/port: 5030/,/socket/s/,.*$//' \
|
||||
-e '/content_path:/,/authentication/s/false/true/' \
|
||||
-e "\|api_keys|,\|cidr|s|<some.*$|$SLSKD_API_KEY|; \
|
||||
s|role: readonly|role: readwrite|; \
|
||||
s|0.0.0.0/0,::/0|& # Replace this with your subnet|" \
|
||||
-e "\|soulseek|,\|write_queue|s|^#||" \
|
||||
-e "\|jwt:|,\|ttl|s|key: ~|key: $JWT_KEY|" \
|
||||
-e "s|^ picture|# picture|" \
|
||||
/opt/${APPLICATION}/config/slskd.yml
|
||||
msg_ok "Setup ${APPLICATION}"
|
||||
-e '/soulseek/,/write_queue/s/^# //' \
|
||||
-e 's/^.*picture/#&/' /opt/slskd/config/slskd.yml
|
||||
msg_ok "Configured Slskd"
|
||||
|
||||
msg_info "Installing Soularr"
|
||||
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
|
||||
cd /tmp
|
||||
curl -fsSL -o main.zip https://github.com/mrusse/soularr/archive/refs/heads/main.zip
|
||||
$STD unzip main.zip
|
||||
mv soularr-main /opt/soularr
|
||||
cd /opt/soularr
|
||||
$STD pip install -r requirements.txt
|
||||
sed -i \
|
||||
-e "\|[Slskd]|,\|host_url|s|yourslskdapikeygoeshere|$SLSKD_API_KEY|" \
|
||||
-e "/host_url/s/slskd/localhost/" \
|
||||
/opt/soularr/config.ini
|
||||
sed -i \
|
||||
-e "/#This\|#Default\|INTERVAL/{N;d;}" \
|
||||
-e "/while\|#Pass/d" \
|
||||
-e "\|python|s|app|opt/soularr|; s|python|python3|" \
|
||||
-e "/dt/,+2d" \
|
||||
/opt/soularr/run.sh
|
||||
sed -i -E "/(soularr.py)/s/.{5}$//; /if/,/fi/s/.{4}//" /opt/soularr/run.sh
|
||||
chmod +x /opt/soularr/run.sh
|
||||
msg_ok "Installed Soularr"
|
||||
read -rp "${TAB3}Do you want to install Soularr? y/N " soularr
|
||||
if [[ ${soularr,,} =~ ^(y|yes)$ ]]; then
|
||||
PYTHON_VERSION="3.11" setup_uv
|
||||
fetch_and_deploy_gh_release "Soularr" "mrusse/soularr" "tarball" "latest" "/opt/soularr"
|
||||
cd /opt/soularr
|
||||
$STD uv venv venv
|
||||
$STD source venv/bin/activate
|
||||
$STD uv pip install -r requirements.txt
|
||||
sed -i \
|
||||
-e "\|[Slskd]|,\|host_url|s|yourslskdapikeygoeshere|$SLSKD_API_KEY|" \
|
||||
-e "/host_url/s/slskd/localhost/" \
|
||||
/opt/soularr/config.ini
|
||||
cat <<EOF >/opt/soularr/run.sh
|
||||
#!/usr/bin/env bash
|
||||
|
||||
msg_info "Creating Services"
|
||||
cat <<EOF >/etc/systemd/system/${APPLICATION}.service
|
||||
if ps aux | grep "[s]oularr.py" >/dev/null; then
|
||||
echo "Soularr is already running. Exiting..."
|
||||
exit 1
|
||||
else
|
||||
source /opt/soularr/venv/bin/activate
|
||||
uv run python3 -u /opt/soularr/soularr.py --config-dir /opt/soularr
|
||||
fi
|
||||
EOF
|
||||
chmod +x /opt/soularr/run.sh
|
||||
deactivate
|
||||
msg_ok "Installed Soularr"
|
||||
fi
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/slskd.service
|
||||
[Unit]
|
||||
Description=${APPLICATION} Service
|
||||
Description=Slskd Service
|
||||
After=network.target
|
||||
Wants=network.target
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/opt/${APPLICATION}
|
||||
ExecStart=/opt/${APPLICATION}/slskd --config /opt/${APPLICATION}/config/slskd.yml
|
||||
WorkingDirectory=/opt/slskd
|
||||
ExecStart=/opt/slskd/slskd --config /opt/slskd/config/slskd.yml
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
cat <<EOF >/etc/systemd/system/soularr.timer
|
||||
if [[ -d /opt/soularr ]]; then
|
||||
cat <<EOF >/etc/systemd/system/soularr.timer
|
||||
[Unit]
|
||||
Description=Soularr service timer
|
||||
RefuseManualStart=no
|
||||
@@ -85,15 +85,15 @@ RefuseManualStop=no
|
||||
|
||||
[Timer]
|
||||
Persistent=true
|
||||
# run every 5 minutes
|
||||
OnCalendar=*-*-* *:0/5:00
|
||||
# run every 10 minutes
|
||||
OnCalendar=*-*-* *:0/10:00
|
||||
Unit=soularr.service
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
EOF
|
||||
|
||||
cat <<EOF >/etc/systemd/system/soularr.service
|
||||
cat <<EOF >/etc/systemd/system/soularr.service
|
||||
[Unit]
|
||||
Description=Soularr service
|
||||
After=network.target slskd.service
|
||||
@@ -106,10 +106,9 @@ ExecStart=/bin/bash -c /opt/soularr/run.sh
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now ${APPLICATION}
|
||||
systemctl enable -q soularr.timer
|
||||
rm -rf $tmp_file
|
||||
rm -rf /tmp/main.zip
|
||||
msg_warn "Add your Lidarr API key to Soularr in '/opt/soularr/config.ini', then run 'systemctl enable --now soularr.timer'"
|
||||
fi
|
||||
systemctl enable -q --now slskd
|
||||
msg_ok "Created Services"
|
||||
|
||||
motd_ssh
|
||||
|
||||
@@ -0,0 +1,188 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: Andy Grunwald (andygrunwald)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/hansmi/prometheus-paperless-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="prometheus-paperless-ngx-exporter"
|
||||
APP_TYPE="tools"
|
||||
BINARY_PATH="/usr/bin/prometheus-paperless-exporter"
|
||||
CONFIG_PATH="/etc/prometheus-paperless-ngx-exporter/config.env"
|
||||
SERVICE_PATH="/etc/systemd/system/prometheus-paperless-ngx-exporter.service"
|
||||
AUTH_TOKEN_FILE="/etc/prometheus-paperless-ngx-exporter/paperless_auth_token_file"
|
||||
|
||||
# ==============================================================================
|
||||
# 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 Prometheus-Paperless-NGX-Exporter"
|
||||
systemctl disable -q --now prometheus-paperless-ngx-exporter
|
||||
|
||||
if dpkg -l | grep -q prometheus-paperless-exporter; then
|
||||
$STD apt-get remove -y prometheus-paperless-exporter || $STD dpkg -r prometheus-paperless-exporter
|
||||
fi
|
||||
|
||||
rm -f "$SERVICE_PATH"
|
||||
rm -rf /etc/prometheus-paperless-ngx-exporter
|
||||
rm -f "/usr/local/bin/update_prometheus-paperless-ngx-exporter"
|
||||
rm -f "$HOME/.prometheus-paperless-ngx-exporter"
|
||||
msg_ok "Prometheus-Paperless-NGX-Exporter has been uninstalled"
|
||||
}
|
||||
|
||||
# ==============================================================================
|
||||
# UPDATE
|
||||
# ==============================================================================
|
||||
function update() {
|
||||
if check_for_gh_release "prom-paperless-exp" "hansmi/prometheus-paperless-exporter"; then
|
||||
msg_info "Stopping service"
|
||||
systemctl stop prometheus-paperless-ngx-exporter
|
||||
msg_ok "Stopped service"
|
||||
|
||||
fetch_and_deploy_gh_release "prom-paperless-exp" "hansmi/prometheus-paperless-exporter" "binary" "latest"
|
||||
|
||||
msg_info "Starting service"
|
||||
systemctl start prometheus-paperless-ngx-exporter
|
||||
msg_ok "Started service"
|
||||
msg_ok "Updated successfully!"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
# ==============================================================================
|
||||
# INSTALL
|
||||
# ==============================================================================
|
||||
function install() {
|
||||
read -erp "Enter URL of Paperless-NGX, example: (http://127.0.0.1:8000): " PAPERLESS_URL
|
||||
read -rsp "Enter Paperless-NGX authentication token: " PAPERLESS_AUTH_TOKEN
|
||||
printf "\n"
|
||||
|
||||
fetch_and_deploy_gh_release "prom-paperless-exp" "hansmi/prometheus-paperless-exporter" "binary" "latest"
|
||||
|
||||
msg_info "Creating configuration"
|
||||
mkdir -p /etc/prometheus-paperless-ngx-exporter
|
||||
cat <<EOF >"$CONFIG_PATH"
|
||||
# https://github.com/hansmi/prometheus-paperless-exporter
|
||||
PAPERLESS_URL="${PAPERLESS_URL}"
|
||||
EOF
|
||||
echo "${PAPERLESS_AUTH_TOKEN}" >"$AUTH_TOKEN_FILE"
|
||||
chmod 600 "$AUTH_TOKEN_FILE"
|
||||
msg_ok "Created configuration"
|
||||
|
||||
msg_info "Creating service"
|
||||
cat <<EOF >"$SERVICE_PATH"
|
||||
[Unit]
|
||||
Description=Prometheus Paperless NGX Exporter
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
User=root
|
||||
EnvironmentFile=$CONFIG_PATH
|
||||
ExecStart=$BINARY_PATH \\
|
||||
--paperless_url=\${PAPERLESS_URL} \\
|
||||
--paperless_auth_token_file=$AUTH_TOKEN_FILE
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl daemon-reload
|
||||
systemctl enable -q --now prometheus-paperless-ngx-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_prometheus-paperless-ngx-exporter
|
||||
#!/usr/bin/env bash
|
||||
# prometheus-paperless-ngx-exporter Update Script
|
||||
type=update bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/prometheus-paperless-ngx-exporter.sh)"
|
||||
UPDATEEOF
|
||||
chmod +x /usr/local/bin/update_prometheus-paperless-ngx-exporter
|
||||
msg_ok "Created update script (/usr/local/bin/update_prometheus-paperless-ngx-exporter)"
|
||||
|
||||
echo ""
|
||||
msg_ok "Prometheus-Paperless-NGX-Exporter installed successfully"
|
||||
msg_ok "Metrics: ${BL}http://${LOCAL_IP}:8081/metrics${CL}"
|
||||
msg_ok "Config: ${BL}${CONFIG_PATH}${CL}"
|
||||
}
|
||||
|
||||
# ==============================================================================
|
||||
# MAIN
|
||||
# ==============================================================================
|
||||
header_info
|
||||
ensure_usr_local_bin_persist
|
||||
get_lxc_ip
|
||||
|
||||
# Handle type=update (called from update script)
|
||||
if [[ "${type:-}" == "update" ]]; then
|
||||
if [[ -f "$BINARY_PATH" ]]; then
|
||||
update
|
||||
else
|
||||
msg_error "Prometheus-Paperless-NGX-Exporter is not installed. Nothing to update."
|
||||
exit 1
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Check if already installed
|
||||
if [[ -f "$BINARY_PATH" ]]; then
|
||||
msg_warn "Prometheus-Paperless-NGX-Exporter is already installed."
|
||||
echo ""
|
||||
|
||||
echo -n "${TAB}Uninstall Prometheus-Paperless-NGX-Exporter? (y/N): "
|
||||
read -r uninstall_prompt
|
||||
if [[ "${uninstall_prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||
uninstall
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo -n "${TAB}Update Prometheus-Paperless-NGX-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 "Prometheus-Paperless-NGX-Exporter is not installed."
|
||||
echo ""
|
||||
echo -e "${TAB}${INFO} This will install:"
|
||||
echo -e "${TAB} - Prometheus Paperless NGX Exporter (binary)"
|
||||
echo -e "${TAB} - Systemd service"
|
||||
echo ""
|
||||
|
||||
echo -n "${TAB}Install Prometheus-Paperless-NGX-Exporter? (y/N): "
|
||||
read -r install_prompt
|
||||
if [[ "${install_prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||
install
|
||||
else
|
||||
msg_warn "Installation cancelled. Exiting."
|
||||
exit 0
|
||||
fi
|
||||
@@ -0,0 +1,6 @@
|
||||
__ __ __ __
|
||||
____ _________ ____ ___ ___ / /_/ /_ ___ __ _______ ____ ____ _____ ___ _____/ /__ __________ ____ ____ __ __ ___ _ ______ ____ _____/ /____ _____
|
||||
/ __ \/ ___/ __ \/ __ `__ \/ _ \/ __/ __ \/ _ \/ / / / ___/_____/ __ \/ __ `/ __ \/ _ \/ ___/ / _ \/ ___/ ___/_____/ __ \/ __ `/ |/_/_____/ _ \| |/_/ __ \/ __ \/ ___/ __/ _ \/ ___/
|
||||
/ /_/ / / / /_/ / / / / / / __/ /_/ / / / __/ /_/ (__ )_____/ /_/ / /_/ / /_/ / __/ / / / __(__ |__ )_____/ / / / /_/ /> </_____/ __/> </ /_/ / /_/ / / / /_/ __/ /
|
||||
/ .___/_/ \____/_/ /_/ /_/\___/\__/_/ /_/\___/\__,_/____/ / .___/\__,_/ .___/\___/_/ /_/\___/____/____/ /_/ /_/\__, /_/|_| \___/_/|_/ .___/\____/_/ \__/\___/_/
|
||||
/_/ /_/ /_/ /____/ /_/
|
||||
@@ -131,7 +131,7 @@ function detect_service() {
|
||||
|
||||
function backup_container() {
|
||||
msg_info "Creating backup for container $1"
|
||||
vzdump $1 --compress zstd --storage $STORAGE_CHOICE -notes-template "community-scripts backup updater" >/dev/null 2>&1
|
||||
vzdump $1 --compress zstd --storage $STORAGE_CHOICE -notes-template "{{guestname}} - community-scripts backup updater" >/dev/null 2>&1
|
||||
status=$?
|
||||
|
||||
if [ $status -eq 0 ]; then
|
||||
@@ -151,11 +151,11 @@ function get_backup_storages() {
|
||||
split($0, a, ":")
|
||||
type = a[1]
|
||||
name = a[2]
|
||||
sub(/^ +/, "", name)
|
||||
gsub(/^[ \t]+|[ \t]+$/, "", name)
|
||||
has_content = 0
|
||||
has_backup = 0
|
||||
}
|
||||
/^ +content/ {
|
||||
/^[ \t]*content/ {
|
||||
has_content = 1
|
||||
if ($0 ~ /backup/) has_backup = 1
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user