Files
Synapsis/deploy/update.sh
T
cyph3rasi 21258edd95 Replace PostgreSQL and Docker deployment with embedded Turso, Drizzle relational queries v2, native systemd deployment on port 43821, and fresh SQLite migrations.
Hop-State: A_06FP5KEDBTB4A9ZT7QB498G
Hop-Proposal: R_06FP5KDWMCKVVMQZT4MVZ28
Hop-Task: T_06FP5DZ7T0G45FG93PT90B8
Hop-Attempt: AT_06FP5DZ7T0PKQW99V27JCV8
2026-07-14 15:44:42 -07:00

44 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
APP_DIR="${APP_DIR:-/opt/synapsis}"
DATA_DIR="${DATA_DIR:-/var/lib/synapsis}"
ENV_FILE="${ENV_FILE:-/etc/synapsis.env}"
if [[ ${EUID} -ne 0 ]]; then
echo "Run this updater as root." >&2
exit 1
fi
[[ -d "$APP_DIR/.git" ]] || { echo "No Synapsis checkout found at $APP_DIR" >&2; exit 1; }
[[ -f "$ENV_FILE" ]] || { echo "Missing $ENV_FILE" >&2; exit 1; }
set -a
source "$ENV_FILE"
set +a
systemctl stop synapsis
trap 'systemctl start synapsis' EXIT
if [[ -f "${DATABASE_PATH:-$DATA_DIR/synapsis.db}" ]]; then
database_file="${DATABASE_PATH:-$DATA_DIR/synapsis.db}"
backup_dir="$DATA_DIR/backups/$(date -u +%Y%m%dT%H%M%SZ)"
install -d -o synapsis -g synapsis -m 0750 "$backup_dir"
cp "$database_file" "$backup_dir/synapsis.db"
for suffix in -wal -shm; do
if [[ -f "${database_file}${suffix}" ]]; then
cp "${database_file}${suffix}" "$backup_dir/synapsis.db${suffix}"
fi
done
chown -R synapsis:synapsis "$backup_dir"
fi
runuser -u synapsis -- git -C "$APP_DIR" pull --ff-only
runuser -u synapsis -- npm --prefix "$APP_DIR" ci
runuser -u synapsis -- npm --prefix "$APP_DIR" run db:migrate
runuser -u synapsis -- npm --prefix "$APP_DIR" run build
systemctl start synapsis
trap - EXIT
echo "Synapsis updated successfully."