mirror of
https://github.com/kellymichels/zscripts-token-savers
synced 2026-10-07 07:18:18 +00:00
Full port: zhelpers.sh library (jq config, ssh, http/tcp, archive builder, build-version, motd, port-kill), all commands (zstart/zkill/zrestart/zstop, zdeploy with 5 kind handlers, zec2/zec2online/zrepair, zbackup/zbackup_ec2/ zsync/zbackup_and_sync, zstart_docker, zsetup_mail, setup_backup_schedule via cron), Unix-path zconfig.example.json, and a bash/README.md. Verified: bash -n clean on all scripts; archive exclusions, config semantics, and zec2 tested against the real config and live server from Git Bash. Needs a Linux/macOS/WSL shakedown for lsof/rsync/nohup paths before merging. |
||
|---|---|---|
| .. | ||
| README.md | ||
| setup_backup_schedule | ||
| zbackup | ||
| zbackup_and_sync | ||
| zbackup_ec2 | ||
| zconfig.example.json | ||
| zdeploy | ||
| zec2 | ||
| zec2online | ||
| zhelpers.sh | ||
| zkill | ||
| zrepair | ||
| zrestart | ||
| zsetup_mail | ||
| zstart | ||
| zstart_docker | ||
| zstop | ||
| zsync | ||
Token Savers — bash port (Linux / macOS / WSL)
Native bash versions of the z-scripts. Same commands, same zconfig.json schema,
same behavior — no PowerShell required.
Requirements
- bash 4+,
jq,curl,zip, OpenSSH (ssh/scp) lsof(forzkill/zrestart),rsync(forzsync <project>mirror mode)- Docker + docker compose on the remote host for the deploy scripts
Debian/Ubuntu: sudo apt install jq curl zip lsof rsync
macOS: brew install jq (the rest ships with the OS)
Install
git clone https://github.com/kellymichels/zscripts-token-savers.git ~/zscripts
cd ~/zscripts/bash
cp zconfig.example.json zconfig.json # then fill in your values
chmod +x z* setup_backup_schedule
echo 'export PATH="$HOME/zscripts/bash:$PATH"' >> ~/.bashrc && source ~/.bashrc
Commands
Same set as the PowerShell versions — the project key in zconfig.json IS the
command argument:
| Command | What it does |
|---|---|
zstart <p> [--detached] |
start local dev server (python/vite/nextjs) |
zkill <p> |
free the project's dev port |
zrestart <p> [--detached] |
kill + start in one command |
zstop <p> |
stop the project's compose stack on the server |
zdeploy <p> [--note "msg"] |
zip → scp → docker compose build/up → verify build version |
zec2 [<p>] |
TCP + HTTP + live-version reachability check |
zec2online [<p>] |
deep health check; auto-starts downed stacks |
zrepair <p> |
audit/repair container + proxy routing, smoke test |
zbackup [<p>] [--tag t] |
local source zip (+ pg_dump when .env has DATABASE_URL) |
zbackup_ec2 [<p>] |
pull db dump + data dirs down from the server |
zsync |
copy new backup files offsite (never overwrites) |
zbackup_and_sync |
both of the above; cron-friendly |
setup_backup_schedule --install |
daily backup cron job |
zsetup_mail --domain d |
provision docker-mailserver mailboxes + print DNS records |
zstart_docker |
bring up the local compose stack in bash/docker/ |
Flags use GNU style (--port 3000, --detached) instead of PowerShell style
(-Port, -Detached). Detached dev servers log to /tmp/zstart-<project>.log.
Differences from the PowerShell versions
zsync <viteproject>mirrorsdist/withrsync -a --delete(robocopy /MIR equivalent).- Scheduling uses cron (
setup_backup_schedule) instead of Windows Task Scheduler. - The MOTD banner picks a random
motd/*.txtinstead of tracking a shuffle rotation. - Windows-only helpers (
.cmdlaunchers) don't exist — scripts are directly executable.