Compare commits

..

18 Commits

Author SHA1 Message Date
GitHub Actions[bot]
25a6b1dec7 Update versions.json 2025-11-17 12:07:19 +00:00
CanbiZ
99d441e37c Improve PostgreSQL setup for Debian testing/unstable
Enhances the setup_postgresql function to prioritize the PostgreSQL upstream repository for Debian trixie, forky, and sid, with a fallback to native Debian packages if the repo is unavailable or packages cannot be installed. Adds logic for installing dependencies, restoring backups, enabling the service, updating PATH, and installing optional modules for native package installations.
2025-11-17 09:42:02 +01:00
community-scripts-pr-app[bot]
55c21416de Update CHANGELOG.md (#9213)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-17 06:21:54 +00:00
Alpha Vylly
0296bd63c3 fix: restart apache2 after installing zabbix config (#9206)
Apache must restart to load zabbix-apache-conf. Without restart,
/zabbix endpoint returns 404 until manual intervention.
2025-11-17 07:21:28 +01:00
community-scripts-pr-app[bot]
36630a7e4b Update CHANGELOG.md (#9210)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-17 00:14:21 +00:00
community-scripts-pr-app[bot]
5c0f6b282a Update versions.json (#9209)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-17 01:13:54 +01:00
community-scripts-pr-app[bot]
9937bceb17 Update CHANGELOG.md (#9204)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-16 18:49:26 +00:00
Felix Pape
fbb807bf97 fixed config_path for donetick (#9203) 2025-11-16 19:49:02 +01:00
community-scripts-pr-app[bot]
1df161b8e0 Update CHANGELOG.md (#9202)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-16 17:56:06 +00:00
ProfDrYoMan
ca2903b1ff Change backup directory to /opt for paperless-ngx (#9195)
* Change backup directory to /opt for paperless-ngx

Using /tmp for the backup is risky since many installations host it with tmpfs and thereby in RAM.

Having a bigger document base will deplete the memory on backup.

* Update paperless-ngx.sh

Added missing change.
2025-11-16 18:55:46 +01:00
community-scripts-pr-app[bot]
1405e28247 Update CHANGELOG.md (#9199)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-16 15:05:52 +00:00
community-scripts-pr-app[bot]
3257d4e9bc Update date in json (#9198)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-11-16 15:05:29 +00:00
push-app-to-main[bot]
55166a5d6c Metabase (#9190)
* 'Add new script'

* Update log message for stopping Metabase service

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2025-11-16 16:05:10 +01:00
community-scripts-pr-app[bot]
c1c4c35732 Update versions.json (#9192)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-16 13:06:41 +01:00
community-scripts-pr-app[bot]
5cc11c27d2 Update CHANGELOG.md (#9187)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-16 01:12:49 +00:00
CanbiZ
a8ae43f59f Kimai: remove deprecated admin_lte section (#9182) 2025-11-16 02:12:23 +01:00
community-scripts-pr-app[bot]
122e475a4a Update CHANGELOG.md (#9186)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-16 01:11:00 +00:00
CanbiZ
45ae66d474 healthchecks: bump python to 3.13 (#9175) 2025-11-16 02:10:39 +01:00
14 changed files with 408 additions and 156 deletions

View File

@@ -10,8 +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-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
View File

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

View File

@@ -33,7 +33,7 @@ function update_script() {
systemctl stop healthchecks
msg_ok "Stopped Services"
PYTHON_VERSION="3.12" setup_uv
PYTHON_VERSION="3.13" setup_uv
fetch_and_deploy_gh_release "healthchecks" "healthchecks/healthchecks"
msg_info "Updating healthchecks"

View File

@@ -56,6 +56,7 @@ function update_script() {
[ -f "$BACKUP_DIR/local.yaml" ] && cp "$BACKUP_DIR/local.yaml" /opt/kimai/config/packages/
rm -rf "$BACKUP_DIR"
cd /opt/kimai
sed -i '/^admin_lte:/,/^[^[:space:]]/d' config/local.yaml
$STD composer install --no-dev --optimize-autoloader
$STD bin/console kimai:update
msg_ok "Updated Kimai"

65
ct/metabase.sh Normal file
View 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}"

View File

@@ -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

View File

@@ -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",

View 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": []
}

View File

@@ -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",

View File

@@ -22,7 +22,7 @@ $STD apt install -y \
caddy
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.12" setup_uv
PYTHON_VERSION="3.13" setup_uv
PG_VERSION=16 setup_postgresql
msg_info "Setup Database"

View File

@@ -71,9 +71,6 @@ kimai:
begin: 15
end: 15
admin_lte:
options:
default_avatar: build/apple-touch-icon.png
EOF
msg_ok "Installed Kimai"

View 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

View File

@@ -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"

View File

@@ -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
;;
*)