SSD Nodes Learn Hosting plans →
Panduan Matt ConnorOleh Matt Connor · Diperbarui 2026-08-29

Cara Menjalankan OpenCode di VPS dengan Aman

Pelajari langkah instalasi OpenCode pada VPS menggunakan pengguna non-privilese dan tmux. Panduan ini mencakup konfigurasi kunci API agar sesi tetap aman saat Anda offline.

Apa itu OpenCode, dan apa yang sedang Anda siapkan

OpenCode adalah agen pengodean AI sumber terbuka yang dibangun untuk terminal. Anda memulainya di dalam direktori proyek, lalu ia akan membaca kode Anda, mengusulkan perubahan, menyunting berkas, dan menjalankan perintah, semuanya dari antarmuka pengguna terminal (TUI). Perangkat lunak ini berlisensi MIT, terhubung ke lebih dari 75 penyedia model, dan dengan sekitar 165,000 bintang di GitHub per pertengahan 2026, ini adalah agen pengodean sumber terbuka dengan bintang terbanyak yang ada saat ini. Untuk menjalankan OpenCode pada VPS, Anda menginstalnya di bawah pengguna non-privilese khusus, menempatkan kunci API model Anda dalam berkas privat, dan memulainya di dalam tmux agar sesi tetap berjalan saat koneksi Anda terputus. Panduan ini melakukan hal tersebut, sesuai urutannya.

Satu catatan penamaan untuk menghindari kebingungan. Repositori kanonik adalah anomalyco/opencode, yang dikelola oleh tim Anomaly (sebelumnya dikenal sebagai SST), dan proyek ini dulunya berada di sst/opencode. Repositori lama yang tidak terkait bernama opencode-ai/opencode juga ada di GitHub, jadi pastikan Anda membaca dokumentasi proyek yang benar. Situs resminya adalah opencode.ai.

Mengapa menjalankan OpenCode di VPS

Sesi agen pemrograman berlangsung lama. OpenCode dapat menghabiskan waktu berdurasi menit untuk melakukan refactor atau menjalankan test suite. Jika dijalankan di laptop, layar yang tertutup atau koneksi Wi-Fi yang terputus akan menghentikan sesi di tengah tugas. Di VPS menggunakan tmux, agen tetap bekerja setelah Anda terputus, dan Anda dapat melakukan reattach nanti untuk melihat hasilnya. Ini adalah pola yang sama dengan menjalankan Claude Code di VPS dengan tmux, dan merupakan peningkatan kualitas hidup terbesar saat memindahkan agen dari laptop Anda.

Alasan kedua adalah penempatan. VPS berada dekat dengan kode yang Anda deploy: repositori, alat build, database pengujian, dan sering kali lingkungan staging sudah berada di sana atau di dekatnya. Agen yang mengedit kode dan menjalankan pengujian bekerja paling baik pada mesin tempat pengujian tersebut benar-benar berjalan. Karena server tersebut berada di bawah kendali Anda, Anda dapat memberikan lingkungan yang terisolasi secara sengaja kepada agen, yang akan dibahas pada bagian berikutnya.

Jika Anda masih memilih alat, menjalankan agen AI pemrograman di VPS membandingkan cakupan yang lebih luas, termasuk Aider dan Goose.

Memberikan user khusus untuk OpenCode

Berikut adalah titik awal yang jujur: agen pengodean menyunting file dan menjalankan perintah. Itulah tugasnya, sekaligus risikonya. OpenCode akan menjalankan build, pengujian, dan perintah shell apa pun yang diperlukan oleh tugas tersebut, dan penilaian model memang baik namun tidak sempurna. Akun yang digunakan agen tersebut adalah batasan sejauh mana perintah yang buruk dapat menjangkau, jadi jangan jalankan sebagai root, dan jangan jalankan sebagai user yang sama dengan yang mengelola server.

Tidak seperti agen latar belakang, OpenCode bersifat interaktif, sehingga usernya memerlukan shell asli dan direktori home:

sudo useradd --create-home --shell /bin/bash opencode
sudo -iu opencode

Simpan proyek yang ingin Anda kerjakan di bawah /home/opencode, yang di-clone oleh user tersebut. Jangan berikan hak sudo pada akun ini. Jika agen menjalankan perintah yang merusak, ia hanya dapat merusak apa yang dimiliki oleh akun ini, yang merupakan logika yang sama dengan menjalankan layanan sebagai user tanpa hak akses istimewa. Bekerjalah di dalam repositori git juga, karena repositori mengubah setiap suntingan yang buruk menjadi git revert alih-alih kehilangan data.

Menginstal OpenCode

Proyek ini mendokumentasikan dua cara instalasi. Skrip instalasi adalah cara tercepat, dan menjalankannya sebagai pengguna opencode menjaga semuanya tetap berada di dalam direktori home pengguna tersebut:

curl -fsSL https://opencode.ai/install | bash

Kebiasaan curl | bash yang lazim berlaku di sini sebagaimana di tempat lain: pada server yang Anda perhatikan, unduh skripnya terlebih dahulu, baca isinya, kemudian jalankan. Setelah instalasi, buka shell baru agar perubahan PATH yang dibuat oleh penginstal mulai berlaku, lalu periksa jawaban biner tersebut:

opencode --version

Jika Anda lebih memilih manajer paket dan Node.js sudah ada di sistem, metode npm akan menginstal alat yang sama ke seluruh sistem, yang menempatkan biner opencode pada PATH untuk setiap pengguna:

sudo npm install -g opencode-ai

Bagaimanapun caranya, pemeriksaannya sama: opencode --version mencetak nomor versi. command not found setelah instalasi skrip berarti shell saat ini belum membaca PATH yang diperbarui, jadi keluarlah (log out) dan masuk kembali (log in) sebagai pengguna opencode.

Simpan kunci API dalam file privat

OpenCode memerlukan kunci untuk penyedia model apa pun yang Anda gunakan, dan kunci tersebut dapat menghabiskan saldo Anda, jadi perlakukan kunci tersebut seperti kata sandi. Buat file yang hanya dapat dibaca oleh pengguna opencode, dengan mode 600, dan simpan kunci di sana alih-alih mengetikkannya ke dalam perintah yang akan tersimpan dalam riwayat shell Anda:

install -m 600 /dev/null ~/opencode.env
nano ~/opencode.env

Masukkan variabel penyedia Anda ke dalamnya, contohnya ANTHROPIC_API_KEY=... atau yang setara untuk penyedia Anda, karena OpenCode mengambil variabel lingkungan penyedia standar. Muat file tersebut ke dalam shell Anda sebelum menjalankan agen:

set -a; source ~/opencode.env; set +a

OpenCode juga memiliki alternatif interaktif: perintah /connect di dalam TUI akan memandu Anda menambahkan penyedia dan menyimpan kredensial ke ~/.local/share/opencode/auth.json di direktori home pengguna. Jika Anda menggunakan metode tersebut, pastikan file bersifat privat dengan chmod 600 ~/.local/share/opencode/auth.json. Kedua metode tersebut menjaga kunci agar tidak muncul di baris perintah Anda; pilih salah satu dan gunakan secara konsisten.

Menjalankan OpenCode di dalam tmux

tmux adalah alasan mengapa pengaturan VPS ini sangat berguna, karena sesi tmux tetap berjalan saat koneksi SSH Anda terputus. Mulai satu sesi, masuk ke direktori proyek Anda, dan jalankan agen tersebut:

tmux new -s opencode
cd ~/my-project
opencode

Anda akan melihat TUI terbuka dengan prompt di bagian bawah dan nama proyek Anda di antarmuka tersebut. Berikan tugas dalam bahasa yang sederhana, dan agen akan mulai membaca file serta mengusulkan perubahan. Jika Anda ingin keluar, lakukan detach dengan menekan Ctrl-b lalu d, dan agen akan tetap bekerja meskipun laptop Anda ditutup. Lakukan reattach nanti dengan:

tmux attach -t opencode

Sesi, percakapan, dan tugas yang sedang berjalan akan berada tepat di tempat Anda meninggalkannya. Sesi ini bertahan dari pemutusan koneksi, tetapi tidak dari reboot server, jadi setelah reboot Anda harus memulai sesi tmux baru dengan cara yang sama. Tidak ada yang melarang Anda untuk membuka jendela tmux kedua dan menjalankan agen lain di samping yang pertama, meskipun sesi OpenCode tetap independen satu sama lain, sedangkan sesi Claude Code pada mesin yang sama dapat saling mengirim pesan, yang merupakan cara berbeda untuk membagi pekerjaan menjadi dua bagian.

Arahkan ke model

OpenCode bersifat agnostik terhadap penyedia. Alat ini menggunakan AI SDK dan katalog Models.dev untuk mendukung lebih dari 75 penyedia, sehingga alat yang sama dapat bekerja dengan Anthropic, OpenAI, Google, dan puluhan lainnya, termasuk server lokal. Cara cepatnya adalah dengan perintah /connect di dalam TUI, yang akan menampilkan daftar penyedia dan menangani kredensial. Untuk pengaturan yang dapat Anda simpan (commit) dan reproduksi, letakkan opencode.json di root proyek dan atur model sebagai provider/model-id:

{
  "$schema": "https://opencode.ai/config.json",
  "model": "anthropic/claude-sonnet-4-20250514"
}

Model lokal bekerja melalui file yang sama, karena server apa pun yang kompatibel dengan OpenAI dapat dideklarasikan sebagai penyedia. Jika Anda menjalankan model dengan Ollama pada VPS yang sama, konfigurasi akan mengarah ke API lokalnya, dan nama modelnya adalah apa pun yang ditampilkan oleh ollama list di mesin Anda:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Ollama (local)",
      "options": { "baseURL": "http://127.0.0.1:11434/v1" },
      "models": { "your-model-name": { "name": "Local coding model" } }
    }
  }
}

Ada satu kebiasaan bawaan yang layak diterapkan sejak hari pertama. OpenCode menyediakan dua agen yang dapat Anda alihkan dengan tombol Tab: Build, agen default dengan akses penuh, dan Plan, yang menonaktifkan kemampuan untuk melakukan perubahan. Mulailah tugas baru di Plan, biarkan agen membaca kode dan mengusulkan pendekatan, lalu beralihlah ke Build hanya setelah Anda menyetujui rencana tersebut. Di server, langkah awal yang bersifat read-only adalah asuransi yang murah. Claude Code membingkai keputusan yang sama sebagai mode izin alih-alih agen, dan peralihannya ke mode otomatis sebagai default layak dibaca jika Anda menjalankan kedua alat tersebut, karena mode saat sesi dimulai menentukan seberapa banyak perubahan yang dapat dilakukan oleh agen tanpa pengawasan.

Radius dampak, sejujurnya

Coding agent bukanlah entitas pasif, jadi jelaskan dengan lugas apa yang dilakukan dan tidak dilakukan oleh konfigurasi ini. Konfigurasi ini mencakup risiko kerusakan file: pengguna opencode hanya memiliki direktori home-nya sendiri dan tidak memiliki akses di luar itu, sehingga proses edit dan penghapusan terbatas pada batasan tersebut. Konfigurasi ini mencakup risiko paparan kredensial: kunci disimpan dalam satu file dengan mode 600, di dalam satu akun. Konfigurasi ini tidak membatasi apa yang secara sah dapat dilakukan oleh akun tersebut, jadi jika direktori proyek menyimpan kredensial deployment produksi, agent dapat menggunakannya; jauhkan kredensial tersebut sepenuhnya dari akun agent.

Berbeda dengan gateway agent seperti OpenClaw, OpenCode adalah program terminal interaktif, bukan daemon. Program ini tidak membuka port listening dan tidak memiliki layanan yang berjalan di latar belakang, sehingga tidak ada unit systemd yang perlu ditulis dan tidak ada port yang perlu difirewall untuk agent itu sendiri. Batasan keamanan terletak pada akun pengguna dan direktori proyek, itulah sebabnya bagian pertama dari panduan ini adalah yang paling penting.

Lingkungan di sekitar agent tetap memerlukan perawatan standar, karena VPS untuk coding tetaplah server publik: gunakan SSH berbasis kunci dengan login root yang dinonaktifkan, seperti pada pengerasan SSH pada VPS, firewall dengan kebijakan default-deny, dan pembaruan rutin. Selain itu, tinjau apa yang dihasilkan oleh agent. Baca diff-nya sebelum Anda melakukan push, sama seperti Anda membaca pull request dari kontributor baru, karena Anda adalah pihak yang melakukan deployment terhadap hasilnya.

Terakhir, pastikan tool tersebut selalu mutakhir. OpenCode sering merilis pembaruan, dan pembaruan tersebut membawa perbaikan yang penting bagi program yang menjalankan perintah di server Anda. Pembaruan menggunakan jalur yang sama dengan saat Anda melakukan instalasi: jalankan kembali skrip instalasi sebagai pengguna opencode, atau jalankan sudo npm update -g opencode-ai jika Anda menginstal melalui npm, kemudian konfirmasi versi baru dengan opencode --version. Pemeliharaan singkat sesekali jauh lebih murah daripada melakukan debugging terhadap perilaku yang sebenarnya sudah diperbaiki pada build versi beberapa bulan lalu.

FAQ

Bisakah OpenCode menggunakan model lokal alih-alih API berbayar?

Bisa. OpenCode memperlakukan server apa pun yang kompatibel dengan OpenAI sebagai penyedia, sehingga model yang dijalankan oleh Ollama pada VPS yang sama dapat digunakan: deklarasikan penyedia di opencode.json dengan baseURL lokal dan nama model yang dilaporkan oleh Ollama. Kendalanya adalah perangkat keras, karena model yang cukup mumpuni untuk pekerjaan pemrograman nyata membutuhkan memori yang besar, jadi sesuaikan ukuran server dengan model sebelum Anda mengunduhnya.

Bagaimana cara agar OpenCode tetap berjalan setelah saya menutup laptop?

Jalankan di dalam tmux pada VPS. Mulai agen dalam sesi bernama dengan tmux new -s opencode, lepaskan (detach) dengan Ctrl-b lalu d, dan sesi tersebut akan tetap berjalan di server setelah koneksi SSH Anda berakhir. Sambungkan kembali (reattach) kapan saja dengan tmux attach -t opencode dan percakapan serta tugas yang sedang berjalan akan tetap ada. Reboot server akan mengakhiri sesi, jadi mulailah sesi baru setelah reboot.

Apakah aman membiarkan OpenCode menjalankan perintah di VPS saya?

Hal ini dapat dikelola jika Anda membatasinya. Berikan OpenCode pengguna khusus yang tidak memiliki hak istimewa (unprivileged) tanpa sudo, simpan proyeknya di git agar setiap perubahan dapat dikembalikan, simpan kunci API dalam file dengan mode 600, dan gunakan agen Plan miliknya untuk pemeriksaan awal yang bersifat read-only sebelum Anda membiarkan agen Build mengubah apa pun. Dengan demikian, agen hanya dapat merusak apa yang dimiliki oleh akunnya sendiri, dan bagian server lainnya tetap aman.

Apa perbedaan antara OpenCode dan Claude Code?

OpenCode bersifat open source (MIT) dan agnostik terhadap penyedia, terhubung ke lebih dari 75 penyedia model, termasuk model lokal, melalui satu antarmuka. Claude Code adalah agen terminal milik Anthropic yang dibangun di sekitar model-model Anthropic. Jika Anda menginginkan satu alat untuk berbagai penyedia, atau tumpukan (stack) yang sepenuhnya di-host sendiri dengan model lokal, OpenCode adalah pilihan yang tepat; keduanya berjalan dengan baik di VPS di dalam tmux dengan pengaturan pengguna tanpa hak istimewa yang sama.