- Tác giả

- Name
- Nguyễn Đức Xinh
- Ngày xuất bản
- Ngày xuất bản
Mac Setup For Full Stack Developer: Cài Đặt Môi Trường Dev Từ A-Z
Đối với một developer, để có thể bắt tay ngay vào công việc sau khi nhận một chiếc MacBook mới thực ra không đơn giản như chúng ta nghĩ.
Bạn cần cài đủ thứ như:
- Browser
- IDE/Code Editor như VS Code hoặc Cursor
- Git và GitHub CLI
- Terminal và các CLI tools
- Package manager: Node.js, npm/yarn/pnpm
- PHP, Composer nếu làm Backend/Laravel
- Python nếu làm automation, AI hoặc scripting
- Docker để chạy local environment
- Database client như TablePlus hoặc DBeaver
- Postman/Bruno để test API
- Slack, Zoom, Figma... để làm việc với team
- Một loạt utility nhỏ nhưng cực kỳ hữu ích trong quá trình coding
Nếu cài từng thứ một theo cách truyền thống sẽ gặp phải 3 vấn đề sau:
- Mất thời gian: mỗi lần cài lại máy phải nhớ lại từ đầu cần cài những gì.
- Thiếu nhất quán giữa các máy: máy cá nhân và máy công ty có bộ công cụ khác nhau, dễ gây lỗi "chạy trên máy tôi thì được".
- Bỏ sót công cụ quan trọng: ví dụ quên cài Docker Compose plugin, dẫn đến lỗi khi chạy
docker compose upgiữa chừng dự án.
Vì vậy, mình viết bài này để tổng hợp lại một bộ setup tương đối đầy đủ cho một Web Developer sử dụng Mac, từ những thứ cơ bản nhất cho đến các tool phục vụ Backend, Frontend, Mobile, Database và DevOps
Xác định Mac đang dùng Apple Silicon hay Intel
Trước khi cài tool, nên kiểm tra kiến trúc CPU:
uname -m
Nếu kết quả:
- arm64: thì bạn đang sử dụng Apple Silicon: M1, M2, M3, M4
- x86_64: thì đó là Intel Mac.
Việc này khá quan trọng vì một số package/tool có binary khác nhau cho: Apple Silicon và Intel
Cài Xcode Command Line Tools
Xcode Command Line Tools là bộ công cụ lập trình dạng dòng lệnh do Apple cung cấp cho hệ điều hành macOS bao gồm những thứ cơ bản mà developer thường xuyên sử dụng như:
- Trình biên dịch(Compiler):
clang,llvmđể dịch mã nguồn C, C++, Objective-C. - Công cụ xây dựng (Build tools): Cung cấp
xcodebuildvàmakeđể quản lý và biên dịch các dự án. - Tiện ích dòng lệnh hữu ích:
git - Thư viện và SDK: Cung cấp các macOS SDK và tài liệu hướng dẫn (
man pages) cần thiết cho việc phát triển phần mềm
Nếu không có cái này, hầu hết các tool native về sau sẽ báo lỗi.
Mở Terminal (ứng dụng có sẵn trong Applications > Utilities) và chạy:
xcode-select --install
Sau khi chạy lệnh, một cửa sổ popup "Install Command Line Developer Tools" sẽ xuất hiện. Hãy nhấn Install, chấp nhận các điều khoản và chờ quá trình cài đặt hoàn tất.
Thời gian cài đặt thường mất khoảng 5–15 phút, tùy tốc độ mạng và cấu hình máy.
Kiểm tra:
xcode-select -p
# /Applications/Xcode.app/Contents/Developer -> OK
Cài Homebrew
Homebrew là package manager phổ biến nhất cho macOS (và cũng chạy được trên Linux). Nó đóng vai trò tương tự như apt trên Ubuntu hay yum trên CentOS — cho phép cài đặt, cập nhật và gỡ bỏ phần mềm chỉ bằng một dòng lệnh.
Thay vì phải tự đi tìm từng phần mềm, chúng ta có thể cài bằng command:
brew install git
hoặc với các application GUI:
brew install --cask google-chrome
Sử dụng Homebrew sẽ có một lợi ích rất lớn đó là: Môi trường developer có thể được setup bằng code thay vì phải click từng bước. Và sau này chúng ta hoàn toàn có thể đưa danh sách các package này vào Brewfile để setup một Mac mới gần như tự động.
Để cài đặt Homebrew, Mở Terminal và chạy:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Xong thì thêm vào shell (mặc định là zsh):
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
Từ đây trở đi, hầu hết tool terminal mình đều cài qua brew. Sạch sẽ, dễ cập nhật, dễ gỡ.
Sau khi cài xong, luôn cập nhật danh sách package trước khi cài bất cứ thứ gì khác:
brew update
Kiểm tra Homebrew đã hoạt động đúng bằng lệnh chẩn đoán:
brew doctor
Nếu thấy dòng Your system is ready to brew. nghĩa là mọi thứ đã ổn.
Bước 2: Cài Đặt Terminal / CLI Applications
Đây là nhóm công cụ chạy trực tiếp trong terminal, phục vụ công việc coding hàng ngày.
brew install git
brew install nvm
brew install pnpm
brew install jq
brew install gh
brew install --cask docker
Giải thích từng lệnh:
- Dòng 1: Cài
git— hệ thống quản lý phiên bản (version control) bắt buộc phải có. - Dòng 2: Cài
nvm(Node Version Manager) — công cụ quản lý nhiều phiên bản Node.js trên cùng một máy. - Dòng 3: Cài
pnpm— package manager cho Node.js, thay thế chonpm/yarn. - Dòng 4: Cài
jq— công cụ xử lý và format dữ liệu JSON ngay trên terminal. - Dòng 5: Cài
gh(GitHub CLI) — tương tác với GitHub (tạo PR, clone repo, xem issue...) mà không cần rời terminal. - Dòng 6: Cài Docker Desktop qua
--cask(vì Docker Desktop là ứng dụng GUI, không phải CLI package thuần) — Docker Desktop đã tích hợp sẵn Docker Compose plugin, chạy được bằng lệnhdocker compose ....
Sau khi cài nvm, cần setup thư mục và load nó vào shell:
mkdir ~/.nvm
Thêm đoạn sau vào file ~/.zshrc (hoặc ~/.bash_profile nếu bạn dùng bash):
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"
Sau đó reload shell (source ~/.zshrc) và cài Node.js bản LTS mới nhất:
nvm install --lts
nvm use --lts
Kiểm tra các phiên bản đã cài:
node -v
pnpm -v
git --version
jq --version
gh --version
docker --version
Bước 3: Cài Đặt GUI Applications
Nhóm ứng dụng có giao diện đồ họa được cài qua Homebrew Cask (brew install --cask), giúp tránh việc tải file .dmg thủ công và click "Next" nhiều lần.
brew install --cask \
google-chrome \
iterm2 \
visual-studio-code \
rectangle \
slack \
discord \
vlc \
zoom \
ngrok \
obs \
shotcut \
claude-code \
codex \
font-hack-nerd-font
Giải thích:
- Cú pháp
brew install --cask \với dấu\ở cuối mỗi dòng cho phép viết một lệnh cài nhiều app cùng lúc, xuống dòng cho dễ đọc. - Homebrew sẽ tự động tải file cài đặt chính thức của từng app, giải nén, và copy vào
/Applications. - Riêng
font-hack-nerd-fontkhông phải là "app" mà là một bộ font — cần thiết để terminal hiển thị đúng icon khi dùng các theme như Powerlevel10k hay Starship.
Chạy một lệnh duy nhất này, bạn có ngay 14 ứng dụng cài đặt tự động, không cần thao tác chuột.
Giải Thích Từng Ứng Dụng: Link, Chức Năng Và So Sánh
Phần này đi sâu vào từng ứng dụng đã cài ở trên: nó dùng để làm gì, và tại sao chọn nó thay vì các lựa chọn thay thế.
Trình Duyệt: Google Chrome
- Link chính thức: google.com/chrome
- Chức năng: Trình duyệt web dùng để test giao diện, debug bằng Chrome DevTools, kiểm tra performance (Lighthouse), và duyệt tài liệu kỹ thuật.
| Tiêu chí | Chrome | Firefox | Safari |
|---|---|---|---|
| DevTools | Rất mạnh, nhiều extension | Tốt, có Firefox Developer Edition | Cơ bản, thiếu một số tool nâng cao |
| Hệ sinh thái extension | Lớn nhất | Khá lớn | Hạn chế (App Store) |
| Hiệu năng trên macOS | Tốt, tốn RAM | Tốt, nhẹ RAM hơn Chrome | Tối ưu nhất cho macOS (pin trâu hơn) |
| Use case | Dev chính, test đa nền tảng | Test cross-browser | Bắt buộc test vì thị phần iOS/macOS lớn |
Nhận xét: Chrome vẫn là lựa chọn số 1 cho dev nhờ DevTools và extension, nhưng nên cài thêm Firefox và giữ Safari để test cross-browser trước khi release.
Terminal Emulator: iTerm2
- Link chính thức: iterm2.com
- Chức năng: Thay thế cho Terminal.app mặc định của macOS, hỗ trợ split pane, search history, hotkey window, và tùy biến theme/font (kết hợp tốt với Nerd Font đã cài ở trên).
| Tiêu chí | iTerm2 | Terminal.app | Warp |
|---|---|---|---|
| Split pane | Có, linh hoạt | Không có sẵn (phải dùng tmux) | Có |
| Tùy biến | Rất cao (profile, theme, hotkey) | Hạn chế | Trung bình, thiên về UX hiện đại |
| Giá | Miễn phí, mã nguồn mở | Miễn phí (có sẵn trên macOS) | Miễn phí (có gói Pro trả phí) |
| AI/autocomplete | Không có sẵn | Không có | Có tích hợp AI command search |
Nhận xét: iTerm2 là lựa chọn kinh điển, ổn định, miễn phí hoàn toàn và có cộng đồng lớn. Warp là lựa chọn mới hơn với trải nghiệm AI-first nhưng một số tính năng nâng cao yêu cầu tài khoản/gói trả phí.
Code Editor: Visual Studio Code
- Link chính thức: code.visualstudio.com
- Chức năng: Trình soạn thảo code chính, hỗ trợ debugging, Git tích hợp sẵn, terminal nhúng, và hàng nghìn extension (ESLint, Prettier, GitLens, Docker, v.v.).
| Tiêu chí | VS Code | JetBrains (WebStorm) | Sublime Text |
|---|---|---|---|
| Giá | Miễn phí | Trả phí (có bản trial) | Trả phí (dùng thử vô thời hạn) |
| Extension ecosystem | Rất lớn | Có sẵn nhiều tính năng built-in | Nhỏ hơn |
| Hiệu năng với project lớn | Tốt, có thể chậm nếu nhiều extension | Nặng hơn nhưng ổn định | Rất nhẹ, khởi động nhanh |
| Refactoring thông minh | Khá tốt qua extension | Rất mạnh, built-in | Hạn chế |
Nhận xét: VS Code phù hợp với đa số web developer nhờ miễn phí và extension mạnh. Nếu làm việc nhiều với TypeScript/React ở dự án lớn, WebStorm đáng cân nhắc nhờ refactoring tool mạnh hơn.
Quản Lý Cửa Sổ: Rectangle
- Link chính thức: rectangleapp.com
- Chức năng: Cho phép dùng phím tắt để snap cửa sổ về nửa trái/phải, góc, hoặc full màn hình — rất hữu ích khi làm việc với nhiều màn hình hoặc split code/browser.
| Tiêu chí | Rectangle | Magnet | Moom |
|---|---|---|---|
| Giá | Miễn phí, mã nguồn mở | Trả phí (App Store) | Trả phí |
| Tùy biến phím tắt | Có | Có, hạn chế hơn | Rất linh hoạt |
| Snap theo lưới tùy chỉnh | Cơ bản | Cơ bản | Nâng cao (custom grid) |
Nhận xét: Rectangle là lựa chọn tốt nhất cho đa số dev vì miễn phí và đủ tính năng. Moom phù hợp nếu cần layout cửa sổ phức tạp, tùy chỉnh sâu.
Giao Tiếp Nhóm: Slack và Discord
- Link chính thức: slack.com và discord.com
- Chức năng: Slack thường dùng trong môi trường công ty/doanh nghiệp để giao tiếp nhóm, tích hợp CI/CD notification, bot. Discord phổ biến hơn trong cộng đồng open-source, gaming, và nhiều dev community kỹ thuật.
| Tiêu chí | Slack | Discord | Microsoft Teams |
|---|---|---|---|
| Đối tượng chính | Doanh nghiệp | Cộng đồng, open-source | Doanh nghiệp (hệ sinh thái Microsoft) |
| Tích hợp CI/CD, bot | Rất mạnh | Trung bình (qua webhook) | Mạnh (tích hợp Office 365) |
| Voice/video call | Có | Rất mạnh, ổn định | Có |
| Chi phí | Free tier giới hạn lịch sử tin nhắn | Miễn phí gần như đầy đủ | Đi kèm gói Office 365 |
Nhận xét: Dùng Slack cho công việc chính thức với công ty/khách hàng; Discord phù hợp hơn cho cộng đồng dev, group học tập, hoặc dự án side-project.
Media Player: VLC
- Link chính thức: videolan.org/vlc
- Chức năng: Phát hầu hết mọi định dạng video/audio mà không cần cài thêm codec — hữu ích khi xem lại video demo, recording buổi họp, hoặc file
.mkvkhông mở được bằng QuickTime.
| Tiêu chí | VLC | QuickTime Player | IINA |
|---|---|---|---|
| Hỗ trợ định dạng | Gần như tất cả | Giới hạn (cần codec bổ sung) | Rộng, dựa trên mpv |
| Giao diện | Đơn giản, hơi cũ | Tối giản, tích hợp hệ thống | Hiện đại, native macOS |
| Tính năng nâng cao | Convert, stream, subtitle sync | Cơ bản | Tốt, gần bằng VLC |
Nhận xét: VLC vẫn là lựa chọn "chống mọi tình huống" vì hỗ trợ codec rộng nhất. IINA đáng thử nếu bạn thích giao diện native macOS hơn.
Họp Trực Tuyến: Zoom
- Link chính thức: zoom.us
- Chức năng: Video call cho họp team, phỏng vấn, demo sản phẩm với khách hàng.
| Tiêu chí | Zoom | Google Meet | Microsoft Teams |
|---|---|---|---|
| Chất lượng video/audio | Rất tốt, ổn định | Tốt | Tốt |
| Giới hạn thời gian (free) | 40 phút/nhóm | Không giới hạn (gắn với Google account) | Giới hạn theo gói |
| Tính năng breakout room | Có, mạnh | Có | Có |
| Phổ biến trong doanh nghiệp | Rất phổ biến | Phổ biến (đi kèm Workspace) | Phổ biến (đi kèm Microsoft 365) |
Nhận xét: Zoom vẫn là chuẩn phổ biến nhất cho họp với khách hàng/đối tác ngoài công ty do độ ổn định cao.
Tunneling: ngrok
- Link chính thức: ngrok.com
- Chức năng: Tạo một URL public tạm thời trỏ vào server đang chạy
localhost, rất hữu ích khi test webhook (Stripe, GitHub, Telegram bot...) hoặc demo nhanh cho khách hàng mà không cần deploy.
| Tiêu chí | ngrok | localtunnel | Cloudflare Tunnel |
|---|---|---|---|
| Độ ổn định URL | Cao (custom domain ở bản trả phí) | Thấp, URL hay đổi | Cao |
| Tốc độ | Nhanh | Trung bình | Nhanh |
| Setup | Rất đơn giản (ngrok http 3000) |
Đơn giản | Cần cấu hình Cloudflare account |
| Giá | Free tier giới hạn, có gói trả phí | Miễn phí hoàn toàn | Miễn phí nếu đã dùng Cloudflare |
Nhận xét: ngrok là lựa chọn nhanh nhất để bắt đầu; nếu cần tunnel lâu dài, ổn định, ưu tiên Cloudflare Tunnel.
Ghi Hình/Streaming: OBS Studio
- Link chính thức: obsproject.com
- Chức năng: Ghi lại màn hình để làm video hướng dẫn, demo tính năng, hoặc live stream code session.
| Tiêu chí | OBS Studio | QuickTime (screen record) | Loom |
|---|---|---|---|
| Giá | Miễn phí, mã nguồn mở | Miễn phí (có sẵn macOS) | Free tier giới hạn, gói trả phí |
| Tùy biến scene/nguồn | Rất mạnh (nhiều scene, overlay) | Không có | Trung bình |
| Chia sẻ nhanh (cloud link) | Không có sẵn | Không có sẵn | Có, rất nhanh |
Nhận xét: OBS phù hợp khi cần kiểm soát chi tiết bản ghi (nhiều nguồn, overlay, streaming trực tiếp). Loom nhanh gọn hơn cho video hướng dẫn ngắn gửi đồng nghiệp.
Chỉnh Sửa Video: Shotcut
- Link chính thức: shotcut.org
- Chức năng: Cắt ghép, chỉnh sửa video sau khi ghi bằng OBS — ví dụ cắt phần thừa trong video demo trước khi gửi khách hàng.
| Tiêu chí | Shotcut | iMovie | DaVinci Resolve |
|---|---|---|---|
| Giá | Miễn phí, mã nguồn mở | Miễn phí (có sẵn macOS) | Miễn phí (bản Studio trả phí) |
| Độ phức tạp | Trung bình | Đơn giản, dễ dùng | Cao, chuyên nghiệp |
| Tính năng màu sắc/audio nâng cao | Cơ bản | Cơ bản | Rất mạnh (dùng trong phim ảnh) |
Nhận xét: Shotcut đủ dùng cho video demo kỹ thuật ngắn. Nếu cần dựng video chuyên nghiệp (marketing, YouTube channel), DaVinci Resolve mạnh hơn nhiều dù đường cong học tập dốc hơn.
AI Coding Tools: Claude Code và Codex
- Link chính thức: claude.com/claude-code và openai.com/codex
- Chức năng: Chạy trực tiếp trong terminal, đọc hiểu codebase, tự động sửa bug, viết test, và thực hiện các thao tác nhiều bước theo yêu cầu bằng ngôn ngữ tự nhiên.
| Tiêu chí | Claude Code | Codex CLI | GitHub Copilot (inline) |
|---|---|---|---|
| Môi trường chạy | Terminal (agentic CLI) | Terminal (agentic CLI) | Chủ yếu inline trong editor |
| Khả năng thao tác đa bước | Mạnh (đọc file, sửa, chạy lệnh, git) | Mạnh, tương tự | Hạn chế, chủ yếu autocomplete |
| Tích hợp Git/PR | Có | Có | Gián tiếp qua editor |
Nhận xét: Cả Claude Code và Codex đều là "agentic" CLI tool, phù hợp cho việc tự động hóa các task lặp lại (viết test, refactor, review code) thay vì chỉ autocomplete từng dòng như Copilot truyền thống. Nên cài cả hai để so sánh trải nghiệm và chọn công cụ hợp với workflow của bạn.
Font: Hack Nerd Font
- Link chính thức: nerdfonts.com
- Chức năng: Bộ font lập trình có bổ sung glyph/icon (Git, folder, ngôn ngữ lập trình...) — cần thiết để các theme terminal như Powerlevel10k, Starship, hoặc plugin của Neovim (nvim-tree, lualine) hiển thị đúng icon thay vì ô vuông trống.
Sau khi cài, vào iTerm2 > Settings > Profiles > Text và đổi font sang Hack Nerd Font để áp dụng.
Kiểm Tra Toàn Bộ Cài Đặt
Sau khi hoàn tất, chạy nhanh loạt lệnh sau để đảm bảo mọi thứ đã sẵn sàng:
brew --version
git --version
node -v && pnpm -v
jq --version
gh --version
docker --version && docker compose version
Nếu tất cả các lệnh trả về version number mà không báo lỗi command not found, môi trường của bạn đã sẵn sàng để bắt đầu code.
Xử Lý Lỗi Thường Gặp
brew: command not foundsau khi cài xong: shell chưa load Homebrew vàoPATH. Chạy lạieval "$(/opt/homebrew/bin/brew shellenv)"và thêm dòng này vào~/.zshrc.nvm: command not found: quênsource ~/.zshrcsau khi thêm đoạn exportNVM_DIR, hoặc thêm sai đường dẫnnvm.sh(kiểm tra bằngbrew --prefix nvm).- Docker Desktop báo "Cannot connect to the Docker daemon": cần mở app Docker Desktop từ Launchpad ít nhất một lần để daemon khởi động nền,
brew install --cask dockerchỉ cài app chứ không tự khởi động. gh auth loginyêu cầu xác thực: chạygh auth loginsau khi cài để liên kết tài khoản GitHub qua trình duyệt hoặc token.
Best Practices Khi Setup Máy Mới
- Lưu toàn bộ danh sách package vào một file
Brewfilebằng lệnhbrew bundle dump, để lần sau chỉ cầnbrew bundle installlà khôi phục lại toàn bộ môi trường. - Đồng bộ dotfiles (
~/.zshrc,~/.gitconfig) qua một Git repository riêng để mang theo cấu hình giữa các máy. - Luôn chạy
brew update && brew upgradeđịnh kỳ để cập nhật bảo mật cho các công cụ CLI. - Ưu tiên cài qua Homebrew Cask thay vì tải
.dmgthủ công, vì Homebrew giúp gỡ cài đặt sạch sẽ bằngbrew uninstall --cask <app>.
Tổng Kết
Qua bài học này, bạn đã có một quy trình setup macOS hoàn chỉnh cho web developer: từ cài Homebrew, các terminal application cốt lõi (git, nvm, pnpm, jq, gh, docker), đến toàn bộ GUI application cần thiết (trình duyệt, terminal emulator, editor, công cụ quản lý cửa sổ, giao tiếp nhóm, media, và AI coding tools). Quan trọng hơn, bạn đã hiểu được vì sao chọn từng công cụ thông qua các bảng so sánh với các lựa chọn thay thế phổ biến trên thị trường.
Ở bài tiếp theo, chúng ta sẽ chuyển sang setup môi trường tương đương trên Windows, bắt đầu với WSL2 — công cụ giúp Windows chạy được môi trường Linux gần như native cho web development.
