make Pulse installation non-interactive (#4848)
* fix: streamline Pulse installation for web-based configuration - Remove all interactive prompts during installation - Remove .env setup (handled by web UI) - Remove configuration messages (handled by web UI) - Change install directory from /opt/pulse-proxmox to /opt/pulse - Update JSON note to reflect web-based setup wizard Pulse now features a complete web-based configuration system with automatic setup detection, making manual .env configuration obsolete. The new workflow: 1. Script installs Pulse without any user interaction 2. Service starts automatically 3. User navigates to the provided URL 4. Pulse shows setup wizard for configuration 5. No SSH or manual file editing required This provides the ideal community script experience - completely hands-off installation with configuration through the web interface. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Update pulse.sh to align with non-interactive installation - Change paths from /opt/pulse-proxmox to /opt/pulse - Remove .env file backup/restore logic since Pulse now uses web-based configuration - Simplify permissions setting to match new installation approach 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * little fixes * Update pulse.sh --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
This commit is contained in:
parent
8d50a5d8a9
commit
f2bf6c9a6f
33
ct/pulse.sh
33
ct/pulse.sh
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
# Author: rcourtman
|
# Author: rcourtman
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
@ -23,40 +23,37 @@ function update_script() {
|
|||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/pulse-proxmox ]]; then
|
if [[ ! -d /opt/pulse ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
if [[ -d /opt/pulse-monitor ]]; then
|
||||||
|
msg_error "An old installation was detected. Please recreate the LXC from scratch (https://github.com/community-scripts/ProxmoxVE/pull/4848)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/rcourtman/Pulse/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/rcourtman/Pulse/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
msg_info "Stopping ${APP}"
|
msg_info "Stopping ${APP}"
|
||||||
systemctl stop pulse-monitor
|
systemctl stop pulse
|
||||||
msg_ok "Stopped ${APP}"
|
msg_ok "Stopped ${APP}"
|
||||||
|
|
||||||
msg_info "Updating Pulse"
|
msg_info "Updating Pulse"
|
||||||
if [[ -f /opt/pulse-proxmox/.env ]]; then
|
|
||||||
cp /opt/pulse-proxmox/.env /tmp/.env.backup.pulse
|
|
||||||
fi
|
|
||||||
temp_file=$(mktemp)
|
temp_file=$(mktemp)
|
||||||
mkdir -p /opt/pulse-proxmox
|
mkdir -p /opt/pulse
|
||||||
rm -rf /opt/pulse-proxmox/*
|
rm -rf /opt/pulse/*
|
||||||
curl -fsSL "https://github.com/rcourtman/Pulse/releases/download/v${RELEASE}/pulse-v${RELEASE}.tar.gz" -o "$temp_file"
|
curl -fsSL "https://github.com/rcourtman/Pulse/releases/download/v${RELEASE}/pulse-v${RELEASE}.tar.gz" -o "$temp_file"
|
||||||
tar zxf "$temp_file" --strip-components=1 -C /opt/pulse-proxmox
|
tar zxf "$temp_file" --strip-components=1 -C /opt/pulse
|
||||||
if [[ -f /tmp/.env.backup.pulse ]]; then
|
|
||||||
mv /tmp/.env.backup.pulse /opt/pulse-proxmox/.env
|
|
||||||
fi
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated Pulse to ${RELEASE}"
|
msg_ok "Updated Pulse to ${RELEASE}"
|
||||||
|
|
||||||
msg_info "Setting permissions for /opt/pulse-proxmox..."
|
msg_info "Setting permissions for /opt/pulse..."
|
||||||
chown -R pulse:pulse "/opt/pulse-proxmox"
|
chown -R pulse:pulse "/opt/pulse"
|
||||||
find "/opt/pulse-proxmox" -type d -exec chmod 755 {} \;
|
find "/opt/pulse" -type d -exec chmod 755 {} \;
|
||||||
find "/opt/pulse-proxmox" -type f -exec chmod 644 {} \;
|
find "/opt/pulse" -type f -exec chmod 644 {} \;
|
||||||
chmod 600 /opt/pulse-proxmox/.env
|
|
||||||
msg_ok "Set permissions."
|
msg_ok "Set permissions."
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
msg_info "Starting ${APP}"
|
||||||
systemctl start pulse-monitor
|
systemctl start pulse
|
||||||
msg_ok "Started ${APP}"
|
msg_ok "Started ${APP}"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}."
|
msg_ok "No update required. ${APP} is already at ${RELEASE}."
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
"documentation": null,
|
"documentation": null,
|
||||||
"website": "https://github.com/rcourtman/Pulse",
|
"website": "https://github.com/rcourtman/Pulse",
|
||||||
"logo": "https://raw.githubusercontent.com/rcourtman/Pulse/main/src/public/logos/pulse-logo-256x256.png",
|
"logo": "https://raw.githubusercontent.com/rcourtman/Pulse/main/src/public/logos/pulse-logo-256x256.png",
|
||||||
"config_path": "/opt/pulse-proxmox/.env",
|
"config_path": "/opt/pulse/.env",
|
||||||
"description": "A lightweight monitoring application for Proxmox VE that displays real-time status for VMs and containers via a simple web interface.",
|
"description": "A lightweight monitoring application for Proxmox VE that displays real-time status for VMs and containers via a simple web interface.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
@ -35,6 +35,10 @@
|
|||||||
{
|
{
|
||||||
"text": "Create Proxmox-API-Token first: `https://github.com/rcourtman/Pulse?tab=readme-ov-file#creating-a-proxmox-api-token`",
|
"text": "Create Proxmox-API-Token first: `https://github.com/rcourtman/Pulse?tab=readme-ov-file#creating-a-proxmox-api-token`",
|
||||||
"type": "Info"
|
"type": "Info"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "After installation, access the web interface to configure your Proxmox connection details through the built-in setup wizard",
|
||||||
|
"type": "Info"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ update_os
|
|||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
diffutils
|
diffutils
|
||||||
msg_ok "Installed Core Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Creating dedicated user pulse..."
|
msg_info "Creating dedicated user pulse..."
|
||||||
if useradd -r -m -d /opt/pulse-home -s /bin/bash pulse; then
|
if useradd -r -m -d /opt/pulse-home -s /bin/bash pulse; then
|
||||||
@ -32,36 +32,21 @@ NODE_VERSION="20" install_node_and_modules
|
|||||||
msg_info "Setup Pulse"
|
msg_info "Setup Pulse"
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/rcourtman/Pulse/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/rcourtman/Pulse/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
temp_file=$(mktemp)
|
temp_file=$(mktemp)
|
||||||
mkdir -p /opt/pulse-proxmox
|
mkdir -p /opt/pulse
|
||||||
curl -fsSL "https://github.com/rcourtman/Pulse/releases/download/v${RELEASE}/pulse-v${RELEASE}.tar.gz" -o "$temp_file"
|
curl -fsSL "https://github.com/rcourtman/Pulse/releases/download/v${RELEASE}/pulse-v${RELEASE}.tar.gz" -o "$temp_file"
|
||||||
tar zxf "$temp_file" --strip-components=1 -C /opt/pulse-proxmox
|
tar zxf "$temp_file" --strip-components=1 -C /opt/pulse
|
||||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||||
msg_ok "Installed Pulse"
|
msg_ok "Installed Pulse"
|
||||||
|
|
||||||
read -rp "${TAB3}Proxmox Host (z. B. https://proxmox.example.com:8006): " PROXMOX_HOST
|
|
||||||
read -rp "${TAB3}Proxmox Token ID (z. B. user@pam!mytoken): " PROXMOX_TOKEN_ID
|
|
||||||
read -rp "${TAB3}Proxmox Token Secret: " PROXMOX_TOKEN_SECRET
|
|
||||||
read -rp "${TAB3}Port (default: 7655): " PORT
|
|
||||||
PORT="${PORT:-7655}"
|
|
||||||
|
|
||||||
msg_info "Creating .env file"
|
msg_info "Setting permissions for /opt/pulse..."
|
||||||
cat <<EOF >/opt/pulse-proxmox/.env
|
chown -R pulse:pulse "/opt/pulse"
|
||||||
PROXMOX_HOST=${PROXMOX_HOST}
|
find "/opt/pulse" -type d -exec chmod 755 {} \;
|
||||||
PROXMOX_TOKEN_ID=${PROXMOX_TOKEN_ID}
|
find "/opt/pulse" -type f -exec chmod 644 {} \;
|
||||||
PROXMOX_TOKEN_SECRET=${PROXMOX_TOKEN_SECRET}
|
|
||||||
PORT=${PORT}
|
|
||||||
EOF
|
|
||||||
msg_ok "Created .env file"
|
|
||||||
|
|
||||||
msg_info "Setting permissions for /opt/pulse-proxmox..."
|
|
||||||
chown -R pulse:pulse "/opt/pulse-proxmox"
|
|
||||||
find "/opt/pulse-proxmox" -type d -exec chmod 755 {} \;
|
|
||||||
find "/opt/pulse-proxmox" -type f -exec chmod 644 {} \;
|
|
||||||
chmod 600 /opt/pulse-proxmox/.env
|
|
||||||
msg_ok "Set permissions."
|
msg_ok "Set permissions."
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/pulse-monitor.service
|
cat <<EOF >/etc/systemd/system/pulse.service
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Pulse Monitoring Application
|
Description=Pulse Monitoring Application
|
||||||
After=network.target
|
After=network.target
|
||||||
@ -70,8 +55,8 @@ After=network.target
|
|||||||
Type=simple
|
Type=simple
|
||||||
User=pulse
|
User=pulse
|
||||||
Group=pulse
|
Group=pulse
|
||||||
WorkingDirectory=/opt/pulse-proxmox
|
WorkingDirectory=/opt/pulse
|
||||||
EnvironmentFile=/opt/pulse-proxmox/.env
|
EnvironmentFile=/opt/pulse/.env
|
||||||
ExecStart=/usr/bin/npm run start
|
ExecStart=/usr/bin/npm run start
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
RestartSec=5
|
RestartSec=5
|
||||||
@ -81,7 +66,7 @@ StandardError=journal
|
|||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
systemctl enable -q --now pulse-monitor
|
systemctl enable -q --now pulse
|
||||||
msg_ok "Created Service"
|
msg_ok "Created Service"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
|
Loading…
x
Reference in New Issue
Block a user