deployment-procedures
2
总安装量
2
周安装量
#73841
全站排名
安装命令
npx skills add https://github.com/quantumsolver/e-health-kit --skill deployment-procedures
Agent 安装分布
mcpjam
2
claude-code
2
replit
2
junie
2
windsurf
2
zencoder
2
Skill 文档
Deployment Procedures
Deployment principles and decision-making for safe production releases. Learn to THINK, not memorize scripts.
â ï¸ How to Use This Skill
This skill teaches deployment principles, not bash scripts to copy.
- Every deployment is unique
- Understand the WHY behind each step
- Adapt procedures to your platform
1. Platform Selection
Decision Tree
What are you deploying?
â
âââ Static site / JAMstack
â âââ Vercel, Netlify, Cloudflare Pages
â
âââ Simple web app
â âââ Managed â Railway, Render, Fly.io
â âââ Control â VPS + PM2/Docker
â
âââ Microservices
â âââ Container orchestration
â
âââ Serverless
âââ Edge functions, Lambda
Each Platform Has Different Procedures
| Platform | Deployment Method |
|---|---|
| Vercel/Netlify | Git push, auto-deploy |
| Railway/Render | Git push or CLI |
| VPS + PM2 | SSH + manual steps |
| Docker | Image push + orchestration |
| Kubernetes | kubectl apply |
2. Pre-Deployment Principles
The 4 Verification Categories
| Category | What to Check |
|---|---|
| Code Quality | Tests passing, linting clean, reviewed |
| Build | Production build works, no warnings |
| Environment | Env vars set, secrets current |
| Safety | Backup done, rollback plan ready |
Pre-Deployment Checklist
- All tests passing
- Code reviewed and approved
- Production build successful
- Environment variables verified
- Database migrations ready (if any)
- Rollback plan documented
- Team notified
- Monitoring ready
3. Deployment Workflow Principles
The 5-Phase Process
1. PREPARE
âââ Verify code, build, env vars
2. BACKUP
âââ Save current state before changing
3. DEPLOY
âââ Execute with monitoring open
4. VERIFY
âââ Health check, logs, key flows
5. CONFIRM or ROLLBACK
âââ All good? Confirm. Issues? Rollback.
Phase Principles
| Phase | Principle |
|---|---|
| Prepare | Never deploy untested code |
| Backup | Can’t rollback without backup |
| Deploy | Watch it happen, don’t walk away |
| Verify | Trust but verify |
| Confirm | Have rollback trigger ready |
4. Post-Deployment Verification
What to Verify
| Check | Why |
|---|---|
| Health endpoint | Service is running |
| Error logs | No new errors |
| Key user flows | Critical features work |
| Performance | Response times acceptable |
Verification Window
- First 5 minutes: Active monitoring
- 15 minutes: Confirm stable
- 1 hour: Final verification
- Next day: Review metrics
5. Rollback Principles
When to Rollback
| Symptom | Action |
|---|---|
| Service down | Rollback immediately |
| Critical errors | Rollback |
| Performance >50% degraded | Consider rollback |
| Minor issues | Fix forward if quick |
Rollback Strategy by Platform
| Platform | Rollback Method |
|---|---|
| Vercel/Netlify | Redeploy previous commit |
| Railway/Render | Rollback in dashboard |
| VPS + PM2 | Restore backup, restart |
| Docker | Previous image tag |
| K8s | kubectl rollout undo |
Rollback Principles
- Speed over perfection: Rollback first, debug later
- Don’t compound errors: One rollback, not multiple changes
- Communicate: Tell team what happened
- Post-mortem: Understand why after stable
6. Zero-Downtime Deployment
Strategies
| Strategy | How It Works |
|---|---|
| Rolling | Replace instances one by one |
| Blue-Green | Switch traffic between environments |
| Canary | Gradual traffic shift |
Selection Principles
| Scenario | Strategy |
|---|---|
| Standard release | Rolling |
| High-risk change | Blue-green (easy rollback) |
| Need validation | Canary (test with real traffic) |
7. Emergency Procedures
Service Down Priority
- Assess: What’s the symptom?
- Quick fix: Restart if unclear
- Rollback: If restart doesn’t help
- Investigate: After stable
Investigation Order
| Check | Common Issues |
|---|---|
| Logs | Errors, exceptions |
| Resources | Disk full, memory |
| Network | DNS, firewall |
| Dependencies | Database, APIs |
8. Anti-Patterns
| â Don’t | â Do |
|---|---|
| Deploy on Friday | Deploy early in week |
| Rush deployment | Follow the process |
| Skip staging | Always test first |
| Deploy without backup | Backup before deploy |
| Walk away after deploy | Monitor for 15+ min |
| Multiple changes at once | One change at a time |
9. Decision Checklist
Before deploying:
- Platform-appropriate procedure?
- Backup strategy ready?
- Rollback plan documented?
- Monitoring configured?
- Team notified?
- Time to monitor after?
10. Best Practices
- Small, frequent deploys over big releases
- Feature flags for risky changes
- Automate repetitive steps
- Document every deployment
- Review what went wrong after issues
- Test rollback before you need it
11. Frappe / Bench Deployment
Platform Selection for Frappe
| Scenario | Recommendation |
|---|---|
| Development | bench start (Werkzeug + Redis + Scheduler) |
| Single-server production | Bench + Supervisor + Nginx |
| Containerised | Official frappe_docker (Docker Compose) |
| Multi-tenant | DNS multitenant with Nginx routing |
| Cloud managed | Frappe Cloud (managed hosting) |
Production Setup (Single Server)
# 1. Setup production config (creates Supervisor + Nginx configs)
sudo bench setup production <linux_user>
# 2. Generate and enable Nginx config
bench setup nginx
sudo ln -s /etc/nginx/conf.d/frappe-bench.conf /etc/nginx/sites-enabled/
sudo nginx -t && sudo service nginx reload
# 3. Enable scheduler
bench enable-scheduler
# 4. Restart everything
sudo supervisorctl restart all
Deployment Workflow (Code Update)
# 1. Backup before deploy
bench --site mysite.localhost backup --with-files
# 2. Pull latest code
bench update --pull --reset
# 3. Or for specific app only
cd apps/my_ehealth && git pull origin main && cd ../..
# 4. Run migrations
bench --site mysite.localhost migrate
# 5. Build assets
bench build --app my_ehealth
# 6. Clear cache
bench --site mysite.localhost clear-cache
# 7. Restart
sudo supervisorctl restart all
Docker Deployment (frappe_docker)
# Clone official Docker setup
git clone https://github.com/frappe/frappe_docker.git
cd frappe_docker
# Production with custom app
export CUSTOM_APP_REPO=https://github.com/org/my_ehealth.git
docker compose -f compose.yaml up -d
Pre-Deployment Checklist (Frappe)
-
bench --site mysite.localhost run-tests --app my_ehealthpasses -
bench buildsucceeds without errors - Database backup taken (
bench backup --with-files) - DocType JSON changes committed (no uncommitted schema changes)
-
hooks.pychanges reviewed (scheduler_events, doc_events) - Custom Fields exported to fixtures
- Environment config (site_config.json) has no secrets in Git
- Redis and MariaDB/PostgreSQL services healthy
Post-Deployment Verification (Frappe)
| Check | Command / Action |
|---|---|
| Site loads | curl -I https://mysite.com |
| Scheduler running | bench doctor |
| Workers alive | sudo supervisorctl status |
| No migration errors | Check bench migrate output |
| Error log clean | Frappe Desk â Error Log |
| Background jobs | Frappe Desk â Background Jobs |
Rollback (Frappe)
# 1. Restore code
cd apps/my_ehealth && git checkout <previous_tag> && cd ../..
# 2. Restore database
bench --site mysite.localhost restore /path/to/backup.sql.gz
# 3. Migrate and rebuild
bench --site mysite.localhost migrate
bench build
sudo supervisorctl restart all
Multi-Tenant Deployment
bench config dns_multitenant on
bench new-site tenant2.example.com
bench --site tenant2.example.com install-app my_ehealth
bench setup nginx
sudo service nginx reload
Healthcare-Specific Deployment Notes
- Ensure TLS 1.2+ is configured in Nginx for all sites handling PHI.
- Set
session_expiryin site_config.json (e.g., “04:00:00” for 4 hours, or shorter for clinical workstations). - Enable
deny_multiple_sessionsif required by compliance policy. - Verify audit trail (Version DocType) is enabled for all healthcare DocTypes before go-live.
- Test backup restore procedure with PHI data to confirm encryption and integrity.
Remember: Every deployment is a risk. Minimize risk through preparation, not speed.