← ClaudeAtlas

deploylisted

Deploy a project to a production server over SSH with pre-deploy checks and post-deploy verification. Use when the user says "deploy", "ship it", "push to prod", or asks to update the server.
KogaCyber/jarvis-skills · ★ 0 · AI & Automation · score 70
Install: claude install-skill KogaCyber/jarvis-skills
# Deploy to Server Deploy a project to production safely: check first, deploy, verify after. ## Config Server credentials live in `~/.jarvis/servers.md` (never in this skill, never in git): ```markdown | Name | Host | User | Auth | Projects | |------|------|------|------|----------| | prod | 1.2.3.4 | deploy | ssh key | my-app | ``` If the file doesn't exist, ask the user for server details once and create it. ## Before Deploy — ALWAYS 1. **Blackout check** — if the user defined no-deploy hours (e.g. business hours for a client-facing app), refuse and say when the next window opens 2. **Tests** — run the project's test suite; a red suite blocks the deploy 3. **Uncommitted changes** — `git status` must be clean; deploy from a pushed commit, not from the working tree ## Deploy ### Docker projects ```bash ssh $USER@$HOST "cd ~/$PROJECT && git pull && docker compose build && docker compose up -d" ``` ### Bare projects (systemd / supervisor) ```bash ssh $USER@$HOST "cd ~/$PROJECT && git pull && sudo systemctl restart $PROJECT" ``` Prefer pull-based deploys (server pulls from git) over pushing files with scp — the server state stays reproducible. ## After Deploy — ALWAYS 1. Tail logs for errors: `docker logs --tail 30 $PROJECT` or `journalctl -u $PROJECT -n 30` 2. Hit the health endpoint: `curl -sf https://myapp.com/health` — non-200 means roll back 3. Report to the user: what was deployed, commit hash, health status ## Rules - Never `kill -9` — always graceful res