|
1 | | -# Tow Deploy — Claude Code Agent Skill |
2 | | -# by neurosam.AI — https://neurosam.ai |
3 | | -# |
4 | | -# Place this file in your project's .claude/skills/ directory |
5 | | -# or reference it in CLAUDE.md to enable deployment via Claude Code. |
6 | | - |
7 | 1 | You have access to the `tow` CLI for deploying applications to remote servers. |
8 | 2 |
|
9 | 3 | ## Available Commands |
10 | 4 |
|
11 | | -### Check Status |
| 5 | +### Deployment |
12 | 6 | ```bash |
13 | | -tow status -e <environment> -m <module> |
14 | | -tow status -e prod -m api-server -o json # machine-readable |
| 7 | +tow status -e <env> -m <module> # Check status |
| 8 | +tow status -e <env> # All modules status |
| 9 | +tow auto -e <env> -m <module> -y # Full deploy pipeline |
| 10 | +tow auto -e <env> -m <module> --rolling -y # Rolling deploy |
| 11 | +tow auto -e <env> -m <module> --auto-rollback -y # Deploy with auto-rollback |
| 12 | +tow deploy -e <env> -m <module> -y # Package + deploy only |
| 13 | +tow build -e <env> -m <module> # Build only |
| 14 | +tow package -e <env> -m <module> # Package only |
| 15 | +tow rollback -e <env> -m <module> -y # Rollback |
| 16 | +tow start -e <env> -m <module> # Start |
| 17 | +tow stop -e <env> -m <module> # Stop |
| 18 | +tow restart -e <env> -m <module> # Restart |
15 | 19 | ``` |
16 | 20 |
|
17 | | -### Deploy |
| 21 | +### Monitoring & Diagnostics |
18 | 22 | ```bash |
19 | | -# Full pipeline: build → package → upload → install → restart |
20 | | -tow auto -e <environment> -m <module> -y |
21 | | - |
22 | | -# With rolling deployment (one server at a time) |
23 | | -tow auto -e <environment> -m <module> --rolling -y |
24 | | - |
25 | | -# With auto-rollback on failure |
26 | | -tow auto -e <environment> -m <module> --auto-rollback -y |
| 23 | +tow logs -e <env> -m <module> -n 50 # Last 50 lines |
| 24 | +tow logs -e <env> -m <module> -f "ERROR" # Filter errors |
| 25 | +tow logs -e <env> -m <module> --all -F # Stream all servers |
| 26 | +tow logs -e <env> -m <module> -s srv-1,srv-2 # Multiple servers |
| 27 | +tow ssh -e <env> -m <module> --all -- "free -h" # Run command on servers |
| 28 | +tow ssh -e <env> -m <module> -- "df -h" # Disk space |
| 29 | +tow doctor -e <env> -m <module> # Pre-flight diagnostics |
| 30 | +tow diff -e <env> -m <module> # What will be deployed |
27 | 31 | ``` |
28 | 32 |
|
29 | | -### Rollback |
| 33 | +### History & Information |
30 | 34 | ```bash |
31 | | -tow rollback -e <environment> -m <module> -y |
32 | | -tow rollback -e <environment> -m <module> -t <timestamp> -y # specific version |
| 35 | +tow list deployments -e <env> -m <module> # Deployment history |
| 36 | +tow list deployments -e <env> -m <module> -o json # JSON format |
| 37 | +tow status -e <env> -m <module> -o json # Status as JSON |
| 38 | +tow list modules # All modules |
| 39 | +tow list envs # All environments |
33 | 40 | ``` |
34 | 41 |
|
35 | | -### Monitor |
| 42 | +### Configuration Management |
36 | 43 | ```bash |
37 | | -tow logs -e <environment> -m <module> -n 50 # last 50 lines |
38 | | -tow logs -e <environment> -m <module> -f "ERROR" -n 100 # filter errors |
39 | | -tow list deployments -e <environment> -m <module> -o json |
| 44 | +tow config server list -e <env> # List servers |
| 45 | +tow config server add -e <env> --name srv --host IP --modules mod1,mod2 |
| 46 | +tow config server remove -e <env> --name srv |
| 47 | +tow config module add my-api --type springboot --port 8080 |
| 48 | +tow config module remove my-api |
| 49 | +tow config assign -e <env> --server srv --modules mod1,mod2 |
| 50 | +tow config unassign -e <env> --server srv --modules mod1 |
40 | 51 | ``` |
41 | 52 |
|
42 | | -### Manage |
| 53 | +### Maintenance |
43 | 54 | ```bash |
44 | | -tow start -e <environment> -m <module> |
45 | | -tow stop -e <environment> -m <module> |
46 | | -tow restart -e <environment> -m <module> |
47 | | -tow cleanup -e <environment> -m <module> --keep 3 |
| 55 | +tow cleanup -e <env> -m <module> --keep 3 # Clean old deploys |
| 56 | +tow threaddump -e <env> -m <module> # Java thread dump |
| 57 | +tow provision -e <env> -m <module> --jre --tools # Server setup |
| 58 | +tow plugin list # Available plugins |
48 | 59 | ``` |
49 | 60 |
|
50 | 61 | ## Safety Rules |
51 | 62 |
|
52 | | -1. **ALWAYS check status before deploying**: `tow status -e <env> -m <module>` |
53 | | -2. **ALWAYS use `-y` flag** when running non-interactively |
54 | | -3. **For production**: Confirm with the user before running any deploy/rollback |
55 | | -4. **After deploy**: Verify with `tow status` and check logs for errors |
56 | | -5. **If deploy fails**: Check logs first, then consider `tow rollback` |
| 63 | +1. ALWAYS check status before deploying: `tow status -e <env> -m <module>` |
| 64 | +2. ALWAYS use `-y` flag when running non-interactively |
| 65 | +3. For production: confirm with the user before running any deploy/rollback |
| 66 | +4. After deploy: verify with `tow status` and check logs for errors |
| 67 | +5. If deploy fails: check logs first, then consider `tow rollback` |
57 | 68 |
|
58 | 69 | ## Common Workflows |
59 | 70 |
|
60 | 71 | ### Safe Production Deploy |
61 | 72 | ```bash |
62 | | -# 1. Check current status |
63 | | -tow status -e prod -m api-server |
64 | | - |
65 | | -# 2. Deploy with auto-rollback safety net |
66 | | -tow auto -e prod -m api-server --auto-rollback -y |
67 | | - |
68 | | -# 3. Verify |
69 | | -tow status -e prod -m api-server |
70 | | -tow logs -e prod -m api-server -f "ERROR" -n 20 |
| 73 | +tow doctor -e prod -m api-server # Pre-flight check |
| 74 | +tow diff -e prod -m api-server # Review changes |
| 75 | +tow auto -e prod -m api-server --auto-rollback -y # Deploy with safety net |
| 76 | +tow status -e prod -m api-server # Verify |
| 77 | +tow logs -e prod -m api-server -f "ERROR" -n 20 # Check for errors |
71 | 78 | ``` |
72 | 79 |
|
73 | 80 | ### Investigate Production Issue |
74 | 81 | ```bash |
75 | | -# 1. Check status |
76 | | -tow status -e prod -m api-server -o json |
77 | | - |
78 | | -# 2. Check recent logs |
79 | | -tow logs -e prod -m api-server -f "ERROR" -n 100 |
80 | | - |
81 | | -# 3. If needed, rollback |
82 | | -tow rollback -e prod -m api-server -y |
| 82 | +tow status -e prod -m api-server -o json # Quick status |
| 83 | +tow logs -e prod -m api-server -f "ERROR" -n 100 # Recent errors |
| 84 | +tow ssh -e prod -m api-server -- "free -h" # Memory check |
| 85 | +tow ssh -e prod -m api-server -- "df -h" # Disk check |
| 86 | +tow rollback -e prod -m api-server -y # Rollback if needed |
| 87 | +``` |
83 | 88 |
|
84 | | -# 4. Verify recovery |
85 | | -tow status -e prod -m api-server |
| 89 | +### Multi-Server Monitoring |
| 90 | +```bash |
| 91 | +tow logs -e prod -m kafka --all -n 10 # All Kafka servers |
| 92 | +tow ssh -e prod -m kafka --all -- "df -h" # Disk on all nodes |
| 93 | +tow status -e prod # All modules overview |
86 | 94 | ``` |
0 commit comments