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_ram="${var_ram:-2048}"
|
||||||
var_disk="${var_disk:-6}"
|
var_disk="${var_disk:-6}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-12}"
|
var_version="${var_version:-13}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
@ -20,72 +20,55 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
|
|
||||||
if [[ ! -d "/opt/${APP}" ]]; then
|
if [[ ! -d "/opt/guardian" ]] ; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if check_for_gh_release "guardian" "HydroshieldMKII/Guardian" ; then
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/HydroshieldMKII/Guardian/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
msg_info "Stopping Services"
|
||||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
|
||||||
|
|
||||||
msg_info "Stopping $APP"
|
|
||||||
systemctl stop guardian-backend guardian-frontend
|
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
|
||||||
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"
|
cp "/opt/Guardian/backend/plex-guard.db" "/tmp/plex-guard.db.backup"
|
||||||
msg_ok "Database backed up"
|
msg_ok "Database backed up"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
msg_info "Updating $APP to ${RELEASE}"
|
if [[ -f "/tmp/plex-guard.db.backup" ]] ; then
|
||||||
cd /tmp
|
msg_info "Restoring Database"
|
||||||
|
cp "/tmp/plex-guard.db.backup" "/opt/Guardian/backend/plex-guard.db"
|
||||||
curl -fsSL -o "${RELEASE}.zip" "https://github.com/HydroshieldMKII/Guardian/archive/refs/tags/${RELEASE}.zip"
|
rm "/tmp/plex-guard.db.backup"
|
||||||
unzip -q "${RELEASE}.zip"
|
msg_ok "Database restored"
|
||||||
rm -rf /opt/Guardian
|
|
||||||
|
|
||||||
FOLDER_NAME=$(echo "${RELEASE}" | sed 's/^v//')
|
|
||||||
mv "Guardian-${FOLDER_NAME}/" "/opt/Guardian"
|
|
||||||
|
|
||||||
if [[ -f "/tmp/plex-guard.db.backup" ]]; then
|
|
||||||
msg_info "Restoring Database"
|
|
||||||
cp "/tmp/plex-guard.db.backup" "/opt/Guardian/backend/plex-guard.db"
|
|
||||||
rm "/tmp/plex-guard.db.backup"
|
|
||||||
msg_ok "Database restored"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
msg_info "Updating Guardian"
|
||||||
cd /opt/Guardian/backend
|
cd /opt/Guardian/backend
|
||||||
npm ci
|
$STD npm ci
|
||||||
npm run build
|
$STD npm run build
|
||||||
|
|
||||||
cd /opt/Guardian/frontend
|
cd /opt/Guardian/frontend
|
||||||
npm ci
|
$STD npm ci
|
||||||
DEPLOYMENT_MODE=standalone npm run build
|
$STD DEPLOYMENT_MODE = standalone npm run build
|
||||||
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
msg_ok "Updated Guardian"
|
||||||
msg_ok "Updated $APP to v${RELEASE}"
|
|
||||||
|
|
||||||
msg_info "Starting $APP"
|
msg_info "Starting Services"
|
||||||
systemctl start guardian-backend guardian-frontend
|
systemctl start guardian-backend guardian-frontend
|
||||||
msg_ok "Started $APP"
|
msg_ok "Started Services"
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
msg_info "Cleaning Up"
|
fi
|
||||||
rm -rf /tmp/"${RELEASE}.zip" /tmp/"Guardian-${FOLDER_NAME}" /tmp/plex-guard.db.backup
|
exit
|
||||||
msg_ok "Cleanup Completed"
|
|
||||||
|
|
||||||
msg_ok "Update Successful"
|
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
|
||||||
fi
|
|
||||||
exit
|
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
|
@ -8,10 +8,10 @@
|
|||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 3000,
|
"interface_port": 3000,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
"config_path": "",
|
"config_path": "/opt/guardian/.env",
|
||||||
"website": "https://github.com/HydroshieldMKII/Guardian",
|
"website": "https://github.com/HydroshieldMKII/Guardian",
|
||||||
"logo": null,
|
"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": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
"type": "default",
|
"type": "default",
|
||||||
@ -21,7 +21,7 @@
|
|||||||
"ram": 2048,
|
"ram": 2048,
|
||||||
"hdd": 6,
|
"hdd": 6,
|
||||||
"os": "Debian",
|
"os": "Debian",
|
||||||
"version": "12"
|
"version": "13"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -14,86 +14,63 @@ network_check
|
|||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt install -y \
|
||||||
git \
|
sqlite3
|
||||||
sqlite3 \
|
NODE_VERSION="24" setup_nodejs
|
||||||
unzip \
|
|
||||||
curl \
|
|
||||||
ca-certificates \
|
|
||||||
gnupg
|
|
||||||
|
|
||||||
curl -fsSL https://deb.nodesource.com/setup_24.x | bash -
|
|
||||||
$STD apt-get install -y nodejs
|
|
||||||
|
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Setup Guardian"
|
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) }')
|
fetch_and_deploy_gh_release "guardian" "HydroshieldMKII/Guardian" "tarball" "latest" "/opt/guardian"
|
||||||
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"
|
|
||||||
|
|
||||||
|
|
||||||
msg_info "Building backend"
|
msg_info "Building backend"
|
||||||
cd /opt/Guardian/backend
|
cd /opt/Guardian/backend
|
||||||
npm ci
|
$STD npm ci
|
||||||
npm run build
|
$STD npm run build
|
||||||
msg_ok "Built backend"
|
msg_ok "Built backend"
|
||||||
|
|
||||||
msg_info "Building frontend"
|
msg_info "Building frontend"
|
||||||
cd /opt/Guardian/frontend
|
cd /opt/Guardian/frontend
|
||||||
npm ci
|
$STD npm ci
|
||||||
DEPLOYMENT_MODE=standalone npm run build
|
$STD DEPLOYMENT_MODE=standalone npm run build
|
||||||
msg_ok "Built frontend"
|
msg_ok "Built frontend"
|
||||||
|
|
||||||
msg_info "Creating Backend Service"
|
msg_info "Creating Services"
|
||||||
cat <<EOF >/etc/systemd/system/guardian-backend.service
|
cat <<EOF >/etc/systemd/system/guardian-backend.service
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Guardian Backend
|
Description=Guardian Backend
|
||||||
After=network.target
|
After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
WorkingDirectory=/opt/Guardian/backend
|
WorkingDirectory=/opt/Guardian/backend
|
||||||
ExecStart=/usr/bin/node dist/main.js
|
ExecStart=/usr/bin/node dist/main.js
|
||||||
Restart=always
|
Restart=always
|
||||||
RestartSec=3
|
RestartSec=3
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
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
|
cat <<EOF >/etc/systemd/system/guardian-frontend.service
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Guardian Frontend
|
Description=Guardian Frontend
|
||||||
After=guardian-backend.service network.target
|
After=guardian-backend.service network.target
|
||||||
Wants=guardian-backend.service
|
Wants=guardian-backend.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
WorkingDirectory=/opt/Guardian/frontend
|
WorkingDirectory=/opt/Guardian/frontend
|
||||||
Environment=DEPLOYMENT_MODE=standalone
|
Environment=DEPLOYMENT_MODE=standalone
|
||||||
ExecStart=/usr/bin/npm run start
|
ExecStart=/usr/bin/npm run start
|
||||||
Restart=always
|
Restart=always
|
||||||
RestartSec=3
|
RestartSec=3
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
systemctl enable -q --now guardian-backend
|
||||||
systemctl enable -q --now guardian-frontend
|
systemctl enable -q --now guardian-frontend
|
||||||
msg_ok "Created Frontend Service"
|
msg_ok "Created Services"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
apt -y autoremove
|
||||||
rm -f "${RELEASE}".zip
|
apt -y autoclean
|
||||||
$STD apt-get -y autoremove
|
apt -y clean
|
||||||
$STD apt-get -y autoclean
|
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user