Install
1
Install the plugin$
npx claudepluginhub lukeslp/geepers-mcp --plugin geepers-mcpWant just this skill?
Add to a custom plugin, then install with one command.
Description
Deploy and manage services on dr.eamer.dev server. Use when (1) starting, stopping, or restarting services, (2) checking service status and health, (3) managing Caddy reverse proxy routes, (4) deploying new services, (5) viewing service logs.
Tool Access
This skill uses the workspace's default tool permissions.
Supporting Assets
View in Repositoryscripts/caddy.pyscripts/service.pySkill Content
Server Deploy Skill
Manage services and deployments on the dr.eamer.dev server.
Service Management (sm CLI)
The server runs 27+ services managed by sm (service_manager.py).
Quick Commands
scripts/service.py status # All services status
scripts/service.py start wordblocks # Start service
scripts/service.py stop wordblocks # Stop service
scripts/service.py restart wordblocks # Restart service
scripts/service.py logs wordblocks # View logs
scripts/service.py health # Health check all services
Available Services
| Service | Port | Type | Description |
|---|---|---|---|
| wordblocks | 8847 | Flask | AAC communication app |
| lessonplanner | 4108 | Flask | EFL lesson generator |
| clinical | 1266 | Flask | Clinical reference |
| coca | 3034 | Gunicorn | Corpus linguistics API |
| storyblocks | 8000 | Flask | LLM API proxy |
| skymarshal | 5050 | Flask | Bluesky management |
| dashboard | 9999 | Flask | System monitoring |
| luke | 5211 | Node/Express | Portfolio site |
| altproxy | 1131 | Flask | Alt text generation |
| mcp-orchestrator | 5060 | Flask | MCP server |
| swarm | 5001 | Flask | Multi-agent AI |
| beltalowda | 5009 | Flask | Hierarchical orchestration |
| etymology | 5013 | Flask | Etymology visualization |
Caddy Reverse Proxy
IMPORTANT: Always use @geepers_caddy agent for Caddy changes.
The Caddyfile at /etc/caddy/Caddyfile routes:
dr.eamer.dev→ various servicesd.reamwalker.com,d.reamwalk.com→ same services
Caddy Commands
scripts/caddy.py validate # Validate config
scripts/caddy.py status # Show current routes
scripts/caddy.py add-route /api/* 5000 # Add new route
scripts/caddy.py reload # Reload config
Port Ranges
| Range | Purpose |
|---|---|
| 1000-5000 | Production services |
| 5010-5019 | Testing/development |
| 5050-5059 | Testing/development |
| 8000-9999 | Legacy/special |
Scripts
Service Operations
scripts/service.py status # All services
scripts/service.py status wordblocks # Specific service
scripts/service.py start <name> # Start
scripts/service.py stop <name> # Stop
scripts/service.py restart <name> # Restart
scripts/service.py logs <name> # Stream logs
scripts/service.py logs <name> --tail 100 # Last 100 lines
Deployment
scripts/deploy.py new myservice --port 5015 --type flask
scripts/deploy.py check myservice # Pre-deploy validation
scripts/deploy.py rollback myservice # Rollback last deploy
Health Checks
scripts/health.py # All services
scripts/health.py --service wordblocks # Specific service
scripts/health.py --json # JSON output
Deployment Workflow
-
Check port availability
scripts/service.py ports -
Validate before deploy
scripts/deploy.py check myservice -
Add Caddy route (via agent)
Use @geepers_caddy to add route /myservice/* to port 5015 -
Start service
scripts/service.py start myservice -
Verify health
scripts/health.py --service myservice
Safety
- Always validate Caddy config before reloading
- Always check port availability before deploying
- Always use the Caddy agent for route changes
- Never modify production services without backup
Troubleshooting
Service won't start:
scripts/service.py logs myservice --tail 50
Port in use:
scripts/service.py ports # Find what's using the port
502 Bad Gateway:
scripts/health.py --service myservice # Check if running
scripts/caddy.py validate # Check Caddy config
Related Skills
- code-quality - Pre-deploy validation
- data-fetch - API integration
- dream-cascade - Complex workflows
Stats
Stars1
Forks1
Last CommitMar 14, 2026
Actions