Viết code xong bằng Codex chỉ là bước đầu. Muốn website hay ứng dụng thật sự chạy được trên internet, bạn cần biết cách commit code đúng chuẩn và push code lên VPS an toàn. Trong bài viết, Tino sẽ hướng dẫn bạn cách commit & push code từ Codex lên VPS A-Z.
Codex có thể tự động commit và push code trực tiếp lên VPS không?
Có. Với cách làm mới trong bài này, bạn không cần tự chạy từng lệnh Git như git add, git commit, git push hay tự cấu hình toàn bộ VPS theo cách thủ công. Sau khi ứng dụng đã hoàn thành, bạn có thể yêu cầu Codex tiếp tục xử lý toàn bộ quy trình commit và triển khai trực tiếp lên VPS.
Codex có thể hỗ trợ theo chuỗi công việc như:
- Kiểm tra source code hiện tại.
- Phát hiện file nhạy cảm trước khi commit.
- Khởi tạo Git repository nếu project chưa có Git.
- Tạo commit với message phù hợp.
- Tạo SSH Key để kết nối VPS.
- Kết nối tới VPS qua SSH.
- Cài Git và Nginx trên VPS nếu cần.
- Tạo user
deployvà Git repository trên VPS. - Cấu hình
post-receivehook để tự động đưa source code mới vào thư mục website. - Thêm VPS thành Git remote.
- Push branch
maintrực tiếp lên VPS. - Kiểm tra website sau khi deploy.

Bạn có thể hình dung quy trình như sau:
Codex hoàn thành ứng dụng
↓
Kiểm tra source code
↓
Git commit
↓
Thiết lập kết nối SSH
↓
Cấu hình VPS
↓
Git push
↓
VPS tự deploy phiên bản mới
Điểm khác biệt lớn so với cách làm thủ công là người dùng chủ yếu làm việc bằng prompt trong Codex, còn các lệnh Git và nhiều bước cấu hình server được Codex tự thực hiện sau khi bạn cấp quyền cần thiết.
Trong lần đầu tiên, bạn vẫn có thể phải can thiệp ở một vài bước bảo mật như:
- Xác nhận SSH fingerprint.
- Nhập mật khẩu VPS trong Terminal.
- Cho phép Codex chạy một số câu lệnh hệ thống.
- Thêm public SSH key theo hướng dẫn.
Sau khi VPS đã được cấu hình hoàn chỉnh, những lần cập nhật code sau thường đơn giản hơn rất nhiều. Bạn chỉ cần yêu cầu Codex kiểm tra thay đổi, tạo commit và push phiên bản mới lên remote vps.
Phần hướng dẫn dưới đây sẽ đi theo đúng cách này: thay vì tự gõ từng lệnh Git và SSH, chúng ta sẽ yêu cầu Codex tự động thực hiện phần lớn quy trình commit và push code lên VPS, chỉ can thiệp thủ công khi cần xác thực hoặc cấp quyền.
Cách commit & push code từ Codex lên VPS
Trong ví dụ này, ứng dụng Bookmark Manager đã được tạo và chỉnh sửa hoàn chỉnh bằng Codex. VPS sử dụng Ubuntu 24.04 và ban đầu hoàn toàn trống.
Cần chuẩn bị gì trước khi bắt đầu?
Bạn cần chuẩn bị:
- Ứng dụng đã hoàn thành trong Codex.
- VPS Ubuntu đang hoạt động.
- Địa chỉ IP VPS.
- Tài khoản root.
- Mật khẩu root.
- Quyền SSH vào VPS.
- Xshell để kiểm tra hoặc thao tác trực tiếp với VPS khi cần.
- VPS có thể là VPS trống, chưa cần cài Git hoặc Nginx trước.
Trong ví dụ này:
- IP VPS: 103.241.42.184
- Hệ điều hành: Ubuntu 24.04
- SSH user: root
Không nhập mật khẩu VPS trực tiếp vào nội dung prompt gửi cho Codex.

Bước 1: Hoàn thành ứng dụng trong Codex
Trước tiên, hãy để Codex tạo hoặc chỉnh sửa ứng dụng cho đến khi hoạt động đúng trên máy local.
Ví dụ với Bookmark Manager, bạn nên kiểm tra:
- Thêm bookmark hoạt động.
- Tìm kiếm hoạt động.
- Xóa bookmark hoạt động.
- Giao diện hiển thị đúng.
- Không có lỗi JavaScript.
Khi đã ổn định, mới chuyển sang commit và push lên VPS.
Bước 2: Yêu cầu Codex commit và push lên VPS
Ngay trong cuộc trò chuyện đang làm project, gửi cho Codex một yêu cầu tương tự:
Ứng dụng Bookmark Manager đã hoàn thành. Bây giờ hãy giúp tôi commit source code và push trực tiếp lên VPS để chạy website.
Thông tin VPS:
IP: 103.241.42.184
Hệ điều hành: Ubuntu 24.04
SSH user hiện tại: root
VPS hoàn toàn mới, chưa cài Git hoặc Nginx.
Ứng dụng là HTML/CSS/JavaScript thuần.
Không sử dụng GitHub hoặc GitLab.
Hãy kiểm tra source code, khởi tạo Git nếu cần, kiểm tra dữ liệu nhạy cảm, tạo commit, chuẩn bị SSH key, kết nối VPS, cài Git và Nginx, tạo user deploy, tạo Git repository trên VPS, cấu hình tự động deploy, thêm VPS thành Git remote và push branch main lên VPS.
Không sử dụng force push. Nếu cần tôi xác nhận fingerprint hoặc nhập mật khẩu SSH, hãy dừng và báo cho tôi.
Sau đó Codex bắt đầu xử lý.

Bước 3: Cho phép Codex tạo commit
Codex sẽ kiểm tra source code trước.
Trong ví dụ thực tế, Codex đã:
- Kiểm tra 5 file của project.
- Kiểm tra dữ liệu nhạy cảm.
- Kiểm tra JavaScript.
- Stage source code.
- Chuẩn bị commit trên branch main.
Khi Codex hỏi có cho phép tạo commit hay không, bạn sẽ thấy nút dạng:
Allow once hoặc Allow similar commands
Nếu câu lệnh đúng là Git commit cho project hiện tại, chọn Allow once là lựa chọn dễ kiểm soát nhất.

Codex sau đó tạo commit, ví dụ:
432b474 feat: build bookmark manager web app
Đến đây source code đã được lưu thành một phiên bản Git trên máy local.
Bước 4: Cho phép Codex tạo SSH Key
Nếu máy chưa có SSH key phù hợp, Codex sẽ đề nghị tạo một key Ed25519 riêng cho việc deploy.
Ví dụ:
id_ed25519_bookmark_manager_deploy
Khi Codex hỏi:
Có cho phép tạo key Ed25519 riêng cho deploy Bookmark Manager không?
Bạn có thể chọn Allow once.

Codex sẽ tạo:
- Private key: giữ trên máy.
- Public key: dùng để cấp quyền cho VPS.
Không cần tự copy private key đi đâu.
Bước 5: Cho phép Codex kết nối SSH đến VPS
Tiếp theo Codex sẽ thử kết nối:
ssh root@103.241.42.184
Codex có thể yêu cầu quyền chạy lệnh SSH.
Nếu IP đúng VPS của bạn, chọn Allow once.

Bước 6: Xử lý cảnh báo “Remote host identification has changed”
Trong lần thực tế, SSH đã dừng với cảnh báo:
REMOTE HOST IDENTIFICATION HAS CHANGED
Điều này có nghĩa máy tính đang lưu một SSH fingerprint cũ cho cùng IP VPS.
Không nên bỏ qua cảnh báo ngay.
Codex sẽ hiển thị fingerprint mới, ví dụ:
SHA256:Kwob1H+W/iO2ftogz8yIRIvu0gn+v4AnsnMQGEuTCjs
Bước 7: Kiểm tra Fingerprint bằng Xshell
Mở Xshell và đăng nhập VPS bằng root.
Sau đó chạy:
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
VPS sẽ trả về fingerprint.
Ví dụ:
256 SHA256:Kwob1H+W/iO2ftogz8yIRIvu0gn+v4AnsnMQGEuTCjs root@huynhdongtung
So sánh chuỗi SHA256: này với chuỗi Codex vừa hiển thị.
Nếu giống hoàn toàn, bạn đã xác nhận đây đúng là VPS của mình.
Bước 8: Yêu cầu Codex cập nhật Known_hosts
Quay lại Codex và gửi:
Fingerprint khớp, hãy cập nhật known_hosts.
Codex sẽ xóa SSH host key cũ của đúng IP đó và thử kết nối lại.

Về cơ bản, Codex sẽ thực hiện thao tác tương tự:
ssh-keygen -R 103.241.42.184
Sau đó SSH lại VPS.
Bước 9: Xác nhận Fingerprint trong Terminal
Codex sẽ mở Terminal và bạn cần chạy:
ssh root@103.241.42.184

Terminal có thể hiện:
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Lúc này mới nhập:
yes
rồi nhấn Enter.

SSH sẽ lưu fingerprint mới:
Warning: Permanently added '103.241.42.184'...
Bước 10: Nhập mật khẩu root trực tiếp trong Terminal
Sau đó Terminal hiện:
root@103.241.42.184's password:
Nhập mật khẩu VPS tại đây rồi nhấn Enter.

Khi nhập mật khẩu SSH:
- Không hiện ký tự.
- Không hiện dấu *.
- Nhìn giống như chưa nhập gì.
Đây là hành vi bình thường.
Khi thành công, bạn sẽ thấy:
root@huynhdongtung:~#
Như vậy SSH đã đăng nhập VPS thành công.
Bước 11: Báo cho Codex biết SSH đã đăng nhập
Quay lại ô chat Codex và gửi:
SSH đã đăng nhập thành công. Hãy tiếp tục cấu hình VPS để deploy Bookmark Manager.
Hãy tự thực hiện lần lượt:
Cài Git và Nginx.
Tạo user deploy.
Dùng SSH public key mà bạn vừa tạo để cấu hình đăng nhập cho user deploy.
Tạo Git bare repository tại /home/deploy/repos/bookmark-manager.git.
Tạo thư mục website /var/www/bookmark-manager.
Cấp quyền phù hợp cho user deploy.
Tạo post-receive hook để mỗi lần push branch main, source code tự được đưa vào /var/www/bookmark-manager.
Cấu hình Nginx phục vụ Bookmark Manager từ thư mục trên.
Kiểm tra cấu hình Nginx.
Sau khi hoàn thành phần VPS, hãy kiểm tra SSH bằng user deploy. Nếu kết nối thành công, tiếp tục cấu hình Git remote và push source code.
Nếu có bước cần tôi xác nhận thủ công, hãy dừng và báo cho tôi.
Codex sẽ tiếp tục các phần còn lại.

Bước 12: Thêm SSH public key để Codex không phải hỏi mật khẩu nhiều lần
Trong quá trình thực tế, phiên SSH tương tác có thể bị đóng khi Codex chuyển sang bước khác. Để Codex có thể tự động tiếp tục, Codex sẽ yêu cầu bạn thêm public key vừa tạo vào tài khoản root.
Codex sẽ cung cấp một nhóm lệnh gần giống:
install -d -m 700 /root/.ssh
touch /root/.ssh/authorized_keys
...
chmod 600 /root/.ssh/authorized_keys
Chạy các lệnh mà Codex cung cấp trực tiếp trong Terminal đang đăng nhập root.

Đây chỉ là public key, không phải private key.
Sau khi chạy xong, trả lời Codex:
Đã thêm key root.
Từ đây Codex có thể SSH vào VPS bằng key mà không bắt bạn nhập lại mật khẩu nhiều lần.

Bước 13: Codex tự cài git và nginx
Sau khi SSH key hoạt động, Codex có thể tự thực hiện phần VPS.
Codex sẽ cài:
- Git: Dùng để nhận source code.
- Nginx: Dùng để phục vụ website ra Internet.
Bạn chỉ cần phê duyệt khi Codex yêu cầu chạy các câu lệnh phù hợp.
Bước 14: Codex tạo user deploy
Codex sẽ tạo user:
deploy
Mục đích là để các lần push code sau không cần sử dụng tài khoản root.
Codex đồng thời cấu hình SSH key cho user deploy.
Khi hoàn tất, Codex có thể đăng nhập:
ssh deploy@103.241.42.184
bằng SSH key.
Bước 15: Codex tạo git repository trên VPS
Codex tạo một Git bare repository tại:
/home/deploy/repos/bookmark-manager.git
Repository này chuyên dùng để nhận:
git push
từ máy local.
Đây không phải thư mục website trực tiếp.
Bước 16: Codex tạo thư mục chạy website
Source code thực tế sẽ được đưa vào:
/var/www/bookmark-manager
Bước 17: Codex tạo Post-receive hook
Codex cấu hình Git hook:
post-receive
Mục đích là tự động đưa source code mới sang thư mục website mỗi khi branch main được push.
Bước 18: Codex cấu hình nginx
Codex sẽ cấu hình Nginx sử dụng:
/var/www/bookmark-manager
làm website root.
Sau đó kiểm tra cấu hình Nginx.
Nếu hợp lệ, dịch vụ sẽ được reload và sẵn sàng phục vụ Bookmark Manager.
Bước 19: Codex thêm VPS thành git remote
Sau khi VPS đã sẵn sàng, Codex cấu hình một Git remote tên:
vps
Remote này trỏ tới:
deploy@103.241.42.184:/home/deploy/repos/bookmark-manager.git
Từ đây project local đã biết nơi cần gửi source code.
Bước 20: Codex push branch main lên VPS
Codex thực hiện:
git push -u vps main
Commit đã tạo trước đó sẽ được gửi trực tiếp từ máy local sang VPS, không qua GitHub.
Bước 21: Codex kiểm tra website
Sau khi push thành công, Codex sẽ kiểm tra các file HTML, CSS và JavaScript.
Trong lần thực tế, Codex xác nhận các tài nguyên trả về:
HTTP 200
Đồng thời xác nhận:
- Git đã được cài.
- Nginx đang chạy.
- User deploy hoạt động.
- Bare repository đã được tạo.
- post-receive hoạt động.
- Branch local main đang theo dõi vps/main.
- Không sử dụng git push –force.


Bước 22: Mở website trên trình duyệt
Truy cập:
http://103.241.42.184
Nếu Bookmark Manager hiển thị giống phiên bản local thì quá trình deploy đã hoàn tất.
Trong ví dụ thực tế, website đã chạy thành công trực tiếp từ VPS.

Lưu ý: Trình duyệt hiện “Không bảo mật” là bình thường vì website hiện mới chạy bằng HTTP. Muốn có HTTPS, bước tiếp theo cần trỏ tên miền về VPS và cài chứng chỉ SSL/TLS.
Sau khi push code lên VPS cần kiểm tra gì?
- Mở địa chỉ IP VPS trên trình duyệt để kiểm tra website.
- Kiểm tra giao diện có hiển thị đúng như phiên bản local hay không.
- Thử các chức năng chính của ứng dụng.
- Kiểm tra file CSS và JavaScript có tải đầy đủ hay không.
- Nếu website không hiển thị, kiểm tra trạng thái Nginx.
- Có thể yêu cầu Codex kiểm tra HTTP response của website.
- Với ứng dụng Bookmark Manager trong ví dụ, phản hồi HTTP 200 cho thấy web server đang phục vụ nội dung thành công.

Cách cập nhật code lên VPS trong những lần sau
Sau lần cấu hình đầu tiên, bạn không cần thiết lập lại VPS.
Mỗi khi Codex sửa hoặc bổ sung tính năng:
- Yêu cầu Codex kiểm tra các file vừa thay đổi.
- Kiểm tra Git diff trước khi commit.
- Tạo commit mới với nội dung mô tả phù hợp.
- Push branch main lên remote vps.
- Git hook trên VPS sẽ tự cập nhật source code.
- Refresh website để kiểm tra phiên bản mới.
Bạn có thể gửi prompt ngắn cho Codex:
Kiểm tra các thay đổi vừa thực hiện. Nếu mọi thứ ổn, hãy tạo commit với message phù hợp và push branch main lên remote vps. Không sử dụng force push.
Có nên để Codex tự động commit và push không?
Có thể, đặc biệt sau khi VPS đã được cấu hình hoàn chỉnh.
Ưu điểm:
- Không phải nhớ nhiều lệnh Git.
- Giảm thao tác thủ công.
- Cập nhật ứng dụng nhanh hơn.
- Codex có thể kiểm tra Git trước khi commit.
- Codex có thể tự tạo commit message phù hợp.

Tuy nhiên:
- Nên xem git diff trước những thay đổi quan trọng.
- Không cấp quyền rộng hơn mức cần thiết.
- Không cho phép force push tùy tiện.
- Nên kiểm tra website sau khi deploy.
- Với hệ thống production quan trọng, nên bổ sung quy trình review hoặc CI/CD.
Các bài viết liên quan:
- Codex là gì? Giải mã Coding Agent đã thay đổi tư duy lập trình hiện đại
- So sánh Codex vs Claude Code
- Hướng dẫn tải Codex AI trên Windows miễn phí
- So sánh VS Code vs Antigravity
- So sánh Codex AI vs GitHub Copilot
- So sánh Codex AI vs Devin AI
Kết luận
Push code từ Codex lên VPS không phải là thao tác phức tạp một khi đã hiểu rõ từng bước. Khi nắm chắc quy trình này, bạn có thể tận dụng tối đa sức mạnh của Codex trong việc viết code, đồng thời tự tin đưa sản phẩm ra môi trường thật một cách an toàn, ổn định và hoàn toàn chủ động, không phụ thuộc vào bên thứ ba.
Những câu hỏi thường gặp
Có cần GitHub để push code từ Codex lên VPS không?
Không. Bạn có thể sử dụng VPS trực tiếp làm Git remote như ví dụ trong bài. GitHub chỉ là một lựa chọn trung gian khác.
Tại sao cần SSH Key?
SSH Key giúp máy tính xác thực với VPS mà không phải nhập mật khẩu mỗi lần push. Đây cũng là phương pháp thuận tiện cho quá trình deploy tự động.
Có nên cho Codex đăng nhập VPS bằng root không?
Chỉ nên dùng root cho bước cấu hình ban đầu khi thực sự cần quyền quản trị. Sau đó nên sử dụng một user riêng như deploy.
Tại sao push thành công nhưng website chưa cập nhật?
Nguyên nhân có thể đến từ Git hook, quyền thư mục, cache trình duyệt hoặc cấu hình Nginx. Hãy kiểm tra source code trong thư mục website trước, sau đó kiểm tra Nginx.
Những lần sau có cần SSH bằng Xshell nữa không?
Thông thường không. Khi SSH Key, Git remote và post-receive đã được cấu hình đúng, Codex có thể push phiên bản mới trực tiếp. Xshell chủ yếu cần khi quản trị hoặc xử lý sự cố trên VPS.
Có thể yêu cầu Codex sửa code rồi tự commit và push trong một lần không?
Có. Bạn có thể yêu cầu Codex sửa tính năng, kiểm tra thay đổi, tạo commit và push lên remote vps. Với project quan trọng, vẫn nên review thay đổi trước bước push.
