mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-02-20 03:55:56 +01:00
Compare commits
9 Commits
add-script
...
CrazyWolf1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6c3ed1b691 | ||
|
|
e9629098d1 | ||
|
|
1bc48a35b7 | ||
|
|
02a487da11 | ||
|
|
31482e7489 | ||
|
|
d97f9a0bce | ||
|
|
9b2275c980 | ||
|
|
b6a4e6a2a6 | ||
|
|
96c056ea4e |
@@ -404,6 +404,8 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
</details>
|
||||
|
||||
## 2026-02-19
|
||||
|
||||
## 2026-02-18
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
@@ -29,6 +29,13 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
if ! grep -q "PORT=3001" /opt/patchmon/backend/.env; then
|
||||
msg_warn "⚠️ The next PatchMon update will include breaking changes (port changes)."
|
||||
msg_warn "See details here: https://github.com/community-scripts/ProxmoxVE/pull/11888"
|
||||
msg_warn "Press Enter to continue with the update, or Ctrl+C to abort..."
|
||||
read -r
|
||||
fi
|
||||
|
||||
NODE_VERSION="24" setup_nodejs
|
||||
if check_for_gh_release "PatchMon" "PatchMon/PatchMon"; then
|
||||
msg_info "Stopping Service"
|
||||
@@ -47,7 +54,7 @@ function update_script() {
|
||||
PROTO="$(sed -n '/SERVER_PROTOCOL/s/[^=]*=//p' /opt/backend.env)"
|
||||
HOST="$(sed -n '/SERVER_HOST/s/[^=]*=//p' /opt/backend.env)"
|
||||
SERVER_PORT="$(sed -n '/SERVER_PORT/s/[^=]*=//p' /opt/backend.env)"
|
||||
[[ "${PROTO:-http}" == "http" ]] && PORT=":3001"
|
||||
[[ "$PROTO" == "http" ]] && PORT=":3001"
|
||||
sed -i 's/PORT=3399/PORT=3001/' /opt/backend.env
|
||||
sed -i -e "s/VERSION=.*/VERSION=$VERSION/" \
|
||||
-e "\|VITE_API_URL=|s|http.*|${PROTO:-http}://${HOST:-$LOCAL_IP}${PORT:-}/api/v1|" /opt/frontend.env
|
||||
@@ -68,7 +75,7 @@ function update_script() {
|
||||
-e 's|alias.*|alias /opt/patchmon/frontend/dist/assets;|' \
|
||||
-e '\|expires 1y|i\ root /opt/patchmon/frontend/dist;' /etc/nginx/sites-available/patchmon.conf
|
||||
if [[ -n "$SERVER_PORT" ]] && [[ "$SERVER_PORT" != "443" ]]; then
|
||||
sed -i "s/listen [[:digit:]]/listen ${SERVER_PORT};/" /etc/nginx/sites-available/patchmon.conf
|
||||
sed -i "s/listen [[:digit:]].*/listen ${SERVER_PORT};/" /etc/nginx/sites-available/patchmon.conf
|
||||
fi
|
||||
ln -sf /etc/nginx/sites-available/patchmon.conf /etc/nginx/sites-enabled/
|
||||
rm -f /etc/nginx/sites-enabled/default
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
{
|
||||
"name": "CronMaster",
|
||||
"slug": "cronmaster",
|
||||
"categories": [
|
||||
1
|
||||
],
|
||||
"date_created": "2026-02-17",
|
||||
"type": "pve",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 3000,
|
||||
"documentation": "https://github.com/fccview/cronmaster",
|
||||
"website": "https://github.com/fccview/cronmaster",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/cr-nmaster.webp",
|
||||
"config_path": "/opt/cronmaster/.env",
|
||||
"description": "Self-hosted cron job scheduler with web UI, live logs, auth and prebuilt binaries provided upstream.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "tools/addon/cronmaster.sh",
|
||||
"resources": {
|
||||
"cpu": null,
|
||||
"ram": null,
|
||||
"hdd": null,
|
||||
"os": null,
|
||||
"version": null
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": []
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"generated": "2026-02-18T12:13:31Z",
|
||||
"generated": "2026-02-19T06:23:43Z",
|
||||
"versions": [
|
||||
{
|
||||
"slug": "2fauth",
|
||||
@@ -158,9 +158,9 @@
|
||||
{
|
||||
"slug": "bookstack",
|
||||
"repo": "BookStackApp/BookStack",
|
||||
"version": "v25.12.5",
|
||||
"version": "v25.12.6",
|
||||
"pinned": false,
|
||||
"date": "2026-02-17T18:42:47Z"
|
||||
"date": "2026-02-18T19:53:07Z"
|
||||
},
|
||||
{
|
||||
"slug": "byparr",
|
||||
@@ -417,9 +417,9 @@
|
||||
{
|
||||
"slug": "ghostfolio",
|
||||
"repo": "ghostfolio/ghostfolio",
|
||||
"version": "2.239.0",
|
||||
"version": "2.240.0",
|
||||
"pinned": false,
|
||||
"date": "2026-02-15T09:51:16Z"
|
||||
"date": "2026-02-18T20:08:56Z"
|
||||
},
|
||||
{
|
||||
"slug": "gitea",
|
||||
@@ -557,9 +557,9 @@
|
||||
{
|
||||
"slug": "huntarr",
|
||||
"repo": "plexguide/Huntarr.io",
|
||||
"version": "9.3.3",
|
||||
"version": "9.3.7",
|
||||
"pinned": false,
|
||||
"date": "2026-02-18T02:35:29Z"
|
||||
"date": "2026-02-19T01:03:53Z"
|
||||
},
|
||||
{
|
||||
"slug": "immich-public-proxy",
|
||||
@@ -592,9 +592,9 @@
|
||||
{
|
||||
"slug": "jackett",
|
||||
"repo": "Jackett/Jackett",
|
||||
"version": "v0.24.1147",
|
||||
"version": "v0.24.1157",
|
||||
"pinned": false,
|
||||
"date": "2026-02-18T05:54:19Z"
|
||||
"date": "2026-02-19T05:51:02Z"
|
||||
},
|
||||
{
|
||||
"slug": "jellystat",
|
||||
@@ -1061,9 +1061,9 @@
|
||||
{
|
||||
"slug": "pelican-panel",
|
||||
"repo": "pelican-dev/panel",
|
||||
"version": "v1.0.0-beta32",
|
||||
"version": "v1.0.0-beta33",
|
||||
"pinned": false,
|
||||
"date": "2026-02-09T22:15:44Z"
|
||||
"date": "2026-02-18T21:37:11Z"
|
||||
},
|
||||
{
|
||||
"slug": "pelican-wings",
|
||||
@@ -1187,9 +1187,9 @@
|
||||
{
|
||||
"slug": "pulse",
|
||||
"repo": "rcourtman/Pulse",
|
||||
"version": "v5.1.9",
|
||||
"version": "v5.1.10",
|
||||
"pinned": false,
|
||||
"date": "2026-02-11T15:34:40Z"
|
||||
"date": "2026-02-18T14:00:51Z"
|
||||
},
|
||||
{
|
||||
"slug": "pve-scripts-local",
|
||||
@@ -1250,9 +1250,9 @@
|
||||
{
|
||||
"slug": "rdtclient",
|
||||
"repo": "rogerfar/rdt-client",
|
||||
"version": "v2.0.120",
|
||||
"version": "v2.0.121",
|
||||
"pinned": false,
|
||||
"date": "2026-02-12T02:53:51Z"
|
||||
"date": "2026-02-19T04:48:39Z"
|
||||
},
|
||||
{
|
||||
"slug": "reactive-resume",
|
||||
@@ -1313,9 +1313,9 @@
|
||||
{
|
||||
"slug": "scanopy",
|
||||
"repo": "scanopy/scanopy",
|
||||
"version": "v0.14.4",
|
||||
"version": "v0.14.6",
|
||||
"pinned": false,
|
||||
"date": "2026-02-10T03:57:28Z"
|
||||
"date": "2026-02-18T16:54:14Z"
|
||||
},
|
||||
{
|
||||
"slug": "scraparr",
|
||||
@@ -1341,9 +1341,9 @@
|
||||
{
|
||||
"slug": "semaphore",
|
||||
"repo": "semaphoreui/semaphore",
|
||||
"version": "v2.17.7",
|
||||
"version": "v2.17.8",
|
||||
"pinned": false,
|
||||
"date": "2026-02-18T08:10:16Z"
|
||||
"date": "2026-02-18T19:46:43Z"
|
||||
},
|
||||
{
|
||||
"slug": "shelfmark",
|
||||
@@ -1593,9 +1593,9 @@
|
||||
{
|
||||
"slug": "uptimekuma",
|
||||
"repo": "louislam/uptime-kuma",
|
||||
"version": "2.1.1",
|
||||
"version": "2.1.3",
|
||||
"pinned": false,
|
||||
"date": "2026-02-13T16:07:33Z"
|
||||
"date": "2026-02-19T05:37:30Z"
|
||||
},
|
||||
{
|
||||
"slug": "vaultwarden",
|
||||
@@ -1607,9 +1607,9 @@
|
||||
{
|
||||
"slug": "victoriametrics",
|
||||
"repo": "VictoriaMetrics/VictoriaMetrics",
|
||||
"version": "v1.135.0",
|
||||
"version": "v1.136.0",
|
||||
"pinned": false,
|
||||
"date": "2026-02-02T14:20:15Z"
|
||||
"date": "2026-02-16T13:17:50Z"
|
||||
},
|
||||
{
|
||||
"slug": "vikunja",
|
||||
@@ -1726,9 +1726,9 @@
|
||||
{
|
||||
"slug": "yubal",
|
||||
"repo": "guillevc/yubal",
|
||||
"version": "v0.6.0",
|
||||
"version": "v0.6.1",
|
||||
"pinned": false,
|
||||
"date": "2026-02-15T17:47:56Z"
|
||||
"date": "2026-02-18T23:24:16Z"
|
||||
},
|
||||
{
|
||||
"slug": "zigbee2mqtt",
|
||||
|
||||
@@ -47,8 +47,8 @@ sed -i -e "s|DATABASE_URL=.*|DATABASE_URL=\"postgresql://$PG_DB_USER:$PG_DB_PASS
|
||||
-e "/JWT_SECRET/s/[=$].*/=$JWT_SECRET/" \
|
||||
-e "\|CORS_ORIGIN|s|localhost|$LOCAL_IP|" \
|
||||
-e "/PORT=3001/aSERVER_PROTOCOL=http \\
|
||||
SERVER_HOST=$LOCAL_IP \\
|
||||
SERVER_PORT=3000" \
|
||||
SERVER_HOST=$LOCAL_IP \\
|
||||
SERVER_PORT=3000" \
|
||||
-e '/_ENV=production/aTRUST_PROXY=1' \
|
||||
-e '/REDIS_USER=.*/,+1d' /opt/patchmon/backend/.env
|
||||
|
||||
|
||||
@@ -1,226 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/fccview/cronmaster
|
||||
|
||||
if ! command -v curl &>/dev/null; then
|
||||
printf "\r\e[2K%b" '\033[93m Setup Source \033[m' >&2
|
||||
apt-get update >/dev/null 2>&1
|
||||
apt-get install -y curl >/dev/null 2>&1
|
||||
fi
|
||||
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
|
||||
|
||||
# ==============================================================================
|
||||
# CONFIGURATION
|
||||
# ==============================================================================
|
||||
APP="CronMaster"
|
||||
APP_TYPE="addon"
|
||||
INSTALL_PATH="/opt/cronmaster"
|
||||
CONFIG_PATH="/opt/cronmaster/.env"
|
||||
DEFAULT_PORT=3000
|
||||
|
||||
# Initialize all core functions (colors, formatting, icons, STD mode)
|
||||
load_functions
|
||||
|
||||
# ==============================================================================
|
||||
# HEADER
|
||||
# ==============================================================================
|
||||
function header_info {
|
||||
clear
|
||||
cat <<"EOF"
|
||||
______ __ ___ __
|
||||
/ ____/________ ____ / |/ /___ ______/ /____ _____
|
||||
/ / / ___/ __ \/ __ \/ /|_/ / __ `/ ___/ __/ _ \/ ___/
|
||||
/ /___/ / / /_/ / / / / / / / /_/ (__ ) /_/ __/ /
|
||||
\____/_/ \____/_/ /_/_/ /_/\__,_/____/\__/\___/_/
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
# ==============================================================================
|
||||
# OS DETECTION
|
||||
# ==============================================================================
|
||||
if [[ -f "/etc/alpine-release" ]]; then
|
||||
msg_error "Alpine is not supported for ${APP}. Use Debian/Ubuntu."
|
||||
exit 1
|
||||
elif [[ -f "/etc/debian_version" ]]; then
|
||||
OS="Debian"
|
||||
SERVICE_PATH="/etc/systemd/system/cronmaster.service"
|
||||
else
|
||||
echo -e "${CROSS} Unsupported OS detected. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ==============================================================================
|
||||
# UNINSTALL
|
||||
# ==============================================================================
|
||||
function uninstall() {
|
||||
msg_info "Uninstalling ${APP}"
|
||||
systemctl disable --now cronmaster.service &>/dev/null || true
|
||||
rm -f "$SERVICE_PATH"
|
||||
rm -rf "$INSTALL_PATH"
|
||||
rm -f "/usr/local/bin/update_cronmaster"
|
||||
rm -f "$HOME/.cronmaster"
|
||||
msg_ok "${APP} has been uninstalled"
|
||||
}
|
||||
|
||||
# ==============================================================================
|
||||
# UPDATE
|
||||
# ==============================================================================
|
||||
function update() {
|
||||
if check_for_gh_release "cronmaster" "fccview/cronmaster"; then
|
||||
msg_info "Stopping service"
|
||||
systemctl stop cronmaster.service &>/dev/null || true
|
||||
msg_ok "Stopped service"
|
||||
|
||||
msg_info "Backing up configuration"
|
||||
cp "$CONFIG_PATH" /tmp/cronmaster.env.bak 2>/dev/null || true
|
||||
msg_ok "Backed up configuration"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "cronmaster" "fccview/cronmaster" "prebuild" "latest" "$INSTALL_PATH" "cronmaster_*_prebuild.tar.gz"
|
||||
|
||||
msg_info "Restoring configuration"
|
||||
cp /tmp/cronmaster.env.bak "$CONFIG_PATH" 2>/dev/null || true
|
||||
rm -f /tmp/cronmaster.env.bak
|
||||
msg_ok "Restored configuration"
|
||||
|
||||
msg_info "Starting service"
|
||||
systemctl start cronmaster
|
||||
msg_ok "Started service"
|
||||
msg_ok "Updated successfully"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
# ==============================================================================
|
||||
# INSTALL
|
||||
# ==============================================================================
|
||||
function install() {
|
||||
# Setup Node.js (only installs if not present or different version)
|
||||
if command -v node &>/dev/null; then
|
||||
msg_ok "Node.js already installed ($(node -v))"
|
||||
else
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
fi
|
||||
|
||||
# Force fresh download by removing version cache
|
||||
rm -f "$HOME/.cronmaster"
|
||||
fetch_and_deploy_gh_release "cronmaster" "fccview/cronmaster" "prebuild" "latest" "$INSTALL_PATH" "cronmaster_*_prebuild.tar.gz"
|
||||
|
||||
local AUTH_PASS
|
||||
AUTH_PASS="$(openssl rand -base64 18 | cut -c1-13)"
|
||||
|
||||
msg_info "Creating configuration"
|
||||
cat <<EOF >"$CONFIG_PATH"
|
||||
NODE_ENV=production
|
||||
AUTH_PASSWORD=${AUTH_PASS}
|
||||
PORT=${DEFAULT_PORT}
|
||||
HOSTNAME=0.0.0.0
|
||||
NEXT_TELEMETRY_DISABLED=1
|
||||
EOF
|
||||
chmod 600 "$CONFIG_PATH"
|
||||
msg_ok "Created configuration"
|
||||
|
||||
msg_info "Creating service"
|
||||
cat <<EOF >"$SERVICE_PATH"
|
||||
[Unit]
|
||||
Description=CronMaster Service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
WorkingDirectory=${INSTALL_PATH}
|
||||
EnvironmentFile=${CONFIG_PATH}
|
||||
ExecStart=/usr/bin/node ${INSTALL_PATH}/server.js
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-target.target
|
||||
EOF
|
||||
systemctl enable --now cronmaster &>/dev/null
|
||||
msg_ok "Created and started service"
|
||||
|
||||
# Create update script
|
||||
msg_info "Creating update script"
|
||||
cat <<'UPDATEEOF' >/usr/local/bin/update_cronmaster
|
||||
#!/usr/bin/env bash
|
||||
# CronMaster Update Script
|
||||
type=update bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/cronmaster.sh)"
|
||||
UPDATEEOF
|
||||
chmod +x /usr/local/bin/update_cronmaster
|
||||
msg_ok "Created update script (/usr/local/bin/update_cronmaster)"
|
||||
|
||||
echo ""
|
||||
msg_ok "${APP} is reachable at: ${BL}http://${LOCAL_IP}:${DEFAULT_PORT}${CL}"
|
||||
msg_ok "Password: ${BL}${AUTH_PASS}${CL}"
|
||||
echo ""
|
||||
}
|
||||
|
||||
# ==============================================================================
|
||||
# MAIN
|
||||
# ==============================================================================
|
||||
|
||||
# Handle type=update (called from update script)
|
||||
if [[ "${type:-}" == "update" ]]; then
|
||||
header_info
|
||||
if [[ -d "$INSTALL_PATH" ]]; then
|
||||
update
|
||||
else
|
||||
msg_error "${APP} is not installed. Nothing to update."
|
||||
exit 1
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
header_info
|
||||
get_lxc_ip
|
||||
|
||||
# Check if already installed
|
||||
if [[ -d "$INSTALL_PATH" && -n "$(ls -A "$INSTALL_PATH" 2>/dev/null)" ]]; then
|
||||
msg_warn "${APP} is already installed."
|
||||
echo ""
|
||||
|
||||
echo -n "${TAB}Uninstall ${APP}? (y/N): "
|
||||
read -r uninstall_prompt
|
||||
if [[ "${uninstall_prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||
uninstall
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo -n "${TAB}Update ${APP}? (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 "${APP} is not installed."
|
||||
echo ""
|
||||
echo -e "${TAB}${INFO} This will install:"
|
||||
echo -e "${TAB} - Node.js 22"
|
||||
echo -e "${TAB} - CronMaster (prebuild)"
|
||||
echo ""
|
||||
|
||||
echo -n "${TAB}Install ${APP}? (y/N): "
|
||||
read -r install_prompt
|
||||
if [[ "${install_prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||
install
|
||||
else
|
||||
msg_warn "Installation cancelled. Exiting."
|
||||
exit 0
|
||||
fi
|
||||
@@ -91,6 +91,17 @@ function cleanup() {
|
||||
rm -rf $TEMP_DIR
|
||||
}
|
||||
|
||||
function check_disk_space() {
|
||||
local path="$1"
|
||||
local required_gb="$2"
|
||||
local available_kb=$(df -k "$path" | awk 'NR==2 {print $4}')
|
||||
local available_gb=$((available_kb / 1024 / 1024))
|
||||
if [ $available_gb -lt $required_gb ]; then
|
||||
return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
TEMP_DIR=$(mktemp -d)
|
||||
pushd $TEMP_DIR >/dev/null
|
||||
function send_line_to_vm() {
|
||||
@@ -605,11 +616,41 @@ if [ -z "$URL" ]; then
|
||||
exit 1
|
||||
fi
|
||||
msg_ok "Download URL: ${CL}${BL}${URL}${CL}"
|
||||
|
||||
# Check available disk space (require at least 20GB for safety)
|
||||
if ! check_disk_space "$TEMP_DIR" 20; then
|
||||
AVAILABLE_GB=$(df -h "$TEMP_DIR" | awk 'NR==2 {print $4}')
|
||||
msg_error "Insufficient disk space in temporary directory ($TEMP_DIR)."
|
||||
msg_error "Available: ${AVAILABLE_GB}, Required: ~20GB for FreeBSD image decompression."
|
||||
msg_error "Please free up space or ensure /tmp has sufficient storage."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
msg_info "Downloading FreeBSD Image"
|
||||
curl -f#SL -o "$(basename "$URL")" "$URL"
|
||||
echo -en "\e[1A\e[0K"
|
||||
msg_ok "Downloaded ${CL}${BL}$(basename "$URL")${CL}"
|
||||
|
||||
# Check disk space again before decompression
|
||||
if ! check_disk_space "$TEMP_DIR" 15; then
|
||||
AVAILABLE_GB=$(df -h "$TEMP_DIR" | awk 'NR==2 {print $4}')
|
||||
msg_error "Insufficient disk space for decompression."
|
||||
msg_error "Available: ${AVAILABLE_GB}, Required: ~15GB for decompressed image."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
msg_info "Decompressing FreeBSD Image (this may take a few minutes)"
|
||||
FILE=FreeBSD.qcow2
|
||||
unxz -cv $(basename $URL) >${FILE}
|
||||
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
||||
if ! unxz -cv $(basename $URL) >${FILE}; then
|
||||
msg_error "Failed to decompress FreeBSD image."
|
||||
msg_error "This is usually caused by insufficient disk space."
|
||||
df -h "$TEMP_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Remove the compressed file to save space
|
||||
rm -f "$(basename "$URL")"
|
||||
msg_ok "Decompressed ${CL}${BL}${FILE}${CL}"
|
||||
|
||||
STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}')
|
||||
case $STORAGE_TYPE in
|
||||
@@ -649,7 +690,7 @@ qm set $VMID \
|
||||
-boot order=scsi0 \
|
||||
-serial0 socket \
|
||||
-tags community-script >/dev/null
|
||||
qm resize $VMID scsi0 10G >/dev/null
|
||||
qm resize $VMID scsi0 20G >/dev/null
|
||||
DESCRIPTION=$(
|
||||
cat <<EOF
|
||||
<div align='center'>
|
||||
|
||||
Reference in New Issue
Block a user