catdev

Docker, PHP, Node, dan Claude Code di MacBook 2012.

catdev menjalankan Linux VM ringan di macOS Catalina lewat QEMU. Tanpa ganti OS, tanpa patch macOS, dan tanpa Docker Desktop.

MacBook-nya masih kuat, tool-nya yang pergi duluan

Banyak MacBook Intel lama berhenti di macOS Catalina. Hardware-nya masih layak untuk ngoding, apalagi kalau RAM sudah di-upgrade, tapi satu per satu tool developer berhenti mendukungnya.

Docker Desktop

Versi yang masih jalan di Catalina sudah lama ditinggal.

Homebrew

Catalina tidak lagi didukung, banyak paket harus dikompilasi sendiri.

Editor dan aplikasi Electron baru

Sebagian besar sekarang butuh minimal macOS 11.

Multipass

Jalan, tapi berat. Di MacBook Pro 2012 bisa memakan sekitar 7 GB RAM dan bikin laptop lag.

Dari 7 GB jadi 1,1 GB

Setiap chip di bawah ini mewakili 1 GB dari RAM 16 GB (2 × 8 GB) di MacBook Pro 2012. Yang menyala adalah RAM yang dipakai VM, dilihat dari sisi Mac.

Multipass± 7 GB
catdev1,1 GB

Diukur di MacBook Pro 2012 dengan RAM 16 GB dan macOS Catalina, setelah VM selesai boot. Saat dipakai kerja, catdev bisa naik sampai batas VM_MEM (default 3 GB) dan tidak lebih.

Cara kerjanya

Docker butuh kernel Linux, jadi catdev menyalakan Debian 13 minimal di dalam QEMU. Prosesor Intel menjalankan VM-nya langsung lewat Hypervisor.framework bawaan macOS, sehingga kecepatannya mendekati native. Kamu tetap kerja dari Terminal, VS Code, dan browser di Mac seperti biasa.

MacBook dengan macOS Catalina

Terminal, VS Code Remote-SSH, dan browser

  • localhost:2222 ke SSH di VM
  • localhost:8000, :5173, :3000 ke aplikasimu
QEMU dengan akselerasi HVF

Proses ringan di Mac. RAM dan CPU-nya dibatasi lewat VM_MEM dan VM_CPUS.

Debian 13 VM
Docker MySQL PostgreSQL PHP versi apa pun lewat container Node.js Claude Code tmux zram

Yang perlu disiapkan

Cukup sekali di awal. Setelah itu yang dipakai sehari-hari hanya perintah catdev.

Pasang

  1. Pasang Xcode Command Line Tools

    xcode-select --install

    Kalau muncul pesan tidak tersedia, unduh “Command Line Tools for Xcode 12.4” dari developer.apple.com dan pasang manual.

  2. Pasang MacPorts

    Unduh installer untuk macOS Catalina dari macports.org, lalu jalankan seperti aplikasi biasa.

  3. Pasang QEMU

    sudo port selfupdate
    sudo port -b install qemu || sudo port install qemu
    qemu-system-x86_64 -accel help

    Pastikan hvf muncul di daftar. Kalau QEMU harus dikompilasi dari source, prosesnya bisa satu jam atau lebih. Colokkan charger dan biarkan jalan.

  4. Pasang catdev

    mkdir -p ~/bin
    curl -fsSL https://raw.githubusercontent.com/semutdev/catdev/main/catdev -o ~/bin/catdev
    chmod +x ~/bin/catdev
    echo 'export PATH="$HOME/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc
  5. Buat dan nyalakan VM

    [ -f ~/.ssh/id_ed25519.pub ] || ssh-keygen -t ed25519
    catdev init
    catdev up

    Boot pertama makan waktu beberapa menit karena Docker sedang dipasang di dalam VM. Tunggu sampai muncul “VM siap”.

Pemakaian harian

catdev upNyalakan VM.
catdev sshMasuk ke VM, atau jalankan satu perintah: catdev ssh docker ps.
catdev statusLihat RAM yang dipakai VM dan container yang sedang jalan.
catdev downMatikan VM dengan rapi. Lakukan sebelum mematikan Mac.

RAM, CPU, dan port diatur lewat environment variable, misalnya export VM_MEM=4096 atau export FWD_PORTS="3000 5173 8000 8080" di ~/.zshrc. Perubahan berlaku setelah catdev down lalu catdev up.

Simpan kode di dalam VM

Jalankan git clone di VM, jangan mount folder dari Mac. Docker, npm, composer, dan Claude Code jadi jauh lebih cepat karena membaca disk VM langsung.

Edit dengan VS Code Remote-SSH

Tambahkan host 127.0.0.1 port 2222 user dev ke ~/.ssh/config. Editor di Mac, semua prosesnya jalan di VM.

Pakai tmux untuk sesi panjang

catdev ssh tmux new -A -s main membuat sesi yang tetap hidup saat terminal ditutup, cocok untuk Claude Code dan dev server.

Batasan yang perlu kamu tahu