AI Automation

Claude tổng hợp lệnh file cần chạy và tạo ngay khi làm project mới

Dev và sysadmin thường mất 15-30 phút mỗi lần setup dự án mới: cài gói, tạo cấu trúc thư mục, viết file config, cấp quyền. Làm việc này cho lần thứ 10 cũng chán như lần đầu, còn dễ sót bước. Claude AI giải quyết triệt để: bạn chỉ cần mô tả dự án một lần, Claude sẽ tổng hợp toàn bộ lệnh và file cần chạy, thậm chí tự động tạo ra luôn. Bài này mình hướng dẫn cách xây dựng "kit" lệnh cho Claude, chạy trên local hoặc remote VPS, giúp mỗi lần start project mới chỉ mất đúng 1 phút.

Yêu cầu trước khi bắt đầu

  • Máy đã cài Node.js 20+ và npm/yarn (dùng cho script tự động nếu cần)
  • VS Code + Claude extension (Claude Dev / Claude Code, bản 2026 đã hỗ trợ mạnh remote)
  • Hoặc terminal có quyền sudo trên VPS Linux (Ubuntu 24.04 / Debian 12 là môi trường mình dùng trong bài)
  • Tài khoản Anthropic API hoặc Claude Pro, nên có API key để gọi từ script

Vì sao nên để Claude tổng hợp lệnh thay vì gõ tay?

Khi bắt đầu project mới, dự án web, Docker stack, hay script CI/CD, bạn thường cần:

  • Cài đặt OS packages (nginx, postgresql, redis, python/php version cụ thể)
  • Tạo file cấu hình đúng spec (nginx site, docker-compose, .env, Makefile)
  • Thiết lập môi trường dev/prod (git init, gitignore, thư mục chuẩn, user permission)
  • Chạy các lệnh migrate, seed, hoặc generate secret key

Gõ tay 10-15 lệnh lẻ dễ sai thứ tự, sai syntax, sót bước. Claude không mắc lỗi đó: nó giữ toàn bộ ngữ cảnh, sinh lệnh đúng thứ tự, và có thể gọi tool run command để thực thi luôn. Cái hay hơn là bạn copy một lần prompt cho dạng project hay làm rồi tái sử dụng mãi mãi.

Bước 1, Xây dựng "project kit" cho Claude

Cốt lõi là bạn soạn sẵn file .claude-project.json hoặc file Markdown mô tả cấu trúc project. Claude sẽ đọc file đó + lệnh ngắn của bạn để ra toàn bộ lệnh thiết lập.

Ví dụ file /home/user/project-templates/next-tailwind-nginx.md:

# Next.js + Tailwind + Nginx reverse proxy

## OS
- Ubuntu 24.04 LTS, user deploy có sudo

## Stack cần cài
- Node.js 20 LTS (nvm)
- pnpm
- Nginx 1.26+
- PostgreSQL 16
- UFW (chỉ mở 22, 80, 443)

## Cấu trúc project
```
/var/www/my-app/
├── backend/       # Next.js API
├── frontend/      # Next.js frontend (mono)
├── nginx/         # file config site
├── .env.example
├── Makefile (start, stop, logs, deploy)
└── scripts/
    └── setup.sh (tạo DB, user, secret)
```

## Yêu cầu đặc biệt
- Nginx reverse proxy trỏ subdomain tới localhost:3000
- Nginx có SSL với certbot tự động
- PostgreSQL database tên myapp, user myapp, pass generate tự động ghi vào .env

Sau đó vào Claude (terminal hoặc VS Code), gõ prompt:

Đọc file /home/user/project-templates/next-tailwind-nginx.md.
Tổng hợp tất cả lệnh cần chạy để setup project này lên VPS mới tinh.
Gom vào 1 script install.sh, có comment từng bước.
Sau đó chạy script đó.

Claude sẽ sinh lệnh cài nvm, cài Node, cấu hình nginx site, tạo user DB… gói gọn trong install.sh, bạn chỉ cần copy paste.

Bước 2, Dùng inline prompt để tạo file theo ngữ cảnh

Không cần file template mỗi lần, khi đang trong project, bạn mô tả nhanh và Claude trả ra file hoàn chỉnh. Ví dụ thực tế khi setup một API Node.js trên VPS:

Tôi đã cài xong Node 20 và PostgreSQL 16.
Hãy tạo 3 file:
1. .env với các biến: DATABASE_URL, JWT_SECRET (random 32 byte), PORT=3000, NODE_ENV=production
2. docker-compose.yml chạy postgres:16 và redis:7-alpine, port map đúng
3. Makefile có các target: start, stop, logs, migrate, seed

Ghi từng file ra thư mục /var/www/api/

Claude sinh 3 file, mỗi file có comment và giá trị default, đúng cú pháp 2026. Mất 30 giây thay vì 10 phút tự viết.

Bước 3, Yêu cầu Claude chạy lệnh từ xa trên VPS

Nếu bạn dùng Claude Code (VS Code extension) kết nối tới VPS qua SSH, Claude có thể chạy lệnh trực tiếp trên server. Câu lệnh mẫu:

SSH vào VPS 123.456.789.0 với user deploy.
Kiểm tra server còn gì:
- OS version
- RAM, disk
- Nginx, Node, PostgreSQL đã có chưa (version nào)
Sau đó setup project mới "blog-api" theo cấu trúc:

/var/www/blog-api/
├── src/
├── prisma/
├── .env
├── package.json (npm init -y trước)
├── Makefile
└── docker-compose.yml (chỉ PostgreSQL)

Nếu thiếu gói nào thì cài luôn. Tự động tạo user và database PostgreSQL tên blogapi.

Claude sẽ tổng hợp lệnh kiểm tra trước, rồi sinh lệnh cài đặt, thực thi từng bước, yêu cầu bạn xác nhận trước khi chạy (tùy chọn bảo mật). Mình dùng cách này trên VPS Linux thuộc thueVPS, thao tác mượt, không lag dù API call liên tục.

Bước 4, Xây dựng kit lệnh tái sử dụng cho team

Mẹo hay hơn: soạn sẵn block prompt cho từng loại dự án, lưu vào file .claude-snippets/:

# .claude-snippets/python-flask-api.md
Khi bắt đầu Flask API mới với các lệnh tổng hợp:
1. Python 3.12 venv ở /opt/venv
2. Cài Flask, gunicorn, psycopg2-binary, python-dotenv
3. Tạo app.py, wsgi.py, config.py, .env
4. Nginx reverse proxy subdomain tới localhost:8000
5. UFW: 22, 80, 443

# .claude-snippets/docker-wordpress.md
Stack WordPress trên Docker:
1. docker-compose.yml gồm wordpress:6 + mariadb:11 + nginx-proxy
2. Tự động tạo volume, network, env
3. Cấu hình wp-config.php đọc từ .env
4. Kèm Makefile: up, down, backup, restore

Khi cần, chỉ việc nói "Dùng kit python-flask-api, chạy trên VPS mới 10.0.0.5", Claude tự tổng hợp toàn bộ.

Bảng đối chiếu: Gõ tay vs Claude tổng hợp

Tiêu chíCách cũ (gõ tay)Claude tổng hợp lệnh
Thời gian setup project web hoàn chỉnh25-35 phút3-5 phút
Sai sót lệnh/cú pháp configThường gặp (quên port, sai path)Rất hiếm (Claude biết OS hiện tại)
Tạo file mớiPhải self-check formatĐúng format, có comment
Kiểm tra OS/dependencyTự SSH kiểm tra thủ côngTự động check rồi mới sinh lệnh
Lưu lại template cho lần sauKhôngLưu file kit + tái sử dụng

Xử lý lỗi thường gặp

1. Claude sinh lệnh sai OS version (vd Ubuntu 22.04 trên máy 24.04)

Nguyên nhân: Claude không biết chính xác OS bạn đang dùng nếu mô tả thiếu. Cách fix: Thêm 1 câu trong prompt: "Kiểm tra OS hiện tại bằng cat /etc/os-release trước khi sinh lệnh." Hoặc nếu tự biết thì nói luôn: "Đang chạy Ubuntu 24.04."

2. Lệnh cài gói bị lỗi "package not found"

Thường do miss kho hoặc tên gói sai. Dùng prompt: "Nếu lệnh apt install thất bại, hãy chạy apt update trước, hoặc dùng apt search tìm tên gói chính xác."

3. Claude không chạy được lệnh remote

Kiểm tra SSH key trên máy local, tên user, và dòng AllowUsers trong /etc/ssh/sshd_config trên VPS. Cũng nên chạy thử ssh deploy@your-vps-ip echo ok trước.

Câu hỏi thường gặp

Claude tổng hợp lệnh có an toàn cho VPS production không?

Có, nếu bạn đọc qua script trước khi chạy. Claude đều hiển thị lệnh dự kiến và yêu cầu xác nhận trước khi execute. Luôn dùng user sudo (không root) và bật chế độ "review before run".

Mỗi lần làm project mới có cần soạn lại prompt từ đầu không?

Không. Soạn 1 lần file kit cho dạng project bạn hay làm (Next.js, Flask, WordPress…), lưu vào folder .claude-snippets/ hoặc docs. Mỗi lần mới chỉ cần "Dùng kit Next.js mở rộng cho project blog trên IP 10.0.0.5".

Claude có tạo được file có giá trị động (ví dụ JWT secret ngẫu nhiên) không?

Có. Claude có thể dùng tool run_command để sinh secret: openssl rand -hex 32. Hoặc tự sinh giá trị random và ghi thẳng vào file .env.

Tôi không dùng VS Code, chỉ có terminal SSH. Có dùng được không?

Được. Dùng Claude CLI (terminal mode) hoặc script gọi Anthropic API. Cách 2 mạnh hơn: viết script Bash gọi API với prompt mô tả project, nhận về script install.sh.

Có bị giới hạn số lần request nếu dùng Claude miễn phí không?

Bản miễn phí (Claude.ai) giới hạn số message. Dùng Claude Pro ($20/tháng) hoặc API key trả theo token cho workload nhiều. Mỗi lần tạo project mới chỉ tốn vài nghìn token, rất rẻ.

Có thể dùng mẹo này cho server không có internet không?

Có. Bạn chạy Claude trên máy local, để nó sinh script install.sh. Copy script qua VPS bằng SCP hoặc USB, chạy offline. Claude chỉ cần internet lúc hỏi, không cần server có mạng.

Bài viết liên quan

Lưu ý: Bài viết mang tính tham khảo, tổng hợp kiến thức chung. Mỗi hệ thống, hạ tầng và nhu cầu có đặc thù riêng, nên kiểm thử trong môi trường an toàn và tham vấn kỹ sư trước khi triển khai thực tế.