Refactor: EMQX + Update-Function + Improved NodeJS Crawling (#5907)
This commit is contained in:
parent
3140438b2f
commit
90b6712453
35
ct/emqx.sh
35
ct/emqx.sh
@ -23,14 +23,35 @@ function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /var ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
|
||||
RELEASE=$(curl -fsSL https://www.emqx.com/en/downloads/enterprise | grep -oP '/en/downloads/enterprise/v\K[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n1)
|
||||
if [[ "$RELEASE" != "$(cat ~/.emqx 2>/dev/null)" ]] || [[ ! -f ~/.emqx ]]; then
|
||||
msg_info "Stopping EMQX"
|
||||
systemctl stop emqx
|
||||
msg_ok "Stopped EMQX"
|
||||
|
||||
msg_info "Downloading EMQX v${RELEASE}"
|
||||
DEB_FILE="/tmp/emqx-enterprise-${RELEASE}-debian12-amd64.deb"
|
||||
curl -fsSL -o "$DEB_FILE" "https://www.emqx.com/en/downloads/enterprise/v${RELEASE}/emqx-enterprise-${RELEASE}-debian12-amd64.deb"
|
||||
msg_ok "Downloaded EMQX"
|
||||
|
||||
msg_info "Installing EMQX"
|
||||
$STD apt-get install -y "$DEB_FILE"
|
||||
msg_ok "Installed EMQX v${RELEASE}"
|
||||
|
||||
msg_info "Starting EMQX"
|
||||
systemctl start emqx
|
||||
echo "$RELEASE" >~/.emqx
|
||||
msg_ok "Started EMQX"
|
||||
|
||||
msg_info "Cleaning Up"
|
||||
rm -f "$DEB_FILE"
|
||||
msg_ok "Cleanup Completed"
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. EMQX is already at v${RELEASE}"
|
||||
fi
|
||||
msg_info "Updating $APP LXC"
|
||||
$STD apt-get update
|
||||
$STD apt-get -y upgrade
|
||||
msg_ok "Updated $APP LXC"
|
||||
|
||||
exit
|
||||
}
|
||||
|
||||
|
2
frontend/public/json/emqx.json
generated
2
frontend/public/json/emqx.json
generated
@ -6,7 +6,7 @@
|
||||
],
|
||||
"date_created": "2024-05-02",
|
||||
"type": "ct",
|
||||
"updateable": false,
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 18083,
|
||||
"documentation": "https://docs.emqx.com/en/emqx/latest/",
|
||||
|
@ -14,22 +14,38 @@ network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing dependencies"
|
||||
$STD apt-get install -y \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
lsb-release
|
||||
$STD apt-get install -y ca-certificates
|
||||
msg_ok "Installed dependencies"
|
||||
|
||||
msg_info "Fetching latest EMQX Enterprise version"
|
||||
LATEST_VERSION=$(curl -fsSL https://www.emqx.com/en/downloads/enterprise | grep -oP '/en/downloads/enterprise/v\K[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n1)
|
||||
if [[ -z "$LATEST_VERSION" ]]; then
|
||||
msg_error "Failed to determine latest EMQX version"
|
||||
exit 1
|
||||
fi
|
||||
msg_ok "Latest version: v$LATEST_VERSION"
|
||||
|
||||
DOWNLOAD_URL="https://www.emqx.com/en/downloads/enterprise/v$LATEST_VERSION/emqx-enterprise-${LATEST_VERSION}-debian12-amd64.deb"
|
||||
DEB_FILE="/tmp/emqx-enterprise-${LATEST_VERSION}-debian12-amd64.deb"
|
||||
|
||||
msg_info "Downloading EMQX v$LATEST_VERSION"
|
||||
$STD curl -fsSL -o "$DEB_FILE" "$DOWNLOAD_URL"
|
||||
msg_ok "Downloaded EMQX"
|
||||
|
||||
msg_info "Installing EMQX"
|
||||
curl -fsSL https://packagecloud.io/emqx/emqx/gpgkey | gpg --dearmor -o /usr/share/keyrings/emqx-archive-keyring.gpg
|
||||
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/emqx-archive-keyring.gpg] https://packagecloud.io/emqx/emqx/debian/ bookworm main" >/etc/apt/sources.list.d/emqx.list
|
||||
$STD apt-get install -y emqx
|
||||
$STD apt-get install -y "$DEB_FILE"
|
||||
echo "$LATEST_VERSION" >~/.emqx
|
||||
msg_ok "Installed EMQX"
|
||||
|
||||
msg_info "Starting EMQX service"
|
||||
$STD systemctl enable -q --now emqx
|
||||
msg_ok "Enabled EMQX service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -f "$DEB_FILE"
|
||||
$STD apt-get autoremove
|
||||
$STD apt-get autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
@ -54,10 +54,26 @@ function setup_nodejs() {
|
||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_${NODE_VERSION}.x nodistro main" \
|
||||
>/etc/apt/sources.list.d/nodesource.list
|
||||
|
||||
sleep 2
|
||||
if ! apt-get update >/dev/null 2>&1; then
|
||||
msg_warn "APT update failed – retrying in 5s"
|
||||
sleep 5
|
||||
if ! apt-get update >/dev/null 2>&1; then
|
||||
msg_error "Failed to update APT repositories after adding NodeSource"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! apt-cache policy nodejs | grep -q 'Candidate:'; then
|
||||
msg_error "Node.js package not found – repository might be broken or too fresh"
|
||||
apt-cache policy nodejs >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! apt-get install -y nodejs >/dev/null 2>&1; then
|
||||
msg_error "Failed to install Node.js ${NODE_VERSION} from NodeSource"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! apt-get install -y nodejs >/dev/null 2>&1; then
|
||||
msg_error "Failed to install Node.js ${NODE_VERSION} from NodeSource"
|
||||
|
Loading…
x
Reference in New Issue
Block a user