Claude Code self hosted berarti Anda menjalankan program baris perintahnya di server milik Anda, sementara modelnya tetap berjalan di infrastruktur penyedia.

Kondisi: pilihan ini masuk akal kalau tujuan Anda menahan repositori, kunci API, dan log kerja di mesin sendiri.

Batas: bobot model Claude tidak dibagikan untuk dipasang di server Anda, jadi isi percakapan tetap keluar lewat jaringan ke API penyedia.

Saya menulis ini setelah membaca dokumentasi resminya baris demi baris. Lalu saya pisahkan mana yang benar dapat Anda pegang dan mana yang tidak. Satu istilah dulu, supaya sisanya mudah. CLI adalah program yang Anda jalankan dengan mengetik perintah di terminal, seperti Anda mengetik ls untuk melihat isi folder. Claude Code adalah CLI seperti itu. Dia duduk di mesin Anda, membaca file Anda, dan menelepon model lewat internet.

Masalahnya, orang memakai kata "self hosted" untuk 4 hal yang berbeda. Keempatnya sah. Yang berbeda adalah siapa pegang kunci dan ke mana data mengalir.

Sekilas: 4 hal yang orang sebut self hosted

Baca kolom terakhir lebih dulu. Di situ letak keputusan Anda.

Cara Jalan di mesin Anda Tetap di penyedia Pemegang kunci
CLI di VPS Anda CLI, repositori, log sesi Model Anda
Runner self hosted resmi Runner, checkout, artefak build Model, pengatur sesi Organisasi Anda
Gateway sendiri Gateway, login karyawan Model Server gateway
Model terbuka di mesin sendiri Semua, termasuk model Tidak ada Anda

Dokumentasi resmi menyebut sesi di terminal dan di editor selalu berjalan di mesin developer sendiri. Jadi baris pertama tabel itu bukan akal-akalan. Itu cara kerja bawaannya.

Yang di mesin Anda, yang lewat jaringan, yang di penyedia

Saya pakai 3 kolom untuk menjelaskannya. Kolom kiri milik Anda penuh. Kolom kanan bukan milik Anda. Kolom tengah adalah bagian yang orang lupa, dan justru di situ risiko duduk.

Diagram 3 kolom yang memisahkan CLI, repositori, dan kunci di mesin Anda, isi percakapan di jaringan, serta model dan transkrip di penyedia
Diagram menunjukkan letak tiap bagian Claude Code. Isi kolom disusun dari dokumentasi resmi Claude Code, halaman data usage dan self-hosted environments, diakses 11 September 2026.

Dokumentasi menyatakan Claude Code berjalan secara lokal. Untuk berbicara dengan model, program itu mengirim data lewat jaringan. Data tersebut mencakup semua prompt pengguna dan keluaran model, terenkripsi saat transit dengan TLS 1.2 atau lebih baru.

Jadi kalimat "saya self host Claude Code" benar untuk programnya, dan salah untuk modelnya. Ini bukan kelemahan produk. Ini bentuk arsitekturnya, dan Anda perlu tahu bentuk itu sebelum berjanji ke tim hukum.

Claude Code self hosted di VPS Anda sendiri

Ini rute paling murah dan paling sering saya pakai. Anda sewa 1 VPS, pasang CLI-nya, taruh kunci API Anda sendiri di sana, dan repositori tinggal di disk itu. Dokumentasi menyebut pemasangan lewat 1 perintah unduh untuk macOS, Linux, dan WSL. Kalau variabel ANTHROPIC_API_KEY sudah terisi, CLI melewati layar login dan hanya meminta persetujuan atas kunci itu.

Ada 3 hal yang perlu Anda atur, dan ketiganya soal jejak di disk.

Pertama, transkrip. Klien menyimpan transkrip sesi secara lokal dalam bentuk teks biasa di bawah ~/.claude/projects/ selama 30 hari sebagai bawaan, supaya sesi dapat dilanjutkan. Anda mengubah masa simpan itu dengan cleanupPeriodDays. Teks biasa berarti siapa pun yang dapat membaca disk itu dapat membaca pekerjaan Anda.

Kedua, telemetri. Dokumentasi menyebut 2 jenis kiriman operasional: metrik dan laporan error. Metrik tidak pernah memuat kode, prompt, atau path file Anda. Anda mematikan metrik dengan DISABLE_TELEMETRY=1, laporan error dengan DISABLE_ERROR_REPORTING=1, atau semua lalu lintas non-esensial sekaligus dengan CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC.

Ketiga, batas kerja. Dalam mode manual, CLI hanya dapat menulis ke folder tempat dia dijalankan dan subfolder di bawahnya. Dia juga bertanya sebelum membaca path di luar batas itu. Batas ini yang mencegah 1 sesi berkeliaran ke seluruh server Anda.

Kalau Anda ingin melihat pola kerja harian di atas rute ini, saya sudah menulisnya terpisah di loop workflow Claude Code untuk koding sehari-hari dan di cara memakai dynamic workflows dengan benar.

Runner self hosted resmi untuk tim

Ada jalur resmi yang lebih jauh dari sekadar CLI di VPS. Dokumentasi menyebutnya self-hosted environment. Status saat saya membacanya: beta publik untuk organisasi Team dan Enterprise, dan mati sebagai bawaan.

Cara kerjanya mirip runner CI milik sendiri. Anda menjalankan program runner di host di dalam jaringan Anda. Runner itu mengambil sesi dari antrean, meng-clone repositori, dan menyalakan proses Claude Code di host Anda.

Yang penting untuk keputusan Anda ada 2 kalimat. Checkout repositori, artefak build, secret, dan file yang dibuat sesi tetap di mesin yang Anda sediakan. Isi percakapan, termasuk prompt, jawaban, dan hasil tool, tetap pergi ke API penyedia untuk inferensi, dan transkrip sesi disimpan di sana agar sesi dapat dilanjutkan dari perangkat lain.

Ada 3 batas yang saya catat. Semua koneksi keluar dari jaringan Anda, tidak ada yang masuk. Inferensi memakai API penyedia dan tidak dapat dialihkan ke Amazon Bedrock, Google Cloud, Microsoft Foundry, atau gateway LLM. Organisasi dengan Zero Data Retention tidak dapat memakai jalur ini.

Gateway sendiri: kunci pindah dari laptop ke server Anda

Ini rute yang sering hilang dari diskusi, padahal paling menjawab kekhawatiran nyata. Kekhawatiran itu biasanya bukan "di mana model berjalan", melainkan "kenapa 12 laptop memegang kunci API perusahaan".

Dokumentasi menyebut Claude apps gateway sebagai layanan self hosted yang duduk di antara klien Claude Code dan penyedia model Anda. Developer masuk dengan identitas perusahaan, bukan memegang kunci API atau kredensial cloud. Gateway itu yang memegang kredensial ke hulu. Gateway juga menegakkan akses model dan pengaturan terkelola per grup identitas, lalu meneruskan telemetri pemakaian ke sistem pemantauan Anda sendiri.

1 detail praktis: gateway itu sudah ada di dalam binary claude. Executable yang sama yang menjalankan Claude Code di laptop juga menjalankan server gateway dengan claude gateway --config gateway.yaml.

Kalau kebutuhan Anda hanya mengarahkan lalu lintas, ada pintu yang lebih kecil. Proxy perusahaan diatur dengan HTTPS_PROXY atau HTTP_PROXY. Gateway LLM diatur dengan ANTHROPIC_BASE_URL dan saudaranya per penyedia.

Kalau bobot model harus ada di mesin Anda

Kadang syaratnya keras: tidak boleh ada teks yang keluar dari gedung. Kalau itu syarat Anda, Claude bukan jawabannya, dan saya lebih suka mengatakannya terus terang.

Dokumentasi resmi membandingkan pilihan penempatan inferensi: API penyedia, Amazon Bedrock, Claude Platform di AWS, Google Cloud, dan Microsoft Foundry. Semuanya dijalankan oleh penyedia, bukan oleh Anda. Tidak ada pilihan yang menaruh bobot model di perangkat Anda sendiri.

1 nuansa yang layak dicatat dari tabel enkripsi mereka. Pada Microsoft Foundry dengan opsi hosting di Azure, prompt dan completion tetap berada di dalam Azure, dan hanya metadata pemakaian serta konten yang ditandai sistem keamanan yang keluar ke penyedia. Itu bukan self hosting, tetapi itu jalur data yang lebih pendek untuk sebagian aturan residensi.

Untuk kebutuhan model di mesin sendiri, Anda perlu keluarga model dengan bobot terbuka dan mesin yang mampu menjalankannya. Ini pengamatan saya dari praktik, bukan kutipan dokumentasi: mutu penalaran model terbuka yang muat di 1 GPU tunggal belum setara model frontier, jadi hitung ulang pekerjaan yang mau Anda serahkan kepadanya.

Cara memilih dalam 1 menit

Saya pakai 1 pertanyaan pembuka: apa yang tidak boleh keluar dari mesin Anda? Jawabannya menentukan cabang.

Diagram keputusan dengan 3 cabang: CLI di VPS Anda, runner self hosted, dan model terbuka lokal, masing-masing dengan 1 syarat pemilih
Diagram keputusan menunjukkan 1 syarat pemilih untuk tiap cabang. Syarat disusun dari batas resmi pada dokumentasi Claude Code, halaman self-hosted environments dan third-party integrations, diakses 11 September 2026.
Pilihan Syarat pemilih Harga yang Anda bayar
CLI di VPS Anda Repositori dan log harus di mesin Anda Anda mengurus patch dan akses server
Runner self hosted Sesi harus menjangkau layanan internal Anda merawat image dan armada runner
Gateway sendiri Kunci API tidak boleh di laptop Anda menjalankan 1 layanan tambahan
Model terbuka lokal Tidak ada teks yang boleh keluar Mutu jawaban turun, biaya GPU naik

Simulasi: 1 VPS, 1 kunci, 1 agen

Angka di bawah ini data contoh, bukan hasil klien. Saya pakai untuk menunjukkan urutan langkah dan bentuk keluarannya.

Kondisi awal: 1 VPS 4 vCPU milik tim, 3 developer, 1 repositori toko online, dan 1 kunci API yang sekarang tersimpan di 3 laptop.

Masukan: 1 permintaan tugas, "perbaiki 12 error lint di modul checkout lalu buat 1 branch".

Langkah 1: pasang CLI di VPS, bukan di laptop. Langkah 2: simpan kunci API hanya di VPS itu. Langkah 3: jalankan sesi di dalam folder repositori, bukan di home. Langkah 4: setel DISABLE_TELEMETRY=1 dan cleanupPeriodDays ke 7. Langkah 5: batasi akses SSH ke 3 kunci publik.

Keluaran yang dapat dilihat: 1 branch baru di repositori lokal, 12 error lint hilang, transkrip sesi ada di disk VPS, dan tidak ada kunci API di laptop mana pun.

Keputusan dari simulasi: 3 laptop turun jadi 0 pemegang kunci, tetapi 1 VPS naik jadi target baru. Karena itu langkah 5 bukan tambahan, melainkan syarat. Saya menulis daftar pengerasan yang saya pakai di checklist hardening VPS siap produksi.

Checklist sebelum Anda menyebutnya aman

  • Taruh kunci API di 1 tempat saja, lalu hapus salinannya dari laptop.
  • Jalankan sesi di dalam folder repositori, agar batas tulis tetap sempit.
  • Turunkan masa simpan transkrip lokal dengan cleanupPeriodDays.
  • Matikan telemetri dan laporan error kalau kebijakan Anda menuntutnya.
  • Catat siapa yang dapat SSH ke server itu, lalu tinjau daftarnya tiap bulan.
  • Tulis aturan izin di file pengaturan proyek, bukan di kepala 1 orang.
  • Pisahkan repositori klien dari repositori internal di server berbeda.
  • Uji 1 kali pemulihan: hapus sesi, lalu pastikan pekerjaan masih ada di git.

Untuk file pengaturan, dokumentasi menyebut 4 lapis: pengaturan pengguna, pengaturan proyek yang dibagikan, pengaturan lokal proyek, dan pengaturan terkelola organisasi. Lapis terkelola menang atas semuanya, dan itu yang dipakai tim keamanan untuk menetapkan kebijakan.

Tanya jawab

Apakah Claude Code bisa jalan tanpa internet? Tidak. Programnya berjalan lokal, tetapi setiap permintaan ke model dikirim lewat jaringan, jadi sesi berhenti saat koneksi mati.

Apakah kode saya dipakai untuk melatih model? Untuk akun komersial Team, Enterprise, dan API, dokumentasi menyebut masa simpan standar 30 hari, dan Zero Data Retention tersedia untuk akun Enterprise yang memenuhi syarat.

Bisakah saya pakai kunci API sendiri di server sendiri? Bisa. Isi variabel ANTHROPIC_API_KEY di server itu, lalu CLI melewati layar login dan meminta persetujuan atas kunci tersebut.

Apa bedanya runner self hosted dengan CLI di VPS? Runner menjalankan sesi cloud yang dimulai dari aplikasi web atau ponsel di dalam jaringan Anda, sedangkan CLI di VPS hanya melayani sesi yang Anda mulai sendiri di terminal itu.

Apakah gateway sendiri menghentikan kiriman data ke penyedia? Tidak. Gateway memindahkan kredensial ke server Anda dan mematikan analitik pemakaian sesi, tetapi isi percakapan tetap dikirim ke penyedia model untuk inferensi.

Berapa lama transkrip tersimpan di mesin saya? Bawaannya 30 hari dalam teks biasa di bawah folder proyek Claude, dan Anda dapat memperpendeknya lewat pengaturan masa bersih-bersih.

Sumber

Saya membaca ketujuh halaman itu pada 11 September 2026. Klaim di artikel ini terbatas pada apa yang tertulis di sana pada tanggal tersebut.

Langkah berikutnya

Kalau Anda ingin agen berjalan di server Anda dengan batas akses, peran pengguna, dan catatan audit, itu pekerjaan pemasangan, bukan pekerjaan menulis prompt. Saya mengerjakannya lewat layanan pemasangan AI agent ops. Kirim 1 kalimat tentang mesin Anda dan data yang tidak boleh keluar, lalu saya jawab apakah rute yang Anda pilih memang cocok.