tlc-claude-code 1.2.10 → 1.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/deploy.md +108 -10
- package/help.md +2 -1
- package/init.md +22 -0
- package/new-project.md +32 -0
- package/package.json +1 -1
- package/tlc.md +108 -0
package/README.md
CHANGED
|
@@ -77,7 +77,7 @@ TLC knows where you are and what's next.
|
|
|
77
77
|
### For Enterprise
|
|
78
78
|
|
|
79
79
|
- **CI/CD pipelines** — GitHub Actions, GitLab, Azure, CircleCI
|
|
80
|
-
- **
|
|
80
|
+
- **Dev server** — Branch previews with auth & Slack webhooks
|
|
81
81
|
- **Multi-tool export** — Works with Cursor, Copilot, Continue, Cody
|
|
82
82
|
|
|
83
83
|
---
|
|
@@ -110,7 +110,7 @@ TLC knows where you are and what's next.
|
|
|
110
110
|
| `/tlc:ci` | Generate CI/CD pipeline |
|
|
111
111
|
| `/tlc:issues` | Sync with GitHub/Jira/Linear |
|
|
112
112
|
| `/tlc:export` | Export for Cursor/Copilot/etc |
|
|
113
|
-
| `/tlc:deploy` |
|
|
113
|
+
| `/tlc:deploy` | Dev server deployment |
|
|
114
114
|
|
|
115
115
|
[**See all commands →**](help.md)
|
|
116
116
|
|
|
@@ -290,9 +290,9 @@ Commands install to `.claude/commands/tlc/`
|
|
|
290
290
|
|
|
291
291
|
---
|
|
292
292
|
|
|
293
|
-
##
|
|
293
|
+
## TLC Dev Server
|
|
294
294
|
|
|
295
|
-
Deploy TLC server for your team on any
|
|
295
|
+
Deploy TLC dev server for your team on any Linux server.
|
|
296
296
|
|
|
297
297
|
### Quick Setup (Ubuntu)
|
|
298
298
|
|
|
@@ -310,8 +310,8 @@ curl -fsSL https://raw.githubusercontent.com/jurgencalleja/TLC/main/scripts/vps-
|
|
|
310
310
|
|
|
311
311
|
### Requirements
|
|
312
312
|
|
|
313
|
-
- Ubuntu 22.04+
|
|
314
|
-
- Domain with wildcard DNS (`*.project.com →
|
|
313
|
+
- Ubuntu 22.04+ server (2GB+ RAM)
|
|
314
|
+
- Domain with wildcard DNS (`*.project.com → SERVER_IP`)
|
|
315
315
|
- GitHub/GitLab repo access
|
|
316
316
|
|
|
317
317
|
### Manual Setup
|
|
@@ -340,7 +340,7 @@ curl -fsSL https://raw.githubusercontent.com/jurgencalleja/TLC/main/scripts/vps-
|
|
|
340
340
|
|
|
341
341
|
5. **Configure webhook** in GitHub/GitLab repo settings
|
|
342
342
|
|
|
343
|
-
[**Full
|
|
343
|
+
[**Full Dev Server Guide →**](docs/devserver.md)
|
|
344
344
|
|
|
345
345
|
---
|
|
346
346
|
|
|
@@ -373,7 +373,7 @@ helm install tlc tlc/tlc-server \
|
|
|
373
373
|
|
|
374
374
|
- **[Help / All Commands](help.md)** — Complete command reference
|
|
375
375
|
- **[Team Workflow](docs/team-workflow.md)** — Guide for teams (engineers + PO + QA)
|
|
376
|
-
- **[
|
|
376
|
+
- **[Dev Server](docs/devserver.md)** — Deploy on Ubuntu server
|
|
377
377
|
- **[Kubernetes Deployment](docs/kubernetes-deployment.md)** — Deploy on K8s
|
|
378
378
|
|
|
379
379
|
---
|
package/deploy.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# /tlc:deploy -
|
|
1
|
+
# /tlc:deploy - TLC Dev Server
|
|
2
2
|
|
|
3
|
-
Deploy your TLC project to a
|
|
3
|
+
Deploy your TLC project to a remote dev server for team collaboration.
|
|
4
4
|
|
|
5
5
|
## Usage
|
|
6
6
|
|
|
@@ -9,17 +9,115 @@ Deploy your TLC project to a VPS for team collaboration.
|
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
Commands:
|
|
12
|
-
- `setup` -
|
|
12
|
+
- `setup` - Generate server config and setup instructions
|
|
13
13
|
- `push` - Deploy current branch
|
|
14
14
|
- `status` - Check deployment status
|
|
15
15
|
- `logs` - View deployment logs
|
|
16
16
|
- `users` - Manage server users
|
|
17
17
|
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Quick Setup (Terminal)
|
|
21
|
+
|
|
22
|
+
Run `/tlc:deploy setup` to generate your server config:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
TLC Dev Server Setup
|
|
26
|
+
════════════════════════════════════════════════════════════════════
|
|
27
|
+
|
|
28
|
+
Project Configuration
|
|
29
|
+
─────────────────────
|
|
30
|
+
Name: my-awesome-app
|
|
31
|
+
Repo: git@github.com:myorg/my-awesome-app.git
|
|
32
|
+
Domain: (enter your domain)
|
|
33
|
+
|
|
34
|
+
Domain for dev server: myapp.example.com
|
|
35
|
+
|
|
36
|
+
Generating config...
|
|
37
|
+
|
|
38
|
+
════════════════════════════════════════════════════════════════════
|
|
39
|
+
STEP 1: Run this on your Ubuntu server
|
|
40
|
+
════════════════════════════════════════════════════════════════════
|
|
41
|
+
|
|
42
|
+
┌────────────────────────────────────────────────────────────────────┐
|
|
43
|
+
│ │
|
|
44
|
+
│ curl -fsSL https://tlc.dev/install | bash -s -- \ │
|
|
45
|
+
│ --project "my-awesome-app" \ │
|
|
46
|
+
│ --repo "git@github.com:myorg/my-awesome-app.git" \ │
|
|
47
|
+
│ --domain "myapp.example.com" \ │
|
|
48
|
+
│ --webhook-secret "a1b2c3d4e5f6g7h8" │
|
|
49
|
+
│ │
|
|
50
|
+
└────────────────────────────────────────────────────────────────────┘
|
|
51
|
+
[Copy to clipboard]
|
|
52
|
+
|
|
53
|
+
════════════════════════════════════════════════════════════════════
|
|
54
|
+
STEP 2: Configure DNS
|
|
55
|
+
════════════════════════════════════════════════════════════════════
|
|
56
|
+
|
|
57
|
+
Add these DNS records pointing to your server IP:
|
|
58
|
+
|
|
59
|
+
*.myapp.example.com → YOUR_SERVER_IP
|
|
60
|
+
dashboard.myapp.example.com → YOUR_SERVER_IP
|
|
61
|
+
|
|
62
|
+
════════════════════════════════════════════════════════════════════
|
|
63
|
+
STEP 3: Add GitHub Webhook
|
|
64
|
+
════════════════════════════════════════════════════════════════════
|
|
65
|
+
|
|
66
|
+
Go to: https://github.com/myorg/my-awesome-app/settings/hooks/new
|
|
67
|
+
|
|
68
|
+
Payload URL: https://dashboard.myapp.example.com/api/webhook
|
|
69
|
+
Content type: application/json
|
|
70
|
+
Secret: a1b2c3d4e5f6g7h8
|
|
71
|
+
Events: Just the push event
|
|
72
|
+
|
|
73
|
+
════════════════════════════════════════════════════════════════════
|
|
74
|
+
STEP 4: Done!
|
|
75
|
+
════════════════════════════════════════════════════════════════════
|
|
76
|
+
|
|
77
|
+
Once server setup completes, you'll get:
|
|
78
|
+
|
|
79
|
+
Dashboard: https://dashboard.myapp.example.com
|
|
80
|
+
Main branch: https://main.myapp.example.com
|
|
81
|
+
Feature branches: https://{branch}.myapp.example.com
|
|
82
|
+
|
|
83
|
+
Admin credentials will be shown after server setup.
|
|
84
|
+
|
|
85
|
+
────────────────────────────────────────────────────────────────────
|
|
86
|
+
Config saved to .tlc.json
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Process
|
|
90
|
+
|
|
91
|
+
1. **Read project info** from `.tlc.json` or `package.json`
|
|
92
|
+
2. **Ask for domain** if not configured
|
|
93
|
+
3. **Generate webhook secret** (random 16 chars)
|
|
94
|
+
4. **Output setup command** with all config embedded
|
|
95
|
+
5. **Save config** to `.tlc.json`
|
|
96
|
+
|
|
97
|
+
```javascript
|
|
98
|
+
// Config generation
|
|
99
|
+
const config = {
|
|
100
|
+
project: packageJson.name,
|
|
101
|
+
repo: getGitRemoteUrl(),
|
|
102
|
+
domain: userInput.domain,
|
|
103
|
+
webhookSecret: crypto.randomBytes(16).toString('hex')
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
// Generate one-liner
|
|
107
|
+
const command = `curl -fsSL https://tlc.dev/install | bash -s -- \\
|
|
108
|
+
--project "${config.project}" \\
|
|
109
|
+
--repo "${config.repo}" \\
|
|
110
|
+
--domain "${config.domain}" \\
|
|
111
|
+
--webhook-secret "${config.webhookSecret}"`;
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
18
116
|
## Architecture
|
|
19
117
|
|
|
20
118
|
```
|
|
21
119
|
┌─────────────────────────────────────────────────────────────┐
|
|
22
|
-
│
|
|
120
|
+
│ TLC Dev Server │
|
|
23
121
|
│ │
|
|
24
122
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
|
25
123
|
│ │ Branch │ │ Branch │ │ Branch │ │
|
|
@@ -65,7 +163,7 @@ Commands:
|
|
|
65
163
|
|
|
66
164
|
TLC Deployment Server Setup
|
|
67
165
|
|
|
68
|
-
|
|
166
|
+
Dev Server Configuration:
|
|
69
167
|
Host: deploy.example.com
|
|
70
168
|
SSH Key: ~/.ssh/id_rsa (detected)
|
|
71
169
|
|
|
@@ -82,7 +180,7 @@ Domain Configuration:
|
|
|
82
180
|
Branches will be: {branch}.project.example.com
|
|
83
181
|
|
|
84
182
|
Configure DNS:
|
|
85
|
-
*.project.example.com →
|
|
183
|
+
*.project.example.com → SERVER_IP
|
|
86
184
|
|
|
87
185
|
Admin User:
|
|
88
186
|
Email: admin@example.com
|
|
@@ -183,7 +281,7 @@ app.get('/api/status', requireRole(['admin', 'engineer', 'qa', 'po']));
|
|
|
183
281
|
|
|
184
282
|
Deploying branch: feat-auth
|
|
185
283
|
|
|
186
|
-
Pushing to
|
|
284
|
+
Pushing to dev server...
|
|
187
285
|
✓ Code uploaded
|
|
188
286
|
✓ Dependencies installed
|
|
189
287
|
✓ Tests passed (23/23)
|
|
@@ -363,7 +461,7 @@ EXPOSE 3000
|
|
|
363
461
|
CMD ["npm", "start"]
|
|
364
462
|
```
|
|
365
463
|
|
|
366
|
-
### docker-compose.yml (on
|
|
464
|
+
### docker-compose.yml (on dev server)
|
|
367
465
|
|
|
368
466
|
```yaml
|
|
369
467
|
version: '3.8'
|
|
@@ -434,7 +532,7 @@ server {
|
|
|
434
532
|
Generating deployment SSH key...
|
|
435
533
|
✓ Key generated: ~/.ssh/tlc_deploy
|
|
436
534
|
|
|
437
|
-
Add this to
|
|
535
|
+
Add this to server authorized_keys:
|
|
438
536
|
ssh-rsa AAAA... tlc-deploy
|
|
439
537
|
|
|
440
538
|
Add to GitHub deploy keys (read-only):
|
|
@@ -443,7 +541,7 @@ Add to GitHub deploy keys (read-only):
|
|
|
443
541
|
|
|
444
542
|
### Environment Variables
|
|
445
543
|
|
|
446
|
-
Secrets stored on
|
|
544
|
+
Secrets stored on dev server:
|
|
447
545
|
|
|
448
546
|
```bash
|
|
449
547
|
# /opt/tlc-deploy/.env
|
package/help.md
CHANGED
|
@@ -92,7 +92,8 @@ Launches the visual dashboard. Detects where you are, shows what's next.
|
|
|
92
92
|
| `/tlc:export --list` | Show all supported AI tools |
|
|
93
93
|
| `/tlc:export --detect` | Detect which AI tool is running |
|
|
94
94
|
| `/tlc:deploy` | Show deployment status |
|
|
95
|
-
| `/tlc:deploy
|
|
95
|
+
| `/tlc:deploy setup` | Generate server config + copy-paste install command |
|
|
96
|
+
| `/tlc:deploy start <branch>` | Deploy branch to dev server |
|
|
96
97
|
| `/tlc:deploy stop <branch>` | Stop branch deployment |
|
|
97
98
|
| `/tlc:deploy logs <branch>` | View deployment logs |
|
|
98
99
|
| `/tlc:deploy list` | List all active deployments |
|
package/init.md
CHANGED
|
@@ -388,6 +388,28 @@ Next steps:
|
|
|
388
388
|
- Run /tlc:quick for ad-hoc tasks with tests
|
|
389
389
|
```
|
|
390
390
|
|
|
391
|
+
### Step 13: Offer Dev Server Setup
|
|
392
|
+
|
|
393
|
+
After initialization, offer remote dev server:
|
|
394
|
+
|
|
395
|
+
```
|
|
396
|
+
───────────────────────────────────────────────────────────────
|
|
397
|
+
Dev Server (Optional)
|
|
398
|
+
───────────────────────────────────────────────────────────────
|
|
399
|
+
|
|
400
|
+
Set up a shared dev server for team collaboration?
|
|
401
|
+
• Each branch gets its own preview URL
|
|
402
|
+
• QA and PO can access without local setup
|
|
403
|
+
• Slack notifications for deployments
|
|
404
|
+
|
|
405
|
+
[1] Yes, set up dev server
|
|
406
|
+
[2] Skip for now
|
|
407
|
+
|
|
408
|
+
Choice [1/2]: _
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
**If [1] selected:** Run the dev server setup flow from `/tlc:deploy setup`.
|
|
412
|
+
|
|
391
413
|
## Usage
|
|
392
414
|
|
|
393
415
|
```
|
package/new-project.md
CHANGED
|
@@ -380,6 +380,37 @@ npx cypress open
|
|
|
380
380
|
Ready to build. Run /tlc:plan to create your first phase.
|
|
381
381
|
```
|
|
382
382
|
|
|
383
|
+
### Step 10: Offer Dev Server Setup
|
|
384
|
+
|
|
385
|
+
After project is configured, offer remote dev server:
|
|
386
|
+
|
|
387
|
+
```
|
|
388
|
+
───────────────────────────────────────────────────────────────
|
|
389
|
+
Dev Server (Optional)
|
|
390
|
+
───────────────────────────────────────────────────────────────
|
|
391
|
+
|
|
392
|
+
Set up a shared dev server for team collaboration?
|
|
393
|
+
• Each branch gets its own preview URL
|
|
394
|
+
• QA and PO can access without local setup
|
|
395
|
+
• Slack notifications for deployments
|
|
396
|
+
|
|
397
|
+
[1] Yes, set up dev server
|
|
398
|
+
[2] Skip for now
|
|
399
|
+
|
|
400
|
+
Choice [1/2]: _
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
**If [1] selected:**
|
|
404
|
+
|
|
405
|
+
1. Ask for server domain
|
|
406
|
+
2. Generate webhook secret
|
|
407
|
+
3. Show setup command for server
|
|
408
|
+
4. Show DNS instructions
|
|
409
|
+
5. Show GitHub webhook config
|
|
410
|
+
6. Save config to `.tlc.json`
|
|
411
|
+
|
|
412
|
+
See `/tlc:deploy setup` for full output format.
|
|
413
|
+
|
|
383
414
|
## Usage
|
|
384
415
|
|
|
385
416
|
```
|
|
@@ -392,3 +423,4 @@ Interactive flow that:
|
|
|
392
423
|
3. Lets you adjust
|
|
393
424
|
4. Creates roadmap
|
|
394
425
|
5. Sets up tests
|
|
426
|
+
6. Offers dev server setup
|
package/package.json
CHANGED
package/tlc.md
CHANGED
|
@@ -256,6 +256,114 @@ Options:
|
|
|
256
256
|
Choice [1/2]: _
|
|
257
257
|
```
|
|
258
258
|
|
|
259
|
+
## After Project Setup (First Time)
|
|
260
|
+
|
|
261
|
+
After `/tlc:new-project` or `/tlc:init` completes, show dev server option:
|
|
262
|
+
|
|
263
|
+
```
|
|
264
|
+
TLC v{{VERSION}}
|
|
265
|
+
═══════════════════════════════════════════════════════════════
|
|
266
|
+
|
|
267
|
+
✓ Project configured: my-awesome-app
|
|
268
|
+
|
|
269
|
+
───────────────────────────────────────────────────────────────
|
|
270
|
+
Dev Server Setup (Optional)
|
|
271
|
+
───────────────────────────────────────────────────────────────
|
|
272
|
+
|
|
273
|
+
Deploy to a shared dev server for team collaboration?
|
|
274
|
+
Each branch gets its own preview URL.
|
|
275
|
+
|
|
276
|
+
[1] Yes, set up dev server → Shows setup instructions
|
|
277
|
+
[2] Skip for now → Continue to project
|
|
278
|
+
|
|
279
|
+
Choice [1/2]: _
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
**If [1] selected**, show inline setup panel:
|
|
283
|
+
|
|
284
|
+
```
|
|
285
|
+
═══════════════════════════════════════════════════════════════
|
|
286
|
+
TLC Dev Server Setup
|
|
287
|
+
═══════════════════════════════════════════════════════════════
|
|
288
|
+
|
|
289
|
+
Project: my-awesome-app
|
|
290
|
+
Repo: git@github.com:myorg/my-awesome-app.git
|
|
291
|
+
|
|
292
|
+
Enter your server domain: myapp.example.com
|
|
293
|
+
|
|
294
|
+
───────────────────────────────────────────────────────────────
|
|
295
|
+
STEP 1: Run on Ubuntu Server
|
|
296
|
+
───────────────────────────────────────────────────────────────
|
|
297
|
+
|
|
298
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
299
|
+
│ curl -fsSL https://tlc.dev/install | bash -s -- \ │
|
|
300
|
+
│ --project "my-awesome-app" \ │
|
|
301
|
+
│ --repo "git@github.com:myorg/my-awesome-app.git" \ │
|
|
302
|
+
│ --domain "myapp.example.com" \ │
|
|
303
|
+
│ --webhook-secret "x7k9m2p4q8r1s5t3" │
|
|
304
|
+
└─────────────────────────────────────────────────────────────┘
|
|
305
|
+
|
|
306
|
+
───────────────────────────────────────────────────────────────
|
|
307
|
+
STEP 2: Configure DNS
|
|
308
|
+
───────────────────────────────────────────────────────────────
|
|
309
|
+
|
|
310
|
+
Point these to your server:
|
|
311
|
+
*.myapp.example.com → SERVER_IP
|
|
312
|
+
dashboard.myapp.example.com → SERVER_IP
|
|
313
|
+
|
|
314
|
+
───────────────────────────────────────────────────────────────
|
|
315
|
+
STEP 3: Add Webhook to GitHub
|
|
316
|
+
───────────────────────────────────────────────────────────────
|
|
317
|
+
|
|
318
|
+
URL: https://dashboard.myapp.example.com/api/webhook
|
|
319
|
+
Secret: x7k9m2p4q8r1s5t3
|
|
320
|
+
|
|
321
|
+
───────────────────────────────────────────────────────────────
|
|
322
|
+
What You Get
|
|
323
|
+
───────────────────────────────────────────────────────────────
|
|
324
|
+
|
|
325
|
+
Dashboard: https://dashboard.myapp.example.com
|
|
326
|
+
Main branch: https://main.myapp.example.com
|
|
327
|
+
Feature branches: https://{branch}.myapp.example.com
|
|
328
|
+
|
|
329
|
+
───────────────────────────────────────────────────────────────
|
|
330
|
+
|
|
331
|
+
Config saved to .tlc.json
|
|
332
|
+
|
|
333
|
+
Press Enter to continue...
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
### Config Generation
|
|
337
|
+
|
|
338
|
+
When generating the setup command:
|
|
339
|
+
|
|
340
|
+
```javascript
|
|
341
|
+
// Read from project
|
|
342
|
+
const projectName = tlcJson.project || packageJson.name;
|
|
343
|
+
const repoUrl = execSync('git remote get-url origin').toString().trim();
|
|
344
|
+
|
|
345
|
+
// Ask user for domain
|
|
346
|
+
const domain = await prompt('Enter your server domain:');
|
|
347
|
+
|
|
348
|
+
// Generate secure webhook secret
|
|
349
|
+
const webhookSecret = crypto.randomBytes(8).toString('hex');
|
|
350
|
+
|
|
351
|
+
// Save to .tlc.json
|
|
352
|
+
tlcJson.deploy = {
|
|
353
|
+
domain: domain,
|
|
354
|
+
webhookSecret: webhookSecret,
|
|
355
|
+
dashboardUrl: `https://dashboard.${domain}`,
|
|
356
|
+
configured: false // Set to true after server confirms
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
// Generate command
|
|
360
|
+
const setupCommand = `curl -fsSL https://tlc.dev/install | bash -s -- \\
|
|
361
|
+
--project "${projectName}" \\
|
|
362
|
+
--repo "${repoUrl}" \\
|
|
363
|
+
--domain "${domain}" \\
|
|
364
|
+
--webhook-secret "${webhookSecret}"`;
|
|
365
|
+
```
|
|
366
|
+
|
|
259
367
|
## All Phases Complete
|
|
260
368
|
|
|
261
369
|
```
|