Updated install and update script for PR request. Update the json for the interface
This commit is contained in:
parent
64d22d0048
commit
9798c7d6c9
@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-6}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-12}"
|
||||
var_version="${var_version:-13}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
@ -24,36 +24,26 @@ function update_script() {
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -d "/opt/${APP}" ]]; then
|
||||
if [[ ! -d "/opt/guardian" ]] ; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/HydroshieldMKII/Guardian/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||
|
||||
msg_info "Stopping $APP"
|
||||
if check_for_gh_release "guardian" "HydroshieldMKII/Guardian" ; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop guardian-backend guardian-frontend
|
||||
msg_ok "Stopped $APP"
|
||||
msg_ok "Stopped Services"
|
||||
|
||||
|
||||
msg_info "Saving Database"
|
||||
if [[ -f "/opt/Guardian/backend/plex-guard.db" ]] ; then
|
||||
msg_info "Saving Database"
|
||||
cp "/opt/Guardian/backend/plex-guard.db" "/tmp/plex-guard.db.backup"
|
||||
msg_ok "Database backed up"
|
||||
fi
|
||||
|
||||
|
||||
msg_info "Updating $APP to ${RELEASE}"
|
||||
cd /tmp
|
||||
|
||||
curl -fsSL -o "${RELEASE}.zip" "https://github.com/HydroshieldMKII/Guardian/archive/refs/tags/${RELEASE}.zip"
|
||||
unzip -q "${RELEASE}.zip"
|
||||
rm -rf /opt/Guardian
|
||||
|
||||
FOLDER_NAME=$(echo "${RELEASE}" | sed 's/^v//')
|
||||
mv "Guardian-${FOLDER_NAME}/" "/opt/Guardian"
|
||||
cp /opt/guardian/.env /opt
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "guardian" "HydroshieldMKII/Guardian" "tarball" "latest" "/opt/guardian"
|
||||
mv /opt/.env /opt/guardian
|
||||
|
||||
if [[ -f "/tmp/plex-guard.db.backup" ]] ; then
|
||||
msg_info "Restoring Database"
|
||||
@ -62,28 +52,21 @@ function update_script() {
|
||||
msg_ok "Database restored"
|
||||
fi
|
||||
|
||||
msg_info "Updating Guardian"
|
||||
cd /opt/Guardian/backend
|
||||
npm ci
|
||||
npm run build
|
||||
$STD npm ci
|
||||
$STD npm run build
|
||||
|
||||
cd /opt/Guardian/frontend
|
||||
npm ci
|
||||
DEPLOYMENT_MODE=standalone npm run build
|
||||
$STD npm ci
|
||||
$STD DEPLOYMENT_MODE = standalone npm run build
|
||||
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
msg_ok "Updated Guardian"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
msg_info "Starting Services"
|
||||
systemctl start guardian-backend guardian-frontend
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_info "Cleaning Up"
|
||||
rm -rf /tmp/"${RELEASE}.zip" /tmp/"Guardian-${FOLDER_NAME}" /tmp/plex-guard.db.backup
|
||||
msg_ok "Cleanup Completed"
|
||||
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
msg_ok "Started Services"
|
||||
msg_ok "Updated Successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
@ -8,10 +8,10 @@
|
||||
"privileged": false,
|
||||
"interface_port": 3000,
|
||||
"documentation": null,
|
||||
"config_path": "",
|
||||
"config_path": "/opt/guardian/.env",
|
||||
"website": "https://github.com/HydroshieldMKII/Guardian",
|
||||
"logo": null,
|
||||
"description": "A tool to manage devices access to your Plex server with a nice Dashboard ",
|
||||
"description": "Guardian is a lightweight companion app for Plex that lets you monitor, approve or block devices in real time. It helps you enforce per-user or global policies, stop unwanted sessions automatically and grant temporary access - all through a simple web interface.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
@ -21,7 +21,7 @@
|
||||
"ram": 2048,
|
||||
"hdd": 6,
|
||||
"os": "Debian",
|
||||
"version": "12"
|
||||
"version": "13"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
@ -14,86 +14,63 @@ network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
git \
|
||||
sqlite3 \
|
||||
unzip \
|
||||
curl \
|
||||
ca-certificates \
|
||||
gnupg
|
||||
|
||||
curl -fsSL https://deb.nodesource.com/setup_24.x | bash -
|
||||
$STD apt-get install -y nodejs
|
||||
|
||||
$STD apt install -y \
|
||||
sqlite3
|
||||
NODE_VERSION="24" setup_nodejs
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Setup Guardian"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/HydroshieldMKII/Guardian/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
curl -fsSL -o "${RELEASE}.zip" "https://github.com/HydroshieldMKII/Guardian/archive/refs/tags/${RELEASE}.zip"
|
||||
unzip -q "${RELEASE}.zip"
|
||||
|
||||
FOLDER_NAME=$(echo "${RELEASE}" | sed 's/^v//')
|
||||
mv "Guardian-${FOLDER_NAME}/" "/opt/Guardian"
|
||||
|
||||
echo "${RELEASE}" >/opt/Guardian_version.txt
|
||||
msg_ok "Setup Guardian"
|
||||
fetch_and_deploy_gh_release "guardian" "HydroshieldMKII/Guardian" "tarball" "latest" "/opt/guardian"
|
||||
|
||||
|
||||
msg_info "Building backend"
|
||||
cd /opt/Guardian/backend
|
||||
npm ci
|
||||
npm run build
|
||||
$STD npm ci
|
||||
$STD npm run build
|
||||
msg_ok "Built backend"
|
||||
|
||||
msg_info "Building frontend"
|
||||
cd /opt/Guardian/frontend
|
||||
npm ci
|
||||
DEPLOYMENT_MODE=standalone npm run build
|
||||
$STD npm ci
|
||||
$STD DEPLOYMENT_MODE=standalone npm run build
|
||||
msg_ok "Built frontend"
|
||||
|
||||
msg_info "Creating Backend Service"
|
||||
msg_info "Creating Services"
|
||||
cat <<EOF >/etc/systemd/system/guardian-backend.service
|
||||
[Unit]
|
||||
Description=Guardian Backend
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/opt/Guardian/backend
|
||||
ExecStart=/usr/bin/node dist/main.js
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now guardian-backend
|
||||
msg_ok "Created Backend Service"
|
||||
|
||||
msg_info "Creating Frontend Service"
|
||||
cat <<EOF >/etc/systemd/system/guardian-frontend.service
|
||||
[Unit]
|
||||
Description=Guardian Frontend
|
||||
After=guardian-backend.service network.target
|
||||
Wants=guardian-backend.service
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/opt/Guardian/frontend
|
||||
Environment=DEPLOYMENT_MODE=standalone
|
||||
ExecStart=/usr/bin/npm run start
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
systemctl enable -q --now guardian-backend
|
||||
systemctl enable -q --now guardian-frontend
|
||||
msg_ok "Created Frontend Service"
|
||||
msg_ok "Created Services"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -f "${RELEASE}".zip
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
apt -y autoremove
|
||||
apt -y autoclean
|
||||
apt -y clean
|
||||
msg_ok "Cleaned"
|
||||
|
Loading…
x
Reference in New Issue
Block a user