Cara pasang OpenCode pada VPS
Panduan memasang OpenCode pada VPS menggunakan tmux dan pengguna tanpa keistimewaan. Pastikan kunci API anda selamat dengan mengikuti langkah ini.
Apa itu OpenCode, dan apa yang anda sedang sediakan
OpenCode ialah ejen pengekodan AI sumber terbuka yang dibina untuk terminal. Anda memulakannya di dalam direktori projek, dan ia akan membaca kod anda, mencadangkan perubahan, menyunting fail, dan menjalankan arahan, semuanya melalui antara muka pengguna terminal (TUI). Ia dilesenkan di bawah MIT, menyambung ke lebih daripada 75 pembekal model, dan dengan kira-kira 165,000 bintang GitHub setakat pertengahan 2026, ia merupakan ejen pengekodan sumber terbuka yang paling banyak menerima bintang. Untuk menjalankan OpenCode pada VPS, anda perlu memasangnya di bawah pengguna tanpa keistimewaan (unprivileged user) yang khusus, letakkan kunci API model anda dalam fail peribadi, dan mulakannya di dalam tmux supaya sesi tersebut kekal aktif apabila sambungan anda terputus. Panduan ini akan melakukan perkara tersebut mengikut urutan tersebut.
Satu nota penamaan untuk mengelakkan kekeliruan. Repositori rasmi ialah anomalyco/opencode, yang diselenggara oleh pasukan Anomaly (sebelum ini dikenali sebagai SST), dan projek ini sebelum ini berada di sst/opencode. Repositori lama yang tidak berkaitan bernama opencode-ai/opencode juga wujud di GitHub, jadi pastikan anda membaca dokumentasi projek yang betul. Laman web rasmi ialah opencode.ai.
Mengapa jalankan OpenCode pada VPS
Sesi ejen pengekodan adalah lama. OpenCode boleh mengambil masa beritahun-tahun untuk menyelesaikan proses refactor atau suite ujian. Jika ia dijalankan pada komputer riba anda, penutup komputer yang ditutup atau sambungan Wi-Fi yang terputus akan menghentikan sesi semasa tugasan sedang berjalan. Pada VPS di dalam tmux, ejen akan terus bekerja selepas anda memutuskan sambungan, dan anda boleh menyambung semula kemudian untuk melihat hasilnya. Ini adalah corak yang sama seperti menjalankan Claude Code pada VPS dengan tmux, dan ini merupakan peningkatan kualiti hidup yang paling besar apabila memindahkan ejen keluar daripada komputer riba anda.
Sebab kedua adalah kedudukan. VPS berada berdekatan dengan kod yang anda deploy: repositori, alatan binaan, pangkalan data ujian, dan sering kali persekitaran staging sudah sedia ada di sana atau berdekatan dengannya. Ejen yang menyunting kod dan menjalankan ujian berfungsi paling baik pada mesin di mana ujian tersebut sebenarnya dijalankan. Oleh sebab pelayan tersebut adalah pelayan yang anda kawal, anda boleh memberikan persekitaran yang terasing kepada ejen secara sengaja, seperti yang dijelaskan dalam bahagian seterusnya.
Jika anda masih memilih alatan, menjalankan ejen AI pengekodan pada VPS membandingkan pelbagai pilihan lain, termasuk Aider dan Goose.
Berikan OpenCode pengguna sendiri
Ini adalah titik permulaan yang penting: ejen pengekodan menyunting fail dan menjalankan arahan. Itu adalah tugasnya, dan itu juga risikonya. OpenCode akan menjalankan proses binaan, ujian, dan apa jua arahan shell yang diperlukan oleh tugasan tersebut. Penilaian model adalah baik tetapi tidak sempurna. Akaun yang digunakan oleh ejen tersebut menentukan had capaian arahan yang salah, jadi jangan jalankannya sebagai root, dan jangan jalankannya sebagai pengguna yang sama yang mentadbir pelayan.
Berbeza dengan ejen latar belakang, OpenCode adalah interaktif, jadi penggunanya memerlukan shell sebenar dan direktori home:
sudo useradd --create-home --shell /bin/bash opencode
sudo -iu opencodeSimpan projek yang ingin anda kerjakan di bawah /home/opencode, yang telah di-clone oleh pengguna tersebut. Jangan berikan hak sudo kepada akaun tersebut. Jika ejen menjalankan arahan yang memusnahkan, ia hanya boleh memusnahkan apa yang dimiliki oleh akaun ini sahaja. Ini adalah alasan yang sama seperti menjalankan servis sebagai pengguna tanpa keistimewaan. Bekerja di dalam repositori git juga, kerana repositori menukarkan sebarang suntingan yang salah menjadi git revert dan bukannya kehilangan data.
Pasang OpenCode
Projek ini mendokumentasikan dua cara pemasangan. Skrip pemasangan adalah cara terpantas, dan menjalankannya sebagai pengguna opencode akan menyimpan semua fail di dalam direktori home pengguna tersebut:
curl -fsSL https://opencode.ai/install | bashAmalan curl | bash biasa terpakai di sini seperti di tempat lain: pada pelayan yang penting bagi anda, muat turun skrip terlebih dahulu, baca skrip tersebut, kemudian jalankannya. Selepas pemasangan, mulakan shell baharu supaya perubahan PATH oleh pemasang berkesan, kemudian semak jawapan binari:
opencode --versionJika anda lebih suka menggunakan pengurus pakej dan Node.js sudah sedia ada pada sistem, kaedah npm akan memasang alat yang sama untuk seluruh sistem, yang meletakkan binari opencode pada PATH untuk setiap pengguna:
sudo npm install -g opencode-aiDalam kedua-dua cara, semakan adalah sama: opencode --version akan mencetak nombor versi. Jika command not found berlaku selepas pemasangan skrip, ini bermakna shell semasa belum membaca PATH yang telah dikemas kini, jadi log keluar dan log masuk semula sebagai pengguna opencode.
Letakkan kunci API dalam fail peribadi
OpenCode memerlukan kunci bagi mana-mana pembekal model yang anda gunakan. Kunci tersebut boleh menggunakan kredit atau wang anda, jadi layan ia seperti kata laluan. Cipta fail yang hanya boleh dibaca oleh pengguna opencode dengan mod 600. Simpan kunci tersebut di situ dan jangan taip ia secara terus dalam arahan supaya ia tidak tersimpan dalam sejarah shell anda:
install -m 600 /dev/null ~/opencode.env
nano ~/opencode.envMasukkan pemboleh ubah pembekal anda ke dalam fail tersebut, contohnya ANTHROPIC_API_KEY=... atau yang setara bagi pembekal anda, kerana OpenCode menggunakan pemboleh ubah persekitaran pembekal yang standard. Muat fail tersebut ke dalam shell anda sebelum memulakan ejen:
set -a; source ~/opencode.env; set +aOpenCode juga mempunyai alternatif interaktif: arahan /connect di dalam TUI akan membimbing anda untuk menambah pembekal dan menyimpan kredensial ke ~/.local/share/opencode/auth.json di dalam direktori home pengguna. Jika anda menggunakan kaedah ini, sahkan fail tersebut adalah peribadi dengan chmod 600 ~/.local/share/opencode/auth.json. Kedua-dua kaedah ini memastikan kunci tidak terdedah dalam baris arahan anda; pilih satu kaedah dan kekal konsisten.
Mulakan OpenCode di dalam tmux
tmux adalah sebab utama mengapa tetapan VPS ini berbaloi, kerana sesi tmux akan terus berjalan walaupun sambungan SSH anda terputus. Mulakan satu sesi, masuk ke dalam projek anda, dan lancarkan ejen:
tmux new -s opencode
cd ~/my-project
opencodeAnda sepatutnya melihat TUI terbuka dengan bar arahan di bahagian bawah dan nama projek anda pada antara muka. Berikan tugasan dalam bahasa biasa, dan ia akan mula membaca fail serta mencadangkan perubahan. Apabila anda ingin keluar, leraikan sesi dengan Ctrl-b kemudian d, dan ejen akan terus bekerja walaupun komputer riba anda ditutup. Sambung semula kemudian dengan:
tmux attach -t opencodeSesi, perbualan, dan sebarang tugasan yang sedang berjalan akan kekal di tempat asal anda meninggalkannya. Ini akan bertahan walaupun anda terputus sambungan, tetapi tidak jika pelayan dimulakan semula (reboot). Oleh itu, selepas reboot, anda perlu memulakan sesi tmux baharu dengan cara yang sama.
Sambungkan ke model
OpenCode tidak terikat kepada mana-mana pembekal. Ia menggunakan AI SDK dan katalog Models.dev untuk menyokong lebih daripada 75 pembekal. Oleh itu, alat yang sama boleh digunakan dengan Anthropic, OpenAI, Google, dan berpuluh-puluh pembekal lain, termasuk pelayan tempatan. Cara pantas adalah menggunakan arahan /connect di dalam TUI, yang menyenaraikan pembekal dan menguruskan kredensial. Untuk tetapan yang boleh disimpan (commit) dan diulang, letakkan fail opencode.json di akar projek dan tetapkan model sebagai provider/model-id:
{
"$schema": "https://opencode.ai/config.json",
"model": "anthropic/claude-sonnet-4-20250514"
}Model tempatan berfungsi melalui fail yang sama, kerana mana-mana pelayan yang serasi dengan OpenAI boleh diisytiharkan sebagai pembekal. Jika anda menjalankan model dengan Ollama pada VPS yang sama, konfigurasi tersebut akan merujuk kepada API tempatannya, dan nama model adalah apa sahaja yang dipaparkan oleh ollama list pada sistem 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" } }
}
}
}Satu tabiat sedia ada yang perlu diamalkan sejak hari pertama. OpenCode menyediakan dua ejen yang boleh ditukar menggunakan kekunci Tab: Build, ejen lalai dengan akses penuh, dan Plan, yang melumpuhkan keupayaan untuk membuat perubahan. Mulakan tugasan baharu dalam mod Plan, biarkan ia membaca kod dan mencadangkan pendekatan, dan hanya tukar ke mod Build apabila anda bersetuju dengan pelan tersebut. Pada pelayan, fasa pertama yang bersifat baca-sahaja (read-only) adalah langkah keselamatan yang murah.
Skop impak sebenar
Ejen pengekodan tidak bersifat pasif, jadi nyatakan dengan jelas apa yang tetapan ini sertakan atau tidak. Ia merangkumi kerosakan fail: pengguna opencode hanya memiliki direktori home sendiri dan tiada lagi, jadi sebarang suntingan atau pemadaman terhad pada sempadan tersebut. Ia merangkumi pendedahan kredensial: kunci disimpan dalam satu fail dengan mod 600, dalam satu akaun. Ia tidak merangkumi apa yang akaun tersebut boleh lakukan secara sah, jadi jika direktori projek mengandungi kredensial penyebaran produksi, ejen boleh menggunakannya; pastikan kredensial tersebut tidak berada dalam akaun ejen sama sekali.
Berbeza dengan ejen gerbang seperti OpenClaw, OpenCode ialah program terminal interaktif, bukan daemon. Ia tidak membuka sebarang port pendengaran dan tiada perkhidmatan jangka panjang, jadi tiada unit systemd yang perlu ditulis dan tiada port yang perlu dikawal selia firewall untuk ejen itu sendiri. Kawalan adalah pada akaun pengguna dan direktori projek, sebab itulah bahagian pertama panduan ini adalah yang paling penting.
Sistem tersebut masih memerlukan penjagaan standard, kerana VPS pengekodan tetap merupakan pelayan awam: SSH hanya menggunakan kunci dengan log masuk root dinyahaktifkan, seperti dalam pengerasan SSH pada VPS, firewall default-deny, dan kemas kini rutin. Dan semak hasil kerja ejen tersebut. Baca perbezaan (diffs) sebelum anda melakukan push, sama seperti anda membaca pull request daripada penyumbang baharu, kerana anda adalah individu yang akan menyebarkan hasil tersebut.
Akhir sekali, pastikan alat itu sentiasa dikemas kini. OpenCode kerap mengeluarkan versi baharu, dan kemas kini membawa pembetulan penting untuk program yang menjalankan arahan pada pelayan anda. Proses mengemas kini menggunakan kaedah yang sama semasa anda memasangnya: jalankan semula skrip pemasangan sebagai pengguna opencode, atau jalankan sudo npm update -g opencode-ai jika anda memasang melalui npm, kemudian sahkan versi baharu dengan opencode --version. Penyelenggaraan singkat dari semasa ke semasa adalah lebih murah daripada menyahpepijat tingkah laku yang telah dibetulkan oleh versi lama.
FAQ
Bolehkah OpenCode menggunakan model tempatan berbanding API berbayar?
Boleh. OpenCode menganggap mana-mana pelayan serasi OpenAI sebagai pembekal, jadi model yang disajikan oleh Ollama pada VPS yang sama boleh digunakan: nyatakan pembekal dalam opencode.json dengan baseURL tempatan dan nama model yang dilaporkan oleh Ollama. Kekangannya adalah perkakasan, kerana model yang cukup baik untuk kerja pengkodan sebenar memerlukan memori yang besar, jadi tentukan saiz pelayan untuk model tersebut sebelum anda memuat turunnya.
Bagaimanakah cara untuk memastikan OpenCode terus berjalan selepas saya menutup komputer riba?
Jalankannya di dalam tmux pada VPS. Mulakan ejen dalam sesi bernama dengan tmux new -s opencode, lepaskan (detach) dengan Ctrl-b kemudian d, dan sesi tersebut akan terus berjalan pada pelayan selepas sambungan SSH anda tamat. Sambung semula (reattach) pada bila-bila masa dengan tmux attach -t opencode dan perbualan serta sebarang tugasan yang sedang berjalan masih ada di sana. Mulakan semula (reboot) pelayan akan menamatkan sesi, jadi mulakan sesi baharu selepas reboot.
Adakah selamat untuk membenarkan OpenCode menjalankan arahan pada VPS saya?
Ia boleh dikawal jika anda mengehadkan aksesnya. Berikan OpenCode pengguna tanpa keistimewaan (unprivileged user) yang tiada sudo, simpan projeknya dalam git supaya setiap suntingan boleh dipulihkan, simpan kunci API dalam fail dengan mod 600, dan gunakan ejen Plan untuk semakan baca-sahaja sebelum anda membenarkan ejen Build mengubah apa-apa. Ejen tersebut hanya boleh merosakkan apa yang dimiliki oleh akaunnya sendiri, manakala bahagian pelayan yang lain tidak boleh dicapai.
Apakah perbezaan antara OpenCode dan Claude Code?
OpenCode adalah sumber terbuka (MIT) dan tidak bergantung kepada pembekal, menyambung ke lebih daripada 75 pembekal model, termasuk model tempatan, melalui satu antara muka. Claude Code adalah ejen terminal milik Anthropic, dibina berasaskan model Anthropic. Jika anda mahukan satu alatan untuk pelbagai pembekal, atau susunan hos-sendiri sepenuhnya dengan model tempatan, OpenCode adalah pilihan yang sesuai; kedua-duanya berjalan lancar pada VPS di dalam tmux dengan tetapan pengguna tanpa keistimewaan yang sama.