Skip to content

Triển khai các dự án Node.js, Python & Go mà không cần Docker ​

Bạn có mệt vì Docker làm cạn pin laptop và ngốn hơn 4GB RAM chỉ để chạy một ứng dụng Node.js đơn giản? Bạn không cô đơn. Docker tuy tuyệt vời cho môi trường production, nhưng thường là quá mức cần thiết cho phát triển local—khiến vòng lặp phát triển của bạn chậm lại và biến những việc đáng lẽ đơn giản thành phức tạp.

FlyEnv mang đến một cách tốt hơn. Là một trình quản lý môi trường native, nó cho phép bạn triển khai và quản lý các dự án Node.js, Python, Go và khác bằng binary thuần—không container, không chi phí ảo hóa. Với cách ly môi trường theo từng dự án, các phiên bản runtime của bạn tự động chuyển mỗi khi cd vào một thư mục khác. Kết hợp với reverse proxy tích hợp sẵn, SSL tự động và tunnel một cú nhấp, bạn có được trải nghiệm phát triển local như production mà không phải chịu độ phức tạp của Docker.

Hướng dẫn này sẽ dẫn bạn qua việc triển khai một dự án Next.js (nguyên tắc áp dụng cho Python Flask/Django, ứng dụng Go và hơn thế nữa) bằng các module tùy chỉnh được của FlyEnv.

Vì sao triển khai mà không cần Docker? ​

Tính năngDocker DesktopFlyEnv Native
Mức dùng RAMChồng thêm 2-4 GBGần như bằng không
Khởi động nguội10-30 giâyTức thì (< 1s)
Dung lượng đĩa10+ GB cho imageChỉ các binary runtime
Xung đột cổngPhải ánh xạ thủ côngTự phát hiện & quản lý
Chuyển phiên bảnXây lại containerChuyển tức thì theo từng dự án

Điều kiện tiên quyết ​

  • FlyEnv đã cài trên máy macOS, Windows hoặc Linux của bạn
  • Một dự án Node.js/Python/Go sẵn sàng triển khai (hoặc làm theo ví dụ Next.js của chúng tôi)
  • Hiểu biết cơ bản về lệnh khởi động của dự án bạn

Bước 1: Tạo dự án của bạn (ví dụ Next.js) ​

Nếu bạn đã có dự án, hãy chuyển tới Bước 2.

  1. Mở FlyEnv và đi tới module Node.js
  2. Nhấp tab "New Project"
  3. Chọn Next.js từ các mẫu có sẵn
  4. Chọn thư mục dự án và hoàn tất việc tạo

Sau khi tạo xong, cài các phụ thuộc và build:

bash
cd "/path/to/your/nextjs-project"
npm install
npm run build

Tạo dự án NextJS 1

Tạo dự án NextJS 2

Tạo dự án NextJS 3

Bước 2: Tạo một nhóm module tùy chỉnh ​

FlyEnv tổ chức các dự án thông qua các module tùy chỉnh được. Hãy coi chúng như những thư mục cho các tech stack khác nhau (ReactJS, Python, Go, v.v.).

  1. Vào Settings → Modules
  2. Nhấp biểu tượng "+" cạnh "Sites" để tạo một nhóm mới
  3. Nhập một tên (ví dụ ReactJS, PythonApps hoặc GoServices)
  4. Nhấp OK để tạo

Tạo nhóm module

Bước 3: Thêm một mục dự án ​

Trong nhóm mới của bạn, nhấp "Add" để tạo một mục dự án:

Giải thích các tùy chọn cấu hình:

Tùy chọnMô tảKhuyến nghị
Run as ServiceFlyEnv quản lý trạng thái start/stop bằng các công tắc điều khiển✅ Bật cho đa số dự án
Single InstanceNgăn nhiều phiên bản chạy đồng thời✅ Bật nếu các dự án dùng chung cổng
ExecutablesCác dự án/lệnh thực tế cần chạyThêm dự án của bạn vào đây
Config FilesHiển thị dưới dạng tab trong panel chínhTùy chọn
Log FilesXem trực tiếp trong FlyEnvTùy chọn

Thêm mục dự án 1

Thêm mục dự án 2

Bước 4: Cấu hình lệnh chạy dự án ​

Trong mục "Executables", nhấp "Add" để cấu hình cách dự án của bạn chạy:

Các trường bắt buộc:

  • Name: Tên dự án của bạn (ví dụ My Next.js Blog)
  • Notes: Thêm số cổng vào đây (ví dụ Port: 3000) để dễ phát hiện xung đột
  • Run with sudo (chỉ trên macOS/Linux): Bật nếu dự án của bạn cần quyền nâng cao
  • Command/File: Lệnh shell hoặc tệp script cần thực thi

Ví dụ các lệnh:

Next.js (macOS/Linux):

bash
cd "/Users/username/projects/my-app"
npm run start

Next.js (Windows PowerShell):

powershell
cd "F:\www\nextjs\my-app"
npm run start

Python Flask:

cd "/path/to/flask-app"
source venv/bin/activate
flask run --port=5000

Ứng dụng Go:

cd "/path/to/go-app"
go run main.go

Các trường tùy chọn:

  • PID File Path: Để theo dõi trạng thái dịch vụ (nếu dự án của bạn tạo tệp PID)
  • Config Files: Thêm các tệp cấu hình để chỉnh sửa ngay trong ứng dụng
  • Log Files: Chỉ định đường dẫn log để xem log tích hợp

Cấu hình lệnh chạy dự án

Bước 5: Truy cập module tùy chỉnh của bạn ​

Module mới của bạn xuất hiện trên thanh bên trái. Nhấp vào nó để xem giao diện quản lý:

Truy cập module tùy chỉnh của bạn

Bước 6: Khởi động ứng dụng ​

Nhấp nút "Start" cạnh mục dự án của bạn:

Khởi động ứng dụng của bạn

Bước 7: Xác nhận ứng dụng đang chạy ​

Mở trình duyệt và truy cập địa chỉ local (ví dụ http://127.0.0.1:3000):

Xác nhận đang chạy

Bước 8: Theo dõi log ​

Nhấp các nút thao tác để xem log đầu ra và log lỗi theo thời gian thực:

Theo dõi log 1

Theo dõi log 2

Nâng cao: Tên miền tùy chỉnh & HTTPS ​

Bạn muốn truy cập ứng dụng local qua https://myapp.test thay vì localhost:3000?

  1. Vào module Sites trong FlyEnv
  2. Tạo một site mới với tên miền local bạn mong muốn
  3. Thiết lập reverse proxy tới cổng của ứng dụng (3000)
  4. FlyEnv tự sinh và tự quản lý các chứng chỉ SSL

→ Tìm hiểu thêm về Tên miền tùy chỉnh & Auto SSL

Nâng cao: Chia sẻ ứng dụng local của bạn (Tunneling) ​

Cần chia sẻ localhost với đồng nghiệp hoặc khách hàng? FlyEnv tích hợp với Cloudflare Tunnel:

→ Mở Localhost ra internet với Cloudflare Tunnel

Thực hành tốt nhất ​

  1. Luôn ghi chú cổng: Thêm số cổng vào trường Notes để tránh xung đột
  2. Dùng đường dẫn tuyệt đối: Trong lệnh, hãy dùng đường dẫn đầy đủ để tránh các vấn đề về thư mục làm việc
  3. Biến môi trường: Đặt các biến env trong shell profile của bạn hoặc dùng tính năng quản lý môi trường của FlyEnv
  4. Cách ly dự án: Tạo các nhóm module riêng cho các tech stack khác nhau

Hướng dẫn bằng video ​

Bạn thích xem? Xem Ditch Docker for Local Dev, Run Node, Python & Go as Native Services dùng FlyEnv trong thực tế:

Câu hỏi thường gặp (FAQ) ​

H: Cách này có tốn ít RAM hơn Docker không?

FlyEnv tránh được chi phí máy ảo nền của Docker Desktop bằng cách chạy trực tiếp các binary local. Mức dùng RAM thực tế phụ thuộc vào các runtime, dịch vụ và cấu hình container đang được so sánh.

H: Tôi có thể chạy nhiều dự án với các phiên bản Node.js khác nhau không?

Hoàn toàn được. Cách ly theo dự án của FlyEnv tự động chuyển phiên bản Node.js mỗi khi bạn làm việc ở một thư mục khác. Không cần trình quản lý phiên bản thủ công nào cả.

H: Nếu hai dự án cần cùng một cổng thì sao?

Hãy bật tùy chọn "Single Instance" trong cấu hình dự án. Điều này bảo đảm tại một thời điểm chỉ có một phiên bản chạy, ngăn ngừa xung đột cổng.

H: Cách này có phù hợp để triển khai production không?

FlyEnv được thiết kế cho phát triển và kiểm thử local. Với production, hãy dùng các pipeline triển khai chuẩn với Docker, Kubernetes hoặc giải pháp native của nhà cung cấp đám mây bạn.

H: Tôi có thể triển khai PHP, Java hay các ngôn ngữ khác không?

Có! Hệ thống module tùy chỉnh hoạt động với mọi ngôn ngữ có thể khởi chạy qua dòng lệnh. FlyEnv có các module chuyên dụng cho PHP, Java, Python, Go và nhiều hơn nữa.

H: Làm sao debug khi ứng dụng không khởi động được?

Hãy kiểm tra các log lỗi trong giao diện FlyEnv (Bước 8). Các vấn đề thường gặp bao gồm:

  • Cổng đã bị chiếm dụng (kiểm tra trường Notes để phát hiện xung đột)
  • Thiếu phụ thuộc (chạy npm install hoặc tương đương)
  • Đường dẫn sai trong lệnh (dùng đường dẫn tuyệt đối)

Sẵn sàng từ bỏ Docker cho phát triển local? ​

FlyEnv mang lại cho bạn những gì tốt nhất của cả hai thế giới: sự cách ly và tiện lợi của quy trình container hóa, cùng tốc độ và sự đơn giản của phát triển native. Không còn phải chờ container build, không còn phải vật lộn với các bản cập nhật Docker Desktop.

Tải xuống FlyEnv và trải nghiệm phát triển local nhanh hơn 10 lần ngay hôm nay.


Hướng dẫn liên quan: