Palmr: run services under low-priv user

- installing older version to test DB operations during upgrade
This commit is contained in:
vhsdream 2025-08-04 12:55:46 -04:00
parent 22fcede55a
commit 1f9db7d927
2 changed files with 12 additions and 9 deletions

View File

@ -34,10 +34,10 @@ function update_script() {
systemctl stop palmr-frontend palmr-backend systemctl stop palmr-frontend palmr-backend
msg_ok "Stopped Services" msg_ok "Stopped Services"
msg_info "Updating ${APP}"
cp /opt/palmr/apps/server/.env /opt/palmr.env cp /opt/palmr/apps/server/.env /opt/palmr.env
rm -rf /opt/palmr rm -rf /opt/palmr
fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "latest" "/opt/palmr" fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "latest" "/opt/palmr"
msg_info "Updating ${APP}"
PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)" PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)"
NODE_VERSION="20" NODE_MODULE="$PNPM" setup_nodejs NODE_VERSION="20" NODE_MODULE="$PNPM" setup_nodejs
cd /opt/palmr/apps/server cd /opt/palmr/apps/server
@ -55,6 +55,7 @@ function update_script() {
mv ./.env.example ./.env mv ./.env.example ./.env
$STD pnpm install $STD pnpm install
$STD pnpm build $STD pnpm build
chown -R palmr:palmr "$PALMR_DIR" /opt/palmr
msg_ok "Updated $APP" msg_ok "Updated $APP"
msg_info "Starting Services" msg_info "Starting Services"

View File

@ -13,11 +13,7 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing dependencies" fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "v3.14-beta" "/opt/palmr"
$STD apt-get install -y yq
msg_ok "Installed dependencies"
fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "latest" "/opt/palmr"
PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)" PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)"
NODE_VERSION="20" NODE_MODULE="$PNPM" setup_nodejs NODE_VERSION="20" NODE_MODULE="$PNPM" setup_nodejs
@ -51,7 +47,9 @@ $STD pnpm install
$STD pnpm build $STD pnpm build
msg_ok "Configured palmr frontend" msg_ok "Configured palmr frontend"
msg_info "Creating service files" msg_info "Creating user & services"
useradd -d "$PALMR_DIR" -M -s /usr/sbin/nologin -U palmr
chown -R palmr:palmr "$PALMR_DIR" /opt/palmr
cat <<EOF >/etc/systemd/system/palmr-backend.service cat <<EOF >/etc/systemd/system/palmr-backend.service
[Unit] [Unit]
Description=palmr Backend Service Description=palmr Backend Service
@ -59,6 +57,8 @@ After=network.target
[Service] [Service]
Type=simple Type=simple
User=palmr
Group=palmr
WorkingDirectory=/opt/palmr_data WorkingDirectory=/opt/palmr_data
ExecStart=/usr/bin/node /opt/palmr/apps/server/dist/server.js ExecStart=/usr/bin/node /opt/palmr/apps/server/dist/server.js
@ -73,6 +73,8 @@ After=network.target palmr-backend.service
[Service] [Service]
Type=simple Type=simple
User=palmr
Group=palmr
WorkingDirectory=/opt/palmr/apps/web WorkingDirectory=/opt/palmr/apps/web
ExecStart=/usr/bin/pnpm start ExecStart=/usr/bin/pnpm start
@ -80,7 +82,7 @@ ExecStart=/usr/bin/pnpm start
WantedBy=multi-user.target WantedBy=multi-user.target
EOF EOF
systemctl enable -q --now palmr-backend palmr-frontend systemctl enable -q --now palmr-backend palmr-frontend
msg_ok "Created services" msg_ok "Created user & services"
motd_ssh motd_ssh
customize customize