P Persmon Cloud
Operations

Backups, patches and the perimeter

The boring parts that make the interesting parts safe. Nightly dumps with checksums, an off-site copy, alerts when anything stops, and a short runbook for the three situations that come up most.

Backups

Nightly schedule

Backups are kept in ~/backups with SHA-256 checksums, and every job sends a heartbeat to Uptime Kuma — a job that stops running raises a Telegram alert.

Time (UTC)JobWhat it protects
02:15mhf-backupMHF Votes database + ballot count
02:30hms-backupPersmon HMS demo database
02:45ishasha-backupIshasha Ops live database
02:50jasper-os-backupJasper OS database
03:00persmon-backupFull archive: Coolify config, volumes, tool data, SHA-256 checksums · heartbeat to Uptime Kuma
03:30hms-reseedResets the public HMS demo to clean sample data
*/10oms-cronRefreshes the OMS demo
*/15jasper-os-cronJasper OS background jobs
nightlyPC pullOff-site copy of ~/backups to Jasper's workstation
Protection

Perimeter

Runbook

Three situations and what to do

Update this website

# edit files, then they are live immediately
ssh persmon-vps
nano ~/persmon-dashboard/site/index.html
# or copy a new build from your PC:
scp -r site/* persmon-vps:~/persmon-dashboard/site/

After a Coolify update

# 1. every site answers?
for h in hello hms me coolify supabase files logs; do
  printf "%-10s " $h; curl -s -o /dev/null -w "%{http_code}\n" https://$h.persmon.cloud/; done
# 2. anything restarting?
sudo docker ps --format "{{.Names}} {{.Status}}" | grep -iE "restart|unhealthy"
# 3. if a service says "permission denied" on a config file:
sudo chmod 644 /data/coolify/services/<uuid>/<file>

After a reboot

uname -r; uptime -p
sudo ufw status | grep FWD          # port rules, not IP rules
curl -sI https://hello.persmon.cloud | head -1
sudo docker ps -q | wc -l           # expect 44

Restore drill

ls -t ~/backups | head
~/restore-drill.sh                  # restores latest dump into a scratch DB
# HMS demo: ~/hms-reseed.sh reloads sample data
On the host

Where things live

PathContents
/data/coolifyCoolify state, proxy config, certificates, managed file mounts
/var/lib/dockerImages, volumes, container layers (~20 GB)
~/backupsNightly dumps + checksums + job logs
~/*.shBackup, reseed and cron scripts (referenced by crontab — do not move)
~/persmon-dashboard/siteThis website (static files, served live)
~/archiveOld script copies and audit snapshots (safe to delete after 30 days)
~/transfersLarge one-off files moved to or from the VPS
~/filesWhat FileBrowser serves
~/capi.shCoolify API helper (runs curl inside the coolify container)
History

Changelog

Live status Coolify