fix: update Pulse scripts for v4 Go rewrite support (#6574)
* fix: update Pulse scripts for v4 Go rewrite support - Update install script to download universal package - Update update_script to preserve data directory during updates - Remove Node.js dependencies and use built-in installer - Scripts now support v4 (Go) architecture * Update pulse-install.sh * refactor: use community-scripts helper functions - Use fetch_and_deploy_gh_release as requested - Add architecture detection for multi-arch support - Simplify update script to use helper functions - Remove unnecessary code and keep it minimal * fix: use correct PULSE_DATA_DIR environment variable Changed from PULSE_CONFIG_DIR to PULSE_DATA_DIR to match what Pulse v4.0.3 actually uses. The default is /etc/pulse anyway, but being explicit ensures consistency. * fix update * fix install * address review comments: add version file creation * remove * fix: update version file after successful update * Update pulse.sh --------- Co-authored-by: Pulse Monitor <pulse@pulse-monitor.dev> Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com> Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com> Co-authored-by: rcourtman <rcourtman@github.com> Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
This commit is contained in:
parent
6fa371fffc
commit
9250f9fae9
34
ct/pulse.sh
34
ct/pulse.sh
@ -23,40 +23,32 @@ function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
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
|
||||
if [[ ! -d /opt/pulse ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
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 ~/.pulse ]]; then
|
||||
msg_error "Old Installation Found! Please recreate the container due big changes in the software."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/rcourtman/Pulse/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.pulse 2>/dev/null)" ]] || [[ ! -f ~/.pulse ]]; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop pulse
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
msg_info "Updating Pulse"
|
||||
temp_file=$(mktemp)
|
||||
mkdir -p /opt/pulse
|
||||
rm -rf /opt/pulse/*
|
||||
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
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated Pulse to ${RELEASE}"
|
||||
|
||||
msg_info "Setting permissions for /opt/pulse..."
|
||||
chown -R pulse:pulse "/opt/pulse"
|
||||
find "/opt/pulse" -type d -exec chmod 755 {} \;
|
||||
find "/opt/pulse" -type f -exec chmod 644 {} \;
|
||||
msg_ok "Set permissions."
|
||||
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
|
||||
chown -R pulse:pulse /etc/pulse /opt/pulse
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start pulse
|
||||
msg_ok "Started ${APP}"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}."
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
@ -20,37 +20,22 @@ $STD apt-get install -y \
|
||||
policykit-1
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Creating dedicated user pulse..."
|
||||
msg_info "Creating User"
|
||||
if useradd -r -m -d /opt/pulse-home -s /bin/bash pulse; then
|
||||
msg_ok "User created."
|
||||
msg_ok "Created User"
|
||||
else
|
||||
msg_error "User creation failed."
|
||||
msg_error "User creation failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
NODE_VERSION="20" setup_nodejs
|
||||
|
||||
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) }')
|
||||
temp_file=$(mktemp)
|
||||
mkdir -p /opt/pulse
|
||||
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
|
||||
touch /opt/pulse/.env
|
||||
chown pulse:pulse /opt/pulse/.env
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
|
||||
chown -R pulse:pulse /etc/pulse /opt/pulse
|
||||
msg_ok "Installed Pulse"
|
||||
|
||||
msg_info "Setting permissions for /opt/pulse..."
|
||||
chown -R pulse:pulse "/opt/pulse"
|
||||
find "/opt/pulse" -type d -exec chmod 755 {} \;
|
||||
find "/opt/pulse" -type f -exec chmod 644 {} \;
|
||||
msg_ok "Set permissions."
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/pulse.service
|
||||
[Unit]
|
||||
Description=Pulse Monitoring Application
|
||||
Description=Pulse Monitoring Server
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
@ -58,12 +43,13 @@ Type=simple
|
||||
User=pulse
|
||||
Group=pulse
|
||||
WorkingDirectory=/opt/pulse
|
||||
EnvironmentFile=/opt/pulse/.env
|
||||
ExecStart=/usr/bin/npm run start
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
ExecStart=/opt/pulse/pulse
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
Environment="PULSE_DATA_DIR=/etc/pulse"
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@ -75,7 +61,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -f "$temp_file"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
Loading…
x
Reference in New Issue
Block a user