mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-11-17 19:15:16 +00:00
Compare commits
14 Commits
MickLesk-p
...
update_ver
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
25a6b1dec7 | ||
|
|
99d441e37c | ||
|
|
55c21416de | ||
|
|
0296bd63c3 | ||
|
|
36630a7e4b | ||
|
|
5c0f6b282a | ||
|
|
9937bceb17 | ||
|
|
fbb807bf97 | ||
|
|
1df161b8e0 | ||
|
|
ca2903b1ff | ||
|
|
1405e28247 | ||
|
|
3257d4e9bc | ||
|
|
55166a5d6c | ||
|
|
c1c4c35732 |
21
CHANGELOG.md
21
CHANGELOG.md
@@ -10,15 +10,34 @@
|
||||
> [!CAUTION]
|
||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
||||
|
||||
## 2025-11-16
|
||||
## 2025-11-17
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- fix: restart apache2 after installing zabbix config [@AlphaLawless](https://github.com/AlphaLawless) ([#9206](https://github.com/community-scripts/ProxmoxVE/pull/9206))
|
||||
|
||||
## 2025-11-16
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Metabase ([#9190](https://github.com/community-scripts/ProxmoxVE/pull/9190))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Change backup directory to /opt for paperless-ngx [@ProfDrYoMan](https://github.com/ProfDrYoMan) ([#9195](https://github.com/community-scripts/ProxmoxVE/pull/9195))
|
||||
- Kimai: remove deprecated admin_lte section [@MickLesk](https://github.com/MickLesk) ([#9182](https://github.com/community-scripts/ProxmoxVE/pull/9182))
|
||||
- healthchecks: bump python to 3.13 [@MickLesk](https://github.com/MickLesk) ([#9175](https://github.com/community-scripts/ProxmoxVE/pull/9175))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 📝 Script Information
|
||||
|
||||
- fixed config_path for donetick [@TazztheMonster](https://github.com/TazztheMonster) ([#9203](https://github.com/community-scripts/ProxmoxVE/pull/9203))
|
||||
|
||||
## 2025-11-15
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
6
ct/headers/metabase
Normal file
6
ct/headers/metabase
Normal file
@@ -0,0 +1,6 @@
|
||||
__ ___ __ __
|
||||
/ |/ /__ / /_____ _/ /_ ____ _________
|
||||
/ /|_/ / _ \/ __/ __ `/ __ \/ __ `/ ___/ _ \
|
||||
/ / / / __/ /_/ /_/ / /_/ / /_/ (__ ) __/
|
||||
/_/ /_/\___/\__/\__,_/_.___/\__,_/____/\___/
|
||||
|
||||
@@ -28,42 +28,26 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "healthchecks" "healthchecks/healthchecks"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop healthchecks
|
||||
msg_ok "Stopped Services"
|
||||
|
||||
msg_info "Backing up existing installation"
|
||||
BACKUP="/opt/healthchecks-backup-$(date +%F-%H%M)"
|
||||
cp -a /opt/healthchecks "$BACKUP"
|
||||
msg_ok "Backup created at $BACKUP"
|
||||
|
||||
PYTHON_VERSION="3.13" setup_uv
|
||||
fetch_and_deploy_gh_release "healthchecks" "healthchecks/healthchecks"
|
||||
|
||||
msg_info "Updating healthchecks"
|
||||
cd /opt/healthchecks
|
||||
if [[ -d venv ]]; then
|
||||
rm -rf venv
|
||||
fi
|
||||
msg_info "Recreating Python venv"
|
||||
$STD python3 -m venv venv
|
||||
$STD source venv/bin/activate
|
||||
$STD pip install --upgrade pip wheel
|
||||
msg_ok "Created venv"
|
||||
|
||||
msg_info "Installing requirements"
|
||||
$STD pip install gunicorn -r requirements.txt
|
||||
msg_ok "Installed requirements"
|
||||
|
||||
msg_info "Running Django migrations"
|
||||
$STD python manage.py migrate --noinput
|
||||
$STD python manage.py collectstatic --noinput
|
||||
$STD python manage.py compress
|
||||
msg_ok "Completed Django migrations and static build"
|
||||
|
||||
mkdir -p /opt/healthchecks/static-collected/
|
||||
$STD uv pip install wheel gunicorn -r requirements.txt --system
|
||||
$STD uv run -- python manage.py makemigrations
|
||||
$STD uv run -- python manage.py migrate --noinput
|
||||
$STD uv run -- python manage.py collectstatic --noinput
|
||||
$STD uv run -- python manage.py compress
|
||||
msg_ok "Updated healthchecks"
|
||||
msg_info "Starting Services"
|
||||
systemctl start healthchecks
|
||||
systemctl reload caddy
|
||||
systemctl restart caddy
|
||||
msg_ok "Started Services"
|
||||
msg_ok "Updated successfully!"
|
||||
fi
|
||||
|
||||
65
ct/metabase.sh
Normal file
65
ct/metabase.sh
Normal file
@@ -0,0 +1,65 @@
|
||||
#!/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://www.metabase.com/
|
||||
|
||||
APP="Metabase"
|
||||
var_tags="${var_tags:-analytics}"
|
||||
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/metabase ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "metabase" "metabase/metabase"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop metabase
|
||||
msg_info "Stopped Service"
|
||||
|
||||
msg_info "Creating backup"
|
||||
mv /opt/metabase/.env /opt
|
||||
msg_ok "Created backup"
|
||||
|
||||
msg_info "Updating Metabase"
|
||||
RELEASE=$(get_latest_github_release "metabase/metabase")
|
||||
curl -fsSL "https://downloads.metabase.com/v${RELEASE}.x/metabase.jar" -o /opt/metabase/metabase.jar
|
||||
echo $RELEASE >~/.metabase
|
||||
msg_ok "Updated Metabase"
|
||||
|
||||
msg_info "Restoring backup"
|
||||
mv /opt/.env /opt/metabase
|
||||
msg_ok "Restored backup"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start metabase
|
||||
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}:3000${CL}"
|
||||
@@ -35,7 +35,7 @@ function update_script() {
|
||||
if grep -q "uv run" /etc/systemd/system/paperless-webserver.service; then
|
||||
|
||||
msg_info "Backing up user data and configuration"
|
||||
local BACKUP_DIR="/tmp/paperless_backup_$$"
|
||||
local BACKUP_DIR="/opt/paperless_backup_$$"
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
for dir in /opt/paperless/*/; do
|
||||
dir_name=$(basename "$dir")
|
||||
@@ -84,7 +84,7 @@ function update_script() {
|
||||
find /opt/paperless -name "__pycache__" -type d -exec rm -rf {} +
|
||||
|
||||
msg_info "Backing up user data and configuration"
|
||||
local BACKUP_DIR="/tmp/paperless_backup_$$"
|
||||
local BACKUP_DIR="/opt/paperless_backup_$$"
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
for dir in /opt/paperless/*/; do
|
||||
@@ -122,7 +122,7 @@ function update_script() {
|
||||
|
||||
$STD systemctl daemon-reload
|
||||
msg_info "Backing up user data and configuration"
|
||||
BACKUP_DIR="/tmp/paperless_backup_$$"
|
||||
BACKUP_DIR="/opt/paperless_backup_$$"
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
for dir in /opt/paperless/*/; do
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"privileged": false,
|
||||
"interface_port": 2021,
|
||||
"documentation": "https://docs.donetick.com/getting-started/",
|
||||
"config_path": "/opt/donetick/config/selfhosted.yml",
|
||||
"config_path": "/opt/donetick/config/selfhosted.yaml",
|
||||
"website": "https://donetick.com",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/donetick.webp",
|
||||
"description": "Donetick an open-source, user-friendly app for managing tasks and chores, featuring customizable options to help you and others stay organized",
|
||||
|
||||
35
frontend/public/json/metabase.json
Normal file
35
frontend/public/json/metabase.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"name": "Metabase",
|
||||
"slug": "metabase",
|
||||
"categories": [
|
||||
9
|
||||
],
|
||||
"date_created": "2025-11-16",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 3000,
|
||||
"documentation": "https://www.metabase.com/docs/latest/",
|
||||
"config_path": "/opt/metabase/.env",
|
||||
"website": "https://www.metabase.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/metabase.webp",
|
||||
"description": "Metabase is an open-source business intelligence platform. You can use Metabase to ask questions about your data, or embed Metabase in your app to let your customers explore their data on their own.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/metabase.sh",
|
||||
"resources": {
|
||||
"cpu": 2,
|
||||
"ram": 2048,
|
||||
"hdd": 6,
|
||||
"os": "Debian",
|
||||
"version": "13"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": []
|
||||
}
|
||||
@@ -1,4 +1,149 @@
|
||||
[
|
||||
{
|
||||
"name": "meilisearch/meilisearch",
|
||||
"version": "latest",
|
||||
"date": "2025-11-17T09:29:20Z"
|
||||
},
|
||||
{
|
||||
"name": "mattermost/mattermost",
|
||||
"version": "v10.11.7",
|
||||
"date": "2025-11-17T08:40:53Z"
|
||||
},
|
||||
{
|
||||
"name": "Jackett/Jackett",
|
||||
"version": "v0.24.319",
|
||||
"date": "2025-11-17T05:55:48Z"
|
||||
},
|
||||
{
|
||||
"name": "esphome/esphome",
|
||||
"version": "2025.10.5",
|
||||
"date": "2025-11-12T01:09:44Z"
|
||||
},
|
||||
{
|
||||
"name": "firefly-iii/firefly-iii",
|
||||
"version": "v6.4.8",
|
||||
"date": "2025-11-13T04:42:27Z"
|
||||
},
|
||||
{
|
||||
"name": "rabbitmq/rabbitmq-server",
|
||||
"version": "v4.2.1",
|
||||
"date": "2025-11-17T02:47:15Z"
|
||||
},
|
||||
{
|
||||
"name": "jeedom/core",
|
||||
"version": "4.4.20",
|
||||
"date": "2025-11-17T00:27:09Z"
|
||||
},
|
||||
{
|
||||
"name": "steveiliop56/tinyauth",
|
||||
"version": "v4.0.1",
|
||||
"date": "2025-10-15T16:53:55Z"
|
||||
},
|
||||
{
|
||||
"name": "Prowlarr/Prowlarr",
|
||||
"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": "jellyfin/jellyfin",
|
||||
"version": "v10.11.3",
|
||||
"date": "2025-11-16T22:40:10Z"
|
||||
},
|
||||
{
|
||||
"name": "Radarr/Radarr",
|
||||
"version": "v6.0.4.10291",
|
||||
"date": "2025-11-16T22:39:01Z"
|
||||
},
|
||||
{
|
||||
"name": "sysadminsmedia/homebox",
|
||||
"version": "v0.21.0",
|
||||
"date": "2025-08-23T18:33:53Z"
|
||||
},
|
||||
{
|
||||
"name": "chrisbenincasa/tunarr",
|
||||
"version": "v0.22.15",
|
||||
"date": "2025-11-16T21:30:50Z"
|
||||
},
|
||||
{
|
||||
"name": "TwiN/gatus",
|
||||
"version": "v5.32.0",
|
||||
"date": "2025-11-16T21:08:56Z"
|
||||
},
|
||||
{
|
||||
"name": "binwiederhier/ntfy",
|
||||
"version": "v2.15.0",
|
||||
"date": "2025-11-16T18:53:49Z"
|
||||
},
|
||||
{
|
||||
"name": "PCJones/UmlautAdaptarr",
|
||||
"version": "v0.7.4",
|
||||
"date": "2025-11-16T18:40:32Z"
|
||||
},
|
||||
{
|
||||
"name": "Luligu/matterbridge",
|
||||
"version": "3.3.8",
|
||||
"date": "2025-11-16T17:04:37Z"
|
||||
},
|
||||
{
|
||||
"name": "msgbyte/tianji",
|
||||
"version": "v1.30.11",
|
||||
"date": "2025-11-16T16:21:04Z"
|
||||
},
|
||||
{
|
||||
"name": "AlexxIT/go2rtc",
|
||||
"version": "v1.9.12",
|
||||
"date": "2025-11-16T16:14:55Z"
|
||||
},
|
||||
{
|
||||
"name": "LibreTranslate/LibreTranslate",
|
||||
"version": "v1.8.0",
|
||||
"date": "2025-11-16T15:54:50Z"
|
||||
},
|
||||
{
|
||||
"name": "outline/outline",
|
||||
"version": "v1.1.0",
|
||||
"date": "2025-11-16T15:07:09Z"
|
||||
},
|
||||
{
|
||||
"name": "bastienwirtz/homer",
|
||||
"version": "v25.11.1",
|
||||
"date": "2025-11-16T13:04:21Z"
|
||||
},
|
||||
{
|
||||
"name": "fuma-nama/fumadocs",
|
||||
"version": "fumadocs-core@16.0.12",
|
||||
"date": "2025-11-16T12:33:59Z"
|
||||
},
|
||||
{
|
||||
"name": "morpheus65535/bazarr",
|
||||
"version": "v1.5.3",
|
||||
"date": "2025-09-20T12:12:33Z"
|
||||
},
|
||||
{
|
||||
"name": "FlowiseAI/Flowise",
|
||||
"version": "flowise@3.0.11",
|
||||
"date": "2025-11-16T01:29:06Z"
|
||||
},
|
||||
{
|
||||
"name": "OliveTin/OliveTin",
|
||||
"version": "3000.4.0",
|
||||
"date": "2025-11-16T01:02:49Z"
|
||||
},
|
||||
{
|
||||
"name": "hyperion-project/hyperion.ng",
|
||||
"version": "2.1.1",
|
||||
"date": "2025-06-14T17:45:06Z"
|
||||
},
|
||||
{
|
||||
"name": "BerriAI/litellm",
|
||||
"version": "v1.80.0.rc.1",
|
||||
"date": "2025-11-16T00:22:41Z"
|
||||
},
|
||||
{
|
||||
"name": "paperless-ngx/paperless-ngx",
|
||||
"version": "v2.19.6",
|
||||
@@ -9,11 +154,6 @@
|
||||
"version": "preview-test-fix-subscriptions",
|
||||
"date": "2025-11-15T20:51:48Z"
|
||||
},
|
||||
{
|
||||
"name": "BerriAI/litellm",
|
||||
"version": "v1.79.3-stable",
|
||||
"date": "2025-11-15T20:28:05Z"
|
||||
},
|
||||
{
|
||||
"name": "jenkinsci/jenkins",
|
||||
"version": "jenkins-2.528.2",
|
||||
@@ -29,26 +169,11 @@
|
||||
"version": "android/v1.8.2-2",
|
||||
"date": "2025-11-15T13:18:41Z"
|
||||
},
|
||||
{
|
||||
"name": "Jackett/Jackett",
|
||||
"version": "v0.24.311",
|
||||
"date": "2025-11-15T05:55:28Z"
|
||||
},
|
||||
{
|
||||
"name": "cloudreve/cloudreve",
|
||||
"version": "4.10.1",
|
||||
"date": "2025-11-15T04:36:48Z"
|
||||
},
|
||||
{
|
||||
"name": "jeedom/core",
|
||||
"version": "4.4.20",
|
||||
"date": "2025-11-15T00:27:05Z"
|
||||
},
|
||||
{
|
||||
"name": "steveiliop56/tinyauth",
|
||||
"version": "v4.0.1",
|
||||
"date": "2025-10-15T16:53:55Z"
|
||||
},
|
||||
{
|
||||
"name": "henrygd/beszel",
|
||||
"version": "v0.16.1",
|
||||
@@ -129,11 +254,6 @@
|
||||
"version": "v0.16.2",
|
||||
"date": "2025-11-14T12:05:36Z"
|
||||
},
|
||||
{
|
||||
"name": "outline/outline",
|
||||
"version": "v1.1.0-0",
|
||||
"date": "2025-11-14T11:41:10Z"
|
||||
},
|
||||
{
|
||||
"name": "zitadel/zitadel",
|
||||
"version": "v4.7.0",
|
||||
@@ -159,11 +279,6 @@
|
||||
"version": "v4.6.5",
|
||||
"date": "2025-11-14T06:59:44Z"
|
||||
},
|
||||
{
|
||||
"name": "morpheus65535/bazarr",
|
||||
"version": "v1.5.3",
|
||||
"date": "2025-09-20T12:12:33Z"
|
||||
},
|
||||
{
|
||||
"name": "chrisvel/tududi",
|
||||
"version": "v0.86.1",
|
||||
@@ -174,11 +289,6 @@
|
||||
"version": "v4.31.0",
|
||||
"date": "2025-11-14T00:18:50Z"
|
||||
},
|
||||
{
|
||||
"name": "chrisbenincasa/tunarr",
|
||||
"version": "v0.22.14",
|
||||
"date": "2025-11-13T23:16:04Z"
|
||||
},
|
||||
{
|
||||
"name": "ollama/ollama",
|
||||
"version": "v0.12.11",
|
||||
@@ -199,11 +309,6 @@
|
||||
"version": "v0.62.18",
|
||||
"date": "2025-11-13T19:49:21Z"
|
||||
},
|
||||
{
|
||||
"name": "fuma-nama/fumadocs",
|
||||
"version": "fumadocs-openapi@10.0.6",
|
||||
"date": "2025-11-13T16:37:11Z"
|
||||
},
|
||||
{
|
||||
"name": "traefik/traefik",
|
||||
"version": "v3.6.1",
|
||||
@@ -219,11 +324,6 @@
|
||||
"version": "1.7.9",
|
||||
"date": "2025-11-13T10:26:37Z"
|
||||
},
|
||||
{
|
||||
"name": "meilisearch/meilisearch",
|
||||
"version": "prototype-v1.25.0.improve-s3-multipart-upload-1",
|
||||
"date": "2025-11-13T09:25:48Z"
|
||||
},
|
||||
{
|
||||
"name": "docker/compose",
|
||||
"version": "v2.40.3",
|
||||
@@ -239,16 +339,6 @@
|
||||
"version": "0.209.8",
|
||||
"date": "2025-11-13T07:20:49Z"
|
||||
},
|
||||
{
|
||||
"name": "firefly-iii/firefly-iii",
|
||||
"version": "v6.4.8",
|
||||
"date": "2025-11-13T04:42:27Z"
|
||||
},
|
||||
{
|
||||
"name": "esphome/esphome",
|
||||
"version": "2025.10.5",
|
||||
"date": "2025-11-12T01:09:44Z"
|
||||
},
|
||||
{
|
||||
"name": "NginxProxyManager/nginx-proxy-manager",
|
||||
"version": "v2.13.4",
|
||||
@@ -289,11 +379,6 @@
|
||||
"version": "2.600",
|
||||
"date": "2025-11-12T05:01:55Z"
|
||||
},
|
||||
{
|
||||
"name": "hyperion-project/hyperion.ng",
|
||||
"version": "2.1.1",
|
||||
"date": "2025-06-14T17:45:06Z"
|
||||
},
|
||||
{
|
||||
"name": "moghtech/komodo",
|
||||
"version": "v1.19.5",
|
||||
@@ -319,16 +404,6 @@
|
||||
"version": "v1.7.0",
|
||||
"date": "2025-11-11T17:24:27Z"
|
||||
},
|
||||
{
|
||||
"name": "mattermost/mattermost",
|
||||
"version": "mattermost-redux@11.1.0",
|
||||
"date": "2025-11-11T17:15:00Z"
|
||||
},
|
||||
{
|
||||
"name": "msgbyte/tianji",
|
||||
"version": "v1.30.10",
|
||||
"date": "2025-11-11T16:26:27Z"
|
||||
},
|
||||
{
|
||||
"name": "netbox-community/netbox",
|
||||
"version": "v4.4.6",
|
||||
@@ -359,11 +434,6 @@
|
||||
"version": "4.9.1.90",
|
||||
"date": "2025-11-11T01:00:32Z"
|
||||
},
|
||||
{
|
||||
"name": "OliveTin/OliveTin",
|
||||
"version": "2025.11.11",
|
||||
"date": "2025-11-11T00:35:03Z"
|
||||
},
|
||||
{
|
||||
"name": "qbittorrent/qBittorrent",
|
||||
"version": "release-5.1.3",
|
||||
@@ -439,21 +509,11 @@
|
||||
"version": "v1.17.2",
|
||||
"date": "2025-11-08T22:47:58Z"
|
||||
},
|
||||
{
|
||||
"name": "TwiN/gatus",
|
||||
"version": "v5.31.0",
|
||||
"date": "2025-11-08T22:18:46Z"
|
||||
},
|
||||
{
|
||||
"name": "hargata/lubelog",
|
||||
"version": "v1.5.4",
|
||||
"date": "2025-11-08T16:26:45Z"
|
||||
},
|
||||
{
|
||||
"name": "Luligu/matterbridge",
|
||||
"version": "3.3.7",
|
||||
"date": "2025-11-08T15:47:24Z"
|
||||
},
|
||||
{
|
||||
"name": "heiher/hev-socks5-server",
|
||||
"version": "2.11.1",
|
||||
@@ -484,11 +544,6 @@
|
||||
"version": "v3.0.0",
|
||||
"date": "2025-11-07T06:13:49Z"
|
||||
},
|
||||
{
|
||||
"name": "FlowiseAI/Flowise",
|
||||
"version": "flowise@3.0.10",
|
||||
"date": "2025-11-06T23:10:38Z"
|
||||
},
|
||||
{
|
||||
"name": "Ombi-app/Ombi",
|
||||
"version": "v4.52.0",
|
||||
@@ -649,11 +704,6 @@
|
||||
"version": "2.2.1",
|
||||
"date": "2025-11-03T06:57:15Z"
|
||||
},
|
||||
{
|
||||
"name": "jellyfin/jellyfin",
|
||||
"version": "v10.11.2",
|
||||
"date": "2025-11-03T02:29:00Z"
|
||||
},
|
||||
{
|
||||
"name": "maxdorninger/MediaManager",
|
||||
"version": "v1.9.1",
|
||||
@@ -719,11 +769,6 @@
|
||||
"version": "v0.107.69",
|
||||
"date": "2025-10-30T15:31:50Z"
|
||||
},
|
||||
{
|
||||
"name": "Lidarr/Lidarr",
|
||||
"version": "v3.0.1.4866",
|
||||
"date": "2025-10-30T14:29:25Z"
|
||||
},
|
||||
{
|
||||
"name": "danielbrendel/hortusfox-web",
|
||||
"version": "v5.4",
|
||||
@@ -769,16 +814,6 @@
|
||||
"version": "v3.0.0-beta.2",
|
||||
"date": "2025-10-28T10:16:29Z"
|
||||
},
|
||||
{
|
||||
"name": "rabbitmq/rabbitmq-server",
|
||||
"version": "v4.2.0",
|
||||
"date": "2025-10-27T16:56:40Z"
|
||||
},
|
||||
{
|
||||
"name": "Radarr/Radarr",
|
||||
"version": "v5.28.0.10274",
|
||||
"date": "2025-10-06T21:31:07Z"
|
||||
},
|
||||
{
|
||||
"name": "openhab/openhab-core",
|
||||
"version": "5.1.0.M2",
|
||||
@@ -794,11 +829,6 @@
|
||||
"version": "v13.0.2",
|
||||
"date": "2025-10-26T06:33:05Z"
|
||||
},
|
||||
{
|
||||
"name": "Prowlarr/Prowlarr",
|
||||
"version": "v2.1.5.5216",
|
||||
"date": "2025-10-25T19:41:59Z"
|
||||
},
|
||||
{
|
||||
"name": "usememos/memos",
|
||||
"version": "v0.25.2",
|
||||
@@ -844,11 +874,6 @@
|
||||
"version": "v3.2.5-beta",
|
||||
"date": "2025-10-21T16:49:14Z"
|
||||
},
|
||||
{
|
||||
"name": "AlexxIT/go2rtc",
|
||||
"version": "v1.9.11",
|
||||
"date": "2025-10-21T13:21:02Z"
|
||||
},
|
||||
{
|
||||
"name": "influxdata/telegraf",
|
||||
"version": "v1.36.3",
|
||||
@@ -994,11 +1019,6 @@
|
||||
"version": "mysql-cluster-7.6.36",
|
||||
"date": "2025-10-06T15:19:49Z"
|
||||
},
|
||||
{
|
||||
"name": "bastienwirtz/homer",
|
||||
"version": "v25.10.1",
|
||||
"date": "2025-10-06T14:23:20Z"
|
||||
},
|
||||
{
|
||||
"name": "jordan-dalby/ByteStash",
|
||||
"version": "v1.5.9",
|
||||
@@ -1154,11 +1174,6 @@
|
||||
"version": "v0.11.0",
|
||||
"date": "2025-09-01T16:19:38Z"
|
||||
},
|
||||
{
|
||||
"name": "LibreTranslate/LibreTranslate",
|
||||
"version": "v1.7.3",
|
||||
"date": "2025-08-31T15:59:43Z"
|
||||
},
|
||||
{
|
||||
"name": "Forceu/Gokapi",
|
||||
"version": "v2.1.0",
|
||||
@@ -1179,11 +1194,6 @@
|
||||
"version": "0.6.25",
|
||||
"date": "2025-08-24T08:51:55Z"
|
||||
},
|
||||
{
|
||||
"name": "sysadminsmedia/homebox",
|
||||
"version": "v0.21.0",
|
||||
"date": "2025-08-23T18:33:53Z"
|
||||
},
|
||||
{
|
||||
"name": "caddyserver/caddy",
|
||||
"version": "v2.10.2",
|
||||
@@ -1239,11 +1249,6 @@
|
||||
"version": "v1.28.3",
|
||||
"date": "2025-08-06T12:32:02Z"
|
||||
},
|
||||
{
|
||||
"name": "binwiederhier/ntfy",
|
||||
"version": "v2.14.0",
|
||||
"date": "2025-08-05T08:31:35Z"
|
||||
},
|
||||
{
|
||||
"name": "inspircd/inspircd",
|
||||
"version": "v4.8.0",
|
||||
@@ -1264,11 +1269,6 @@
|
||||
"version": "v0.4.5",
|
||||
"date": "2025-07-29T16:39:18Z"
|
||||
},
|
||||
{
|
||||
"name": "PCJones/UmlautAdaptarr",
|
||||
"version": "v0.7.3",
|
||||
"date": "2025-07-22T14:39:54Z"
|
||||
},
|
||||
{
|
||||
"name": "sbondCo/Watcharr",
|
||||
"version": "v2.1.1",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: MickLesk (Canbiz)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
@@ -15,44 +16,43 @@ update_os
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt install -y \
|
||||
gcc \
|
||||
python3 \
|
||||
python3-dev \
|
||||
python3-venv \
|
||||
libpq-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
caddy
|
||||
|
||||
mkdir -p ~/.config/pip
|
||||
cat > ~/.config/pip/pip.conf << EOF
|
||||
[global]
|
||||
break-system-packages = true
|
||||
EOF
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
PYTHON_VERSION="3.13" setup_uv
|
||||
PG_VERSION=16 setup_postgresql
|
||||
PG_DB_NAME="healthchecks_db" PG_DB_USER="hc_user" PG_DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13) setup_postgresql_db
|
||||
|
||||
msg_info "Setup Keys (Admin / Secret)"
|
||||
msg_info "Setup Database"
|
||||
DB_NAME=healthchecks_db
|
||||
DB_USER=hc_user
|
||||
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)
|
||||
SECRET_KEY="$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)"
|
||||
ADMIN_EMAIL="admin@helper-scripts.local"
|
||||
ADMIN_PASSWORD="$DB_PASS"
|
||||
$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 "healthchecks-Credentials"
|
||||
echo "healthchecks Database User: $DB_USER"
|
||||
echo "healthchecks Database Password: $DB_PASS"
|
||||
echo "healthchecks Database Name: $DB_NAME"
|
||||
echo "healthchecks Admin Email: $ADMIN_EMAIL"
|
||||
echo "healthchecks Admin Password: $ADMIN_PASSWORD"
|
||||
} >>~/healthchecks.creds
|
||||
msg_ok "Set up Keys"
|
||||
msg_ok "Set up Database"
|
||||
|
||||
fetch_and_deploy_gh_release "healthchecks" "healthchecks/healthchecks"
|
||||
|
||||
msg_info "Installing Healthchecks (venv)"
|
||||
msg_info "Setup healthchecks"
|
||||
cd /opt/healthchecks
|
||||
python3 -m venv venv
|
||||
source venv/bin/activate
|
||||
|
||||
$STD pip install --upgrade pip wheel
|
||||
$STD pip install gunicorn -r requirements.txt
|
||||
msg_ok "Installed Python packages"
|
||||
mkdir -p /opt/healthchecks/static-collected/
|
||||
$STD uv pip install wheel gunicorn -r requirements.txt --system
|
||||
|
||||
LOCAL_IP=$(hostname -I | awk '{print $1}')
|
||||
cat <<EOF >/opt/healthchecks/hc/local_settings.py
|
||||
@@ -83,19 +83,18 @@ DATABASES = {
|
||||
}
|
||||
EOF
|
||||
|
||||
msg_info "Running Django setup"
|
||||
$STD python manage.py makemigrations
|
||||
$STD python manage.py migrate --noinput
|
||||
$STD python manage.py collectstatic --noinput
|
||||
$STD python manage.py compress
|
||||
$STD uv run -- python manage.py makemigrations
|
||||
$STD uv run -- python manage.py migrate --noinput
|
||||
$STD uv run -- python manage.py collectstatic --noinput
|
||||
$STD uv run -- python manage.py compress
|
||||
|
||||
python <<EOF
|
||||
cat <<EOF | $STD uv run -- python manage.py shell
|
||||
from django.contrib.auth import get_user_model
|
||||
User = get_user_model()
|
||||
if not User.objects.filter(email="${ADMIN_EMAIL}").exists():
|
||||
User.objects.create_superuser("${ADMIN_EMAIL}", "${ADMIN_EMAIL}", "${ADMIN_PASSWORD}")
|
||||
EOF
|
||||
msg_ok "Configured Django"
|
||||
msg_ok "Installed healthchecks"
|
||||
|
||||
msg_info "Configuring Caddy"
|
||||
cat <<EOF >/etc/caddy/Caddyfile
|
||||
@@ -109,7 +108,7 @@ ${LOCAL_IP} {
|
||||
EOF
|
||||
msg_ok "Configured Caddy"
|
||||
|
||||
msg_info "Creating systemd service"
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/healthchecks.service
|
||||
[Unit]
|
||||
Description=Healthchecks Service
|
||||
@@ -117,13 +116,12 @@ After=network.target postgresql.service
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/opt/healthchecks/
|
||||
ExecStart=/opt/healthchecks/venv/bin/gunicorn hc.wsgi:application --bind 127.0.0.1:8000
|
||||
ExecStart=/usr/local/bin/uv run -- gunicorn hc.wsgi:application --bind 127.0.0.1:8000
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
systemctl enable -q --now healthchecks caddy
|
||||
systemctl reload caddy
|
||||
msg_ok "Created Service"
|
||||
|
||||
59
install/metabase-install.sh
Normal file
59
install/metabase-install.sh
Normal file
@@ -0,0 +1,59 @@
|
||||
#!/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://www.metabase.com/
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
JAVA_VERSION="21" setup_java
|
||||
PG_VERSION="17" setup_postgresql
|
||||
PG_DB_NAME="metabase_db" PG_DB_USER="metabase" setup_postgresql_db
|
||||
|
||||
msg_info "Setting up Metabase"
|
||||
mkdir -p /opt/metabase
|
||||
RELEASE=$(get_latest_github_release "metabase/metabase")
|
||||
curl -fsSL "https://downloads.metabase.com/v${RELEASE}.x/metabase.jar" -o /opt/metabase/metabase.jar
|
||||
cd /opt/metabase
|
||||
|
||||
cat <<EOF >/opt/metabase/.env
|
||||
MB_DB_TYPE=postgres
|
||||
MB_DB_DBNAME=$PG_DB_NAME
|
||||
MB_DB_PORT=5432
|
||||
MB_DB_USER=$PG_DB_USER
|
||||
MB_DB_PASS=$PG_DB_PASS
|
||||
MB_DB_HOST=localhost
|
||||
EOF
|
||||
echo $RELEASE >~/.metabase
|
||||
msg_ok "Setup Metabase"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/metabase.service
|
||||
[Unit]
|
||||
Description=Metabase Service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=/opt/metabase/.env
|
||||
WorkingDirectory=/opt/metabase
|
||||
ExecStart=/usr/bin/java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar
|
||||
Restart=always
|
||||
SuccessExitStatus=143
|
||||
TimeoutStopSec=120
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now metabase
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
cleanup_lxc
|
||||
@@ -108,7 +108,7 @@ else
|
||||
AGENT_SERVICE="zabbix-agent"
|
||||
fi
|
||||
|
||||
systemctl restart zabbix-server
|
||||
systemctl restart zabbix-server apache2
|
||||
systemctl enable -q --now zabbix-server $AGENT_SERVICE apache2
|
||||
msg_ok "Started Services"
|
||||
|
||||
|
||||
@@ -3805,10 +3805,73 @@ function setup_postgresql() {
|
||||
local SUITE
|
||||
case "$DISTRO_CODENAME" in
|
||||
trixie | forky | sid)
|
||||
# For Debian Testing/Unstable, try PostgreSQL repo first, fallback to native packages
|
||||
if verify_repo_available "https://apt.postgresql.org/pub/repos/apt" "trixie-pgdg"; then
|
||||
SUITE="trixie-pgdg"
|
||||
|
||||
setup_deb822_repo \
|
||||
"pgdg" \
|
||||
"https://www.postgresql.org/media/keys/ACCC4CF8.asc" \
|
||||
"https://apt.postgresql.org/pub/repos/apt" \
|
||||
"$SUITE" \
|
||||
"main"
|
||||
|
||||
if ! $STD apt update; then
|
||||
msg_warn "Failed to update PostgreSQL repository, falling back to native packages"
|
||||
SUITE=""
|
||||
fi
|
||||
else
|
||||
SUITE="bookworm-pgdg"
|
||||
SUITE=""
|
||||
fi
|
||||
|
||||
# If no repo or packages not installable, use native Debian packages
|
||||
if [[ -z "$SUITE" ]] || ! apt-cache show "postgresql-${PG_VERSION}" 2>/dev/null | grep -q "Version:"; then
|
||||
msg_info "Using native Debian packages for $DISTRO_CODENAME"
|
||||
|
||||
# Install ssl-cert dependency if available
|
||||
if apt-cache search "^ssl-cert$" 2>/dev/null | grep -q .; then
|
||||
$STD apt install -y ssl-cert 2>/dev/null || true
|
||||
fi
|
||||
|
||||
if ! $STD apt install -y postgresql postgresql-client 2>/dev/null; then
|
||||
msg_error "Failed to install native PostgreSQL packages"
|
||||
return 1
|
||||
fi
|
||||
|
||||
if ! command -v psql >/dev/null 2>&1; then
|
||||
msg_error "PostgreSQL installed but psql command not found"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Restore database backup if we upgraded from previous version
|
||||
if [[ -n "$CURRENT_PG_VERSION" ]]; then
|
||||
msg_info "Restoring PostgreSQL databases from backup..."
|
||||
$STD runuser -u postgres -- psql </var/lib/postgresql/backup_$(date +%F)_v${CURRENT_PG_VERSION}.sql 2>/dev/null || {
|
||||
msg_warn "Failed to restore database backup - this may be expected for major version upgrades"
|
||||
}
|
||||
fi
|
||||
|
||||
$STD systemctl enable --now postgresql 2>/dev/null || true
|
||||
|
||||
# Get actual installed version
|
||||
INSTALLED_VERSION="$(psql -V 2>/dev/null | awk '{print $3}' | cut -d. -f1)"
|
||||
|
||||
# Add PostgreSQL binaries to PATH
|
||||
if ! grep -q '/usr/lib/postgresql' /etc/environment 2>/dev/null; then
|
||||
echo 'PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/postgresql/'"${INSTALLED_VERSION}"'/bin"' >/etc/environment
|
||||
fi
|
||||
|
||||
cache_installed_version "postgresql" "$INSTALLED_VERSION"
|
||||
msg_ok "Setup PostgreSQL $INSTALLED_VERSION (native)"
|
||||
|
||||
# Install optional modules if specified
|
||||
if [[ -n "$PG_MODULES" ]]; then
|
||||
IFS=',' read -ra MODULES <<<"$PG_MODULES"
|
||||
for module in "${MODULES[@]}"; do
|
||||
$STD apt install -y "postgresql-${INSTALLED_VERSION}-${module}" 2>/dev/null || true
|
||||
done
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
|
||||
Reference in New Issue
Block a user