Compare commits
11 Commits
2025-10-13
...
add-script
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a46a4fde11 | ||
|
|
d830cb9eb2 | ||
|
|
4fd579f5f0 | ||
|
|
2d807eedab | ||
|
|
7c2bfc7c38 | ||
|
|
67445bd9ed | ||
|
|
0303e93c40 | ||
|
|
53f397512a | ||
|
|
f303b5e3ef | ||
|
|
13098ec5b7 | ||
|
|
36726e2263 |
12
CHANGELOG.md
12
CHANGELOG.md
@@ -10,8 +10,20 @@
|
||||
> [!CAUTION]
|
||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
||||
|
||||
## 2025-10-15
|
||||
|
||||
## 2025-10-14
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- MediaManager: Use managed Python 3.13 [@vhsdream](https://github.com/vhsdream) ([#8343](https://github.com/community-scripts/ProxmoxVE/pull/8343))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Update cockpit installation/update [@burgerga](https://github.com/burgerga) ([#8346](https://github.com/community-scripts/ProxmoxVE/pull/8346))
|
||||
|
||||
## 2025-10-13
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
@@ -27,73 +27,12 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \
|
||||
"1" "Update LXC" ON \
|
||||
"2" "Install cockpit-file-sharing" OFF \
|
||||
"3" "Install cockpit-identities" OFF \
|
||||
"4" "Install cockpit-navigator" OFF \
|
||||
3>&1 1>&2 2>&3)
|
||||
|
||||
if [ "$UPD" == "1" ]; then
|
||||
msg_info "Updating ${APP} LXC"
|
||||
$STD apt update
|
||||
$STD apt -y upgrade
|
||||
msg_ok "Updated ${APP} LXC"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ "$UPD" == "2" ]; then
|
||||
msg_info "Installing dependencies (patience)"
|
||||
$STD apt install -y \
|
||||
attr \
|
||||
nfs-kernel-server \
|
||||
samba \
|
||||
samba-common-bin \
|
||||
winbind \
|
||||
gawk
|
||||
msg_ok "Installed dependencies"
|
||||
msg_info "Installing Cockpit file sharing"
|
||||
URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
|
||||
FILE=$(basename "$URL")
|
||||
curl -fsSL "$URL" -o "$FILE"
|
||||
$STD dpkg -i "$FILE" || $STD apt install -f -y
|
||||
rm -f "$FILE"
|
||||
msg_ok "Installed Cockpit file sharing"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ "$UPD" == "3" ]; then
|
||||
msg_info "Installing dependencies (patience)"
|
||||
$STD apt install -y \
|
||||
psmisc \
|
||||
samba \
|
||||
samba-common-bin
|
||||
msg_ok "Installed dependencies"
|
||||
msg_info "Installing Cockpit identities"
|
||||
URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
|
||||
FILE=$(basename "$URL")
|
||||
curl -fsSL "$URL" -o "$FILE"
|
||||
$STD dpkg -i "$FILE" || $STD apt install -f -y
|
||||
rm -f "$FILE"
|
||||
msg_ok "Installed Cockpit identities"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ "$UPD" == "4" ]; then
|
||||
msg_info "Installing dependencies"
|
||||
$STD apt install -y \
|
||||
rsync \
|
||||
zip
|
||||
msg_ok "Installed dependencies"
|
||||
msg_info "Installing Cockpit navigator"
|
||||
URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
|
||||
FILE=$(basename "$URL")
|
||||
curl -fsSL "$URL" -o "$FILE"
|
||||
$STD dpkg -i "$FILE" || $STD apt install -f -y
|
||||
rm -f "$FILE"
|
||||
msg_ok "Installed Cockpit navigator"
|
||||
exit
|
||||
fi
|
||||
|
||||
msg_info "Updating ${APP} LXC"
|
||||
$STD apt update
|
||||
$STD apt -y upgrade
|
||||
msg_ok "Updated ${APP} LXC"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
|
||||
79
ct/guardian.sh
Executable file
79
ct/guardian.sh
Executable file
@@ -0,0 +1,79 @@
|
||||
#!/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: HydroshieldMKII
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/HydroshieldMKII/Guardian
|
||||
|
||||
APP="Guardian"
|
||||
var_tags="${var_tags:-media;monitoring}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-6}"
|
||||
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/guardian" ]] ; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "guardian" "HydroshieldMKII/Guardian" ; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop guardian-backend guardian-frontend
|
||||
msg_ok "Stopped Services"
|
||||
|
||||
if [[ -f "/opt/guardian/backend/plex-guard.db" ]] ; then
|
||||
msg_info "Backing up Database"
|
||||
cp "/opt/guardian/backend/plex-guard.db" "/tmp/plex-guard.db.backup"
|
||||
msg_ok "Backed up Database"
|
||||
fi
|
||||
|
||||
cp /opt/guardian/.env /opt
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "guardian" "HydroshieldMKII/Guardian" "tarball" "latest" "/opt/guardian"
|
||||
mv /opt/.env /opt/guardian
|
||||
|
||||
if [[ -f "/tmp/plex-guard.db.backup" ]] ; then
|
||||
msg_info "Restoring Database"
|
||||
cp "/tmp/plex-guard.db.backup" "/opt/guardian/backend/plex-guard.db"
|
||||
rm "/tmp/plex-guard.db.backup"
|
||||
msg_ok "Restored Database"
|
||||
fi
|
||||
|
||||
msg_info "Updating Guardian"
|
||||
cd /opt/guardian/backend
|
||||
$STD npm ci
|
||||
$STD npm run build
|
||||
|
||||
cd /opt/guardian/frontend
|
||||
$STD npm ci
|
||||
$STD DEPLOYMENT_MODE=standalone npm run build
|
||||
msg_ok "Updated Guardian"
|
||||
|
||||
msg_info "Starting Services"
|
||||
systemctl start guardian-backend guardian-frontend
|
||||
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}"
|
||||
6
ct/headers/guardian
Normal file
6
ct/headers/guardian
Normal file
@@ -0,0 +1,6 @@
|
||||
______ ___
|
||||
/ ____/_ ______ __________/ (_)___ _____
|
||||
/ / __/ / / / __ `/ ___/ __ / / __ `/ __ \
|
||||
/ /_/ / /_/ / /_/ / / / /_/ / / /_/ / / / /
|
||||
\____/\__,_/\__,_/_/ \__,_/_/\__,_/_/ /_/
|
||||
|
||||
@@ -54,7 +54,7 @@ function update_script() {
|
||||
cd /opt/mediamanager
|
||||
rm -rf "$MM_DIR"/{media_manager,alembic*}
|
||||
cp -r {media_manager,alembic*} "$MM_DIR"
|
||||
$STD /usr/local/bin/uv sync --locked --active
|
||||
$STD /usr/local/bin/uv sync --locked --active -n -p cpython3.13 --managed-python
|
||||
msg_ok "Updated $APP"
|
||||
|
||||
msg_info "Starting Service"
|
||||
|
||||
35
frontend/public/json/guardian.json
Normal file
35
frontend/public/json/guardian.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"name": "Guardian",
|
||||
"slug": "guardian",
|
||||
"categories": [
|
||||
13
|
||||
],
|
||||
"date_created": "2025-09-22",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 3000,
|
||||
"documentation": "https://github.com/HydroshieldMKII/Guardian/blob/main/README.md",
|
||||
"config_path": "/opt/guardian/.env",
|
||||
"website": "https://github.com/HydroshieldMKII/Guardian",
|
||||
"logo": null,
|
||||
"description": "Guardian is a lightweight companion app for Plex that lets you monitor, approve or block devices in real time. It helps you enforce per-user or global policies, stop unwanted sessions automatically and grant temporary access - all through a simple web interface.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/guardian.sh",
|
||||
"resources": {
|
||||
"cpu": 2,
|
||||
"ram": 2048,
|
||||
"hdd": 6,
|
||||
"os": "Debian",
|
||||
"version": "13"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": []
|
||||
}
|
||||
@@ -1,4 +1,194 @@
|
||||
[
|
||||
{
|
||||
"name": "Graylog2/graylog2-server",
|
||||
"version": "7.0.0-beta.5",
|
||||
"date": "2025-10-15T11:43:16Z"
|
||||
},
|
||||
{
|
||||
"name": "blakeblackshear/frigate",
|
||||
"version": "v0.14.1",
|
||||
"date": "2024-08-29T22:32:51Z"
|
||||
},
|
||||
{
|
||||
"name": "prometheus/prometheus",
|
||||
"version": "v0.307.0",
|
||||
"date": "2025-10-15T11:13:27Z"
|
||||
},
|
||||
{
|
||||
"name": "crowdsecurity/crowdsec",
|
||||
"version": "v1.7.0",
|
||||
"date": "2025-09-01T10:10:34Z"
|
||||
},
|
||||
{
|
||||
"name": "jenkinsci/jenkins",
|
||||
"version": "jenkins-2.528.1",
|
||||
"date": "2025-10-15T10:42:28Z"
|
||||
},
|
||||
{
|
||||
"name": "mattermost/mattermost",
|
||||
"version": "v10.12.1",
|
||||
"date": "2025-10-15T08:15:09Z"
|
||||
},
|
||||
{
|
||||
"name": "openobserve/openobserve",
|
||||
"version": "v0.15.2",
|
||||
"date": "2025-10-15T07:42:29Z"
|
||||
},
|
||||
{
|
||||
"name": "msgbyte/tianji",
|
||||
"version": "v1.27.12",
|
||||
"date": "2025-10-15T07:10:05Z"
|
||||
},
|
||||
{
|
||||
"name": "wavelog/wavelog",
|
||||
"version": "2.1.2",
|
||||
"date": "2025-10-15T06:51:32Z"
|
||||
},
|
||||
{
|
||||
"name": "MediaBrowser/Emby.Releases",
|
||||
"version": "4.9.1.80",
|
||||
"date": "2025-09-30T20:25:16Z"
|
||||
},
|
||||
{
|
||||
"name": "Jackett/Jackett",
|
||||
"version": "v0.24.134",
|
||||
"date": "2025-10-15T05:52:51Z"
|
||||
},
|
||||
{
|
||||
"name": "esphome/esphome",
|
||||
"version": "2025.10.0",
|
||||
"date": "2025-10-15T04:30:41Z"
|
||||
},
|
||||
{
|
||||
"name": "jeedom/core",
|
||||
"version": "4.4.20",
|
||||
"date": "2025-10-15T00:27:08Z"
|
||||
},
|
||||
{
|
||||
"name": "steveiliop56/tinyauth",
|
||||
"version": "v4.0.0",
|
||||
"date": "2025-10-08T16:12:11Z"
|
||||
},
|
||||
{
|
||||
"name": "seerr-team/seerr",
|
||||
"version": "preview-seerr",
|
||||
"date": "2025-10-14T22:21:33Z"
|
||||
},
|
||||
{
|
||||
"name": "Ombi-app/Ombi",
|
||||
"version": "v4.47.1",
|
||||
"date": "2025-01-05T21:14:23Z"
|
||||
},
|
||||
{
|
||||
"name": "BerriAI/litellm",
|
||||
"version": "v1.78.0.rc.3",
|
||||
"date": "2025-10-14T21:41:36Z"
|
||||
},
|
||||
{
|
||||
"name": "chrisbenincasa/tunarr",
|
||||
"version": "v0.23.0-alpha.9",
|
||||
"date": "2025-10-14T20:43:55Z"
|
||||
},
|
||||
{
|
||||
"name": "apache/cassandra",
|
||||
"version": "5.0.6-tentative",
|
||||
"date": "2025-10-14T20:36:34Z"
|
||||
},
|
||||
{
|
||||
"name": "runtipi/runtipi",
|
||||
"version": "nightly",
|
||||
"date": "2025-10-14T19:51:52Z"
|
||||
},
|
||||
{
|
||||
"name": "cloudflare/cloudflared",
|
||||
"version": "2025.10.0",
|
||||
"date": "2025-10-14T19:07:37Z"
|
||||
},
|
||||
{
|
||||
"name": "evcc-io/evcc",
|
||||
"version": "0.209.2",
|
||||
"date": "2025-10-14T18:55:44Z"
|
||||
},
|
||||
{
|
||||
"name": "crafty-controller/crafty-4",
|
||||
"version": "v4.5.5",
|
||||
"date": "2025-10-14T18:48:36Z"
|
||||
},
|
||||
{
|
||||
"name": "tailscale/tailscale",
|
||||
"version": "v1.88.4",
|
||||
"date": "2025-10-14T17:57:52Z"
|
||||
},
|
||||
{
|
||||
"name": "keycloak/keycloak",
|
||||
"version": "26.2.10",
|
||||
"date": "2025-10-14T10:45:09Z"
|
||||
},
|
||||
{
|
||||
"name": "netbox-community/netbox",
|
||||
"version": "v4.4.3",
|
||||
"date": "2025-10-14T17:52:57Z"
|
||||
},
|
||||
{
|
||||
"name": "rcourtman/Pulse",
|
||||
"version": "issue-551",
|
||||
"date": "2025-10-14T17:44:44Z"
|
||||
},
|
||||
{
|
||||
"name": "plankanban/planka",
|
||||
"version": "planka-1.1.0",
|
||||
"date": "2025-10-14T16:51:22Z"
|
||||
},
|
||||
{
|
||||
"name": "immich-app/immich",
|
||||
"version": "v2.1.0",
|
||||
"date": "2025-10-14T16:24:43Z"
|
||||
},
|
||||
{
|
||||
"name": "home-assistant/operating-system",
|
||||
"version": "16.2",
|
||||
"date": "2025-09-08T14:03:25Z"
|
||||
},
|
||||
{
|
||||
"name": "project-zot/zot",
|
||||
"version": "v2.1.9",
|
||||
"date": "2025-10-14T16:18:49Z"
|
||||
},
|
||||
{
|
||||
"name": "element-hq/synapse",
|
||||
"version": "v1.140.0",
|
||||
"date": "2025-10-14T15:57:12Z"
|
||||
},
|
||||
{
|
||||
"name": "n8n-io/n8n",
|
||||
"version": "n8n@1.115.3",
|
||||
"date": "2025-10-14T14:40:17Z"
|
||||
},
|
||||
{
|
||||
"name": "meilisearch/meilisearch",
|
||||
"version": "prototype-v1.23.0.personalization-00",
|
||||
"date": "2025-10-14T10:25:08Z"
|
||||
},
|
||||
{
|
||||
"name": "dgtlmoon/changedetection.io",
|
||||
"version": "0.50.24",
|
||||
"date": "2025-10-14T09:04:27Z"
|
||||
},
|
||||
{
|
||||
"name": "morpheus65535/bazarr",
|
||||
"version": "v1.5.3",
|
||||
"date": "2025-09-20T12:12:33Z"
|
||||
},
|
||||
{
|
||||
"name": "cloudreve/cloudreve",
|
||||
"version": "4.9.1",
|
||||
"date": "2025-10-14T02:56:21Z"
|
||||
},
|
||||
{
|
||||
"name": "Prowlarr/Prowlarr",
|
||||
"version": "v2.0.5.5160",
|
||||
"date": "2025-08-23T21:23:11Z"
|
||||
},
|
||||
{
|
||||
"name": "rogerfar/rdt-client",
|
||||
"version": "v2.0.119",
|
||||
@@ -19,21 +209,6 @@
|
||||
"version": "v1.5.3",
|
||||
"date": "2025-10-13T19:59:30Z"
|
||||
},
|
||||
{
|
||||
"name": "steveiliop56/tinyauth",
|
||||
"version": "v4.0.0",
|
||||
"date": "2025-10-08T16:12:11Z"
|
||||
},
|
||||
{
|
||||
"name": "BerriAI/litellm",
|
||||
"version": "v1.78.0.rc.2",
|
||||
"date": "2025-10-13T18:10:50Z"
|
||||
},
|
||||
{
|
||||
"name": "rcourtman/Pulse",
|
||||
"version": "v4.24.0-rc.3",
|
||||
"date": "2025-10-13T17:51:08Z"
|
||||
},
|
||||
{
|
||||
"name": "bluenviron/mediamtx",
|
||||
"version": "v1.15.2",
|
||||
@@ -49,41 +224,16 @@
|
||||
"version": "4.5.3",
|
||||
"date": "2025-08-25T13:59:56Z"
|
||||
},
|
||||
{
|
||||
"name": "meilisearch/meilisearch",
|
||||
"version": "latest",
|
||||
"date": "2025-10-13T14:43:53Z"
|
||||
},
|
||||
{
|
||||
"name": "node-red/node-red",
|
||||
"version": "4.1.1",
|
||||
"date": "2025-10-13T14:23:53Z"
|
||||
},
|
||||
{
|
||||
"name": "n8n-io/n8n",
|
||||
"version": "n8n@1.114.4",
|
||||
"date": "2025-10-07T14:28:46Z"
|
||||
},
|
||||
{
|
||||
"name": "prometheus/alertmanager",
|
||||
"version": "v0.29.0-rc.0",
|
||||
"date": "2025-10-10T01:13:27Z"
|
||||
},
|
||||
{
|
||||
"name": "Graylog2/graylog2-server",
|
||||
"version": "7.0.0-beta.4",
|
||||
"date": "2025-10-13T11:20:35Z"
|
||||
},
|
||||
{
|
||||
"name": "dgtlmoon/changedetection.io",
|
||||
"version": "0.50.23",
|
||||
"date": "2025-10-13T09:55:01Z"
|
||||
},
|
||||
{
|
||||
"name": "mattermost/mattermost",
|
||||
"version": "server/public/v0.1.20",
|
||||
"date": "2025-10-09T17:22:46Z"
|
||||
},
|
||||
{
|
||||
"name": "SigNoz/signoz",
|
||||
"version": "v0.97.1",
|
||||
@@ -99,41 +249,16 @@
|
||||
"version": "v1.19.5",
|
||||
"date": "2025-09-27T20:59:46Z"
|
||||
},
|
||||
{
|
||||
"name": "morpheus65535/bazarr",
|
||||
"version": "v1.5.3",
|
||||
"date": "2025-09-20T12:12:33Z"
|
||||
},
|
||||
{
|
||||
"name": "Jackett/Jackett",
|
||||
"version": "v0.24.124",
|
||||
"date": "2025-10-13T05:52:57Z"
|
||||
},
|
||||
{
|
||||
"name": "firefly-iii/firefly-iii",
|
||||
"version": "v6.4.2",
|
||||
"date": "2025-10-07T08:11:58Z"
|
||||
},
|
||||
{
|
||||
"name": "jeedom/core",
|
||||
"version": "4.4.20",
|
||||
"date": "2025-10-13T00:27:04Z"
|
||||
},
|
||||
{
|
||||
"name": "esphome/esphome",
|
||||
"version": "2025.9.3",
|
||||
"date": "2025-10-01T11:30:07Z"
|
||||
},
|
||||
{
|
||||
"name": "Luligu/matterbridge",
|
||||
"version": "3.3.2",
|
||||
"date": "2025-10-12T21:30:43Z"
|
||||
},
|
||||
{
|
||||
"name": "runtipi/runtipi",
|
||||
"version": "nightly",
|
||||
"date": "2025-10-12T20:01:20Z"
|
||||
},
|
||||
{
|
||||
"name": "globaleaks/globaleaks-whistleblowing-software",
|
||||
"version": "v5.0.85",
|
||||
@@ -174,11 +299,6 @@
|
||||
"version": "v1.4.0",
|
||||
"date": "2025-10-11T18:16:32Z"
|
||||
},
|
||||
{
|
||||
"name": "MediaBrowser/Emby.Releases",
|
||||
"version": "4.9.1.80",
|
||||
"date": "2025-09-30T20:25:16Z"
|
||||
},
|
||||
{
|
||||
"name": "TandoorRecipes/recipes",
|
||||
"version": "2.3.2",
|
||||
@@ -194,21 +314,11 @@
|
||||
"version": "2025.10.2",
|
||||
"date": "2025-10-10T21:20:11Z"
|
||||
},
|
||||
{
|
||||
"name": "Ombi-app/Ombi",
|
||||
"version": "v4.47.1",
|
||||
"date": "2025-01-05T21:14:23Z"
|
||||
},
|
||||
{
|
||||
"name": "0xERR0R/blocky",
|
||||
"version": "v0.27.0",
|
||||
"date": "2025-10-10T20:11:48Z"
|
||||
},
|
||||
{
|
||||
"name": "keycloak/keycloak",
|
||||
"version": "26.0.16",
|
||||
"date": "2025-10-08T04:44:28Z"
|
||||
},
|
||||
{
|
||||
"name": "homarr-labs/homarr",
|
||||
"version": "v1.41.0",
|
||||
@@ -239,26 +349,11 @@
|
||||
"version": "v1.17.1",
|
||||
"date": "2025-10-10T16:12:41Z"
|
||||
},
|
||||
{
|
||||
"name": "msgbyte/tianji",
|
||||
"version": "v1.27.9",
|
||||
"date": "2025-10-10T14:48:51Z"
|
||||
},
|
||||
{
|
||||
"name": "apache/tomcat",
|
||||
"version": "10.1.48",
|
||||
"date": "2025-10-10T14:46:53Z"
|
||||
},
|
||||
{
|
||||
"name": "element-hq/synapse",
|
||||
"version": "v1.138.4",
|
||||
"date": "2025-10-08T09:11:57Z"
|
||||
},
|
||||
{
|
||||
"name": "crowdsecurity/crowdsec",
|
||||
"version": "v1.7.0",
|
||||
"date": "2025-09-01T10:10:34Z"
|
||||
},
|
||||
{
|
||||
"name": "semaphoreui/semaphore",
|
||||
"version": "v2.16.34",
|
||||
@@ -389,11 +484,6 @@
|
||||
"version": "flowise@3.0.8",
|
||||
"date": "2025-10-08T12:19:18Z"
|
||||
},
|
||||
{
|
||||
"name": "prometheus/prometheus",
|
||||
"version": "v0.307.0-rc.0",
|
||||
"date": "2025-10-08T11:25:44Z"
|
||||
},
|
||||
{
|
||||
"name": "gotson/komga",
|
||||
"version": "1.23.5",
|
||||
@@ -429,11 +519,6 @@
|
||||
"version": "v0.83.2",
|
||||
"date": "2025-10-07T14:30:15Z"
|
||||
},
|
||||
{
|
||||
"name": "jenkinsci/jenkins",
|
||||
"version": "jenkins-2.531",
|
||||
"date": "2025-10-07T13:42:39Z"
|
||||
},
|
||||
{
|
||||
"name": "zwave-js/zwave-js-ui",
|
||||
"version": "v11.4.1",
|
||||
@@ -444,11 +529,6 @@
|
||||
"version": "v2.2.5",
|
||||
"date": "2025-10-07T12:34:31Z"
|
||||
},
|
||||
{
|
||||
"name": "evcc-io/evcc",
|
||||
"version": "0.209.1",
|
||||
"date": "2025-10-07T11:29:11Z"
|
||||
},
|
||||
{
|
||||
"name": "pocket-id/pocket-id",
|
||||
"version": "v1.13.1",
|
||||
@@ -484,11 +564,6 @@
|
||||
"version": "v5.26.0",
|
||||
"date": "2025-10-06T17:57:27Z"
|
||||
},
|
||||
{
|
||||
"name": "seerr-team/seerr",
|
||||
"version": "preview-seerr",
|
||||
"date": "2025-10-06T16:50:29Z"
|
||||
},
|
||||
{
|
||||
"name": "fuma-nama/fumadocs",
|
||||
"version": "fumadocs-ui@15.8.4",
|
||||
@@ -519,21 +594,11 @@
|
||||
"version": "v1.19.16",
|
||||
"date": "2025-10-05T23:28:59Z"
|
||||
},
|
||||
{
|
||||
"name": "plankanban/planka",
|
||||
"version": "planka-1.0.5",
|
||||
"date": "2025-10-05T18:54:25Z"
|
||||
},
|
||||
{
|
||||
"name": "BookStackApp/BookStack",
|
||||
"version": "v25.07.3",
|
||||
"date": "2025-10-05T14:47:20Z"
|
||||
},
|
||||
{
|
||||
"name": "Prowlarr/Prowlarr",
|
||||
"version": "v2.0.5.5160",
|
||||
"date": "2025-08-23T21:23:11Z"
|
||||
},
|
||||
{
|
||||
"name": "seriousm4x/UpSnap",
|
||||
"version": "5.2.2",
|
||||
@@ -554,11 +619,6 @@
|
||||
"version": "v0.8.8-beta",
|
||||
"date": "2025-10-04T15:56:29Z"
|
||||
},
|
||||
{
|
||||
"name": "immich-app/immich",
|
||||
"version": "v2.0.1",
|
||||
"date": "2025-10-03T16:32:01Z"
|
||||
},
|
||||
{
|
||||
"name": "docker/compose",
|
||||
"version": "v2.40.0",
|
||||
@@ -614,11 +674,6 @@
|
||||
"version": "r8.2.1",
|
||||
"date": "2025-09-30T21:46:28Z"
|
||||
},
|
||||
{
|
||||
"name": "netbox-community/netbox",
|
||||
"version": "v4.4.2",
|
||||
"date": "2025-09-30T20:16:13Z"
|
||||
},
|
||||
{
|
||||
"name": "WordPress/WordPress",
|
||||
"version": "4.7.31",
|
||||
@@ -706,8 +761,8 @@
|
||||
},
|
||||
{
|
||||
"name": "javedh-dev/tracktor",
|
||||
"version": "0.3.17",
|
||||
"date": "2025-09-27T07:00:36Z"
|
||||
"version": "0.3.18",
|
||||
"date": "2025-09-27T10:32:09Z"
|
||||
},
|
||||
{
|
||||
"name": "Dolibarr/dolibarr",
|
||||
@@ -734,11 +789,6 @@
|
||||
"version": "1.2.39",
|
||||
"date": "2025-09-25T15:57:02Z"
|
||||
},
|
||||
{
|
||||
"name": "tailscale/tailscale",
|
||||
"version": "v1.88.3",
|
||||
"date": "2025-09-25T15:49:37Z"
|
||||
},
|
||||
{
|
||||
"name": "linkwarden/linkwarden",
|
||||
"version": "v2.13.0",
|
||||
@@ -769,11 +819,6 @@
|
||||
"version": "v2.0.10",
|
||||
"date": "2025-09-24T08:33:37Z"
|
||||
},
|
||||
{
|
||||
"name": "chrisbenincasa/tunarr",
|
||||
"version": "v0.22.5",
|
||||
"date": "2025-09-24T00:01:40Z"
|
||||
},
|
||||
{
|
||||
"name": "grafana/grafana",
|
||||
"version": "v12.2.0",
|
||||
@@ -794,11 +839,6 @@
|
||||
"version": "v1.5.0",
|
||||
"date": "2025-09-22T15:28:49Z"
|
||||
},
|
||||
{
|
||||
"name": "cloudflare/cloudflared",
|
||||
"version": "2025.9.1",
|
||||
"date": "2025-09-22T13:32:14Z"
|
||||
},
|
||||
{
|
||||
"name": "itsmng/itsm-ng",
|
||||
"version": "v2.1.0",
|
||||
@@ -879,11 +919,6 @@
|
||||
"version": "0.20.3",
|
||||
"date": "2025-09-16T07:29:49Z"
|
||||
},
|
||||
{
|
||||
"name": "wavelog/wavelog",
|
||||
"version": "2.1.1",
|
||||
"date": "2025-09-16T06:21:32Z"
|
||||
},
|
||||
{
|
||||
"name": "Paymenter/Paymenter",
|
||||
"version": "v1.3.4",
|
||||
@@ -904,11 +939,6 @@
|
||||
"version": "v0.25.1",
|
||||
"date": "2025-09-15T14:57:30Z"
|
||||
},
|
||||
{
|
||||
"name": "crafty-controller/crafty-4",
|
||||
"version": "v4.5.4",
|
||||
"date": "2025-09-15T00:49:53Z"
|
||||
},
|
||||
{
|
||||
"name": "karakeep-app/karakeep",
|
||||
"version": "cli/v0.27.1",
|
||||
@@ -919,11 +949,6 @@
|
||||
"version": "v0.8.1",
|
||||
"date": "2025-09-14T06:45:23Z"
|
||||
},
|
||||
{
|
||||
"name": "cloudreve/cloudreve",
|
||||
"version": "4.8.0",
|
||||
"date": "2025-09-12T09:48:11Z"
|
||||
},
|
||||
{
|
||||
"name": "go-vikunja/vikunja",
|
||||
"version": "v1.0.0-rc0",
|
||||
@@ -954,11 +979,6 @@
|
||||
"version": "v4.3.1",
|
||||
"date": "2025-09-08T22:26:23Z"
|
||||
},
|
||||
{
|
||||
"name": "home-assistant/operating-system",
|
||||
"version": "16.2",
|
||||
"date": "2025-09-08T14:03:25Z"
|
||||
},
|
||||
{
|
||||
"name": "paperless-ngx/paperless-ngx",
|
||||
"version": "v2.18.4",
|
||||
@@ -979,31 +999,11 @@
|
||||
"version": "2.0.0-beta.2-temp",
|
||||
"date": "2025-03-28T08:45:58Z"
|
||||
},
|
||||
{
|
||||
"name": "blakeblackshear/frigate",
|
||||
"version": "v0.14.1",
|
||||
"date": "2024-08-29T22:32:51Z"
|
||||
},
|
||||
{
|
||||
"name": "openobserve/openobserve",
|
||||
"version": "v0.15.1",
|
||||
"date": "2025-09-04T10:37:23Z"
|
||||
},
|
||||
{
|
||||
"name": "apache/cassandra",
|
||||
"version": "cassandra-4.1.10",
|
||||
"date": "2025-09-03T08:46:02Z"
|
||||
},
|
||||
{
|
||||
"name": "healthchecks/healthchecks",
|
||||
"version": "v3.11.2",
|
||||
"date": "2025-09-02T08:36:57Z"
|
||||
},
|
||||
{
|
||||
"name": "project-zot/zot",
|
||||
"version": "v2.1.8",
|
||||
"date": "2025-09-01T19:20:42Z"
|
||||
},
|
||||
{
|
||||
"name": "seanmorley15/AdventureLog",
|
||||
"version": "v0.11.0",
|
||||
|
||||
@@ -16,12 +16,48 @@ update_os
|
||||
|
||||
msg_info "Installing Cockpit"
|
||||
source /etc/os-release
|
||||
echo "deb http://deb.debian.org/debian ${VERSION_CODENAME}-backports main" >/etc/apt/sources.list.d/backports.list
|
||||
|
||||
cat <<EOF >/etc/apt/sources.list.d/debian-backports.sources
|
||||
Types: deb deb-src
|
||||
URIs: http://deb.debian.org/debian
|
||||
Suites: ${VERSION_CODENAME}-backports
|
||||
Components: main
|
||||
Enabled: yes
|
||||
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
||||
EOF
|
||||
|
||||
$STD apt update
|
||||
$STD apt install -t ${VERSION_CODENAME}-backports cockpit --no-install-recommends -y
|
||||
$STD apt install -t ${VERSION_CODENAME}-backports cockpit cracklib-runtime --no-install-recommends -y
|
||||
sed -i "s/root//g" /etc/cockpit/disallowed-users
|
||||
msg_ok "Installed Cockpit"
|
||||
|
||||
read -r -p "Would you like to install 45Drives' cockpit-file-sharing, cockpit-identities, and cockpit-navigator <y/N> " prompt
|
||||
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||
install_45drives=true
|
||||
if [[ "${VERSION_ID}" -ge 13 ]]; then
|
||||
read -r -p "Debian ${VERSION_ID} is not officially supported by 45Drives yet, would you like to continue anyway? <y/N> " prompt
|
||||
if [[ ! "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||
install_45drives=false
|
||||
fi
|
||||
fi
|
||||
if [[ "$install_45drives" == "true" ]]; then
|
||||
msg_info "Installing 45Drives' cockpit extensions"
|
||||
curl -fsSL https://repo.45drives.com/key/gpg.asc | gpg --pinentry-mode loopback --batch --yes --dearmor -o /usr/share/keyrings/45drives-archive-keyring.gpg
|
||||
cat <<EOF >/etc/apt/sources.list.d/45drives-enterprise.sources
|
||||
Types: deb
|
||||
URIs: https://repo.45drives.com/enterprise/debian
|
||||
Suites: bookworm
|
||||
Components: main
|
||||
Architectures: amd64
|
||||
Signed-By: /usr/share/keyrings/45drives-archive-keyring.gpg
|
||||
EOF
|
||||
|
||||
$STD apt update
|
||||
$STD apt install cockpit-file-sharing cockpit-identities cockpit-navigator -y
|
||||
msg_ok "Installed 45Drives' cockpit extensions"
|
||||
fi
|
||||
fi
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
|
||||
75
install/guardian-install.sh
Normal file
75
install/guardian-install.sh
Normal file
@@ -0,0 +1,75 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: HydroshieldMKII
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/HydroshieldMKII/Guardian
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt install -y sqlite3
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="24" setup_nodejs
|
||||
fetch_and_deploy_gh_release "guardian" "HydroshieldMKII/Guardian" "tarball" "latest" "/opt/guardian"
|
||||
|
||||
msg_info "Configuring ${APPLICATION}"
|
||||
cd /opt/guardian/backend
|
||||
$STD npm ci
|
||||
$STD npm run build
|
||||
cd /opt/guardian/frontend
|
||||
$STD npm ci
|
||||
export DEPLOYMENT_MODE=standalone
|
||||
$STD npm run build
|
||||
msg_ok "Configured ${APPLICATION}"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/guardian-backend.service
|
||||
[Unit]
|
||||
Description=Guardian Backend
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/opt/guardian/backend
|
||||
ExecStart=/usr/bin/node dist/main.js
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
cat <<EOF >/etc/systemd/system/guardian-frontend.service
|
||||
[Unit]
|
||||
Description=Guardian Frontend
|
||||
After=guardian-backend.service network.target
|
||||
Wants=guardian-backend.service
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/opt/guardian/frontend
|
||||
Environment=DEPLOYMENT_MODE=standalone
|
||||
ExecStart=/usr/bin/npm run start
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
systemctl enable -q --now guardian-backend
|
||||
systemctl enable -q --now guardian-frontend
|
||||
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"
|
||||
@@ -58,8 +58,7 @@ export BASE_PATH=""
|
||||
export VIRTUAL_ENV="${MM_DIR}/venv"
|
||||
cd /opt/mediamanager
|
||||
cp -r {media_manager,alembic*} "$MM_DIR"
|
||||
$STD /usr/local/bin/uv venv "$VIRTUAL_ENV"
|
||||
$STD /usr/local/bin/uv sync --locked --active
|
||||
$STD /usr/local/bin/uv sync --locked --active -n -p cpython3.13 --managed-python
|
||||
msg_ok "Configured MediaManager"
|
||||
|
||||
msg_info "Creating config and start script"
|
||||
|
||||
Reference in New Issue
Block a user