continue_dev_ollama

Membuat AI Coding Agent dengan Continue.dev dan Ollama Server

AI coding assistant tidak selalu harus menggunakan layanan cloud atau API berbayar. Jika perusahaan memiliki server sendiri dengan GPU yang cukup, kita dapat menjalankan Large Language Model (LLM) menggunakan Ollama dan menggunakannya langsung dari code editor-mu.

Pada artikel ini saya akan membahas konfigurasi AI coding assistant menggunakan:

  • VSCode atau VSCodium
  • Continue.dev
  • Ollama
  • LLM yang berjalan di server kantor
  • SSH Tunnel
  • SSH Jump Host / Bastion Server

Topologi yang digunakan kurang lebih seperti ini:

┌─────────────────────┐
│ Laptop Developer    │
│                     │
│ VSCode / VSCodium   │
│ Continue.dev        │
│                     │
│ localhost:11434     │
└──────────┬──────────┘
           │
           │ SSH Local Tunnel
           │
           ▼
┌─────────────────────┐
│ Jump Host           │
│ IP:Port    │
│                     │
│ user             │
└──────────┬──────────┘
           │
           │ SSH ProxyJump
           ▼
┌─────────────────────┐
│ Server AI / Ollama  │
│ localhost:port      │
│                     │
│ Ollama :11434       │
└─────────────────────┘

Dengan pendekatan ini, Ollama tidak perlu diekspos langsung ke internet.

Kenapa Menggunakan SSH Tunnel?

Secara default, Ollama biasanya berjalan pada port:

11434

Misalnya API Ollama dapat diakses secara lokal melalui:

http://localhost:11434

Masalahnya, server Ollama berada di jaringan kantor dan tidak dapat diakses langsung dari laptop developer.

Akses ke server tersebut harus melewati:

  1. Jump Host / Bastion Host
  2. Server tujuan
  3. SSH Tunnel

Daripada membuka port Ollama ke internet, kita cukup membuat tunnel SSH sehingga aplikasi di laptop dapat mengakses Ollama seolah-olah Ollama berjalan secara lokal.

Perintah SSH Tunnel

Perintah yang digunakan adalah:

ssh -N \ -L 11434:localhost:11434 \ -J user@ip:port \ user@localhost \ -p port

Mari kita bahas satu per satu.

Parameter -N

-N

Parameter ini berarti SSH tidak menjalankan remote command.

SSH hanya digunakan untuk membuat koneksi tunnel.

Ini cocok untuk kasus seperti:

  • Port forwarding
  • Database tunnel
  • Redis tunnel
  • Ollama API tunnel
  • Internal service access

Terminal akan tetap terbuka selama tunnel masih aktif.

Parameter -L

-L 11434:localhost:11434

Ini adalah Local Port Forwarding.

Format dasarnya:

-L LOCAL_PORT:REMOTE_HOST:REMOTE_PORT

Dalam kasus ini:

11434:localhost:11434

Artinya:

Laptop localhost:11434
        │
        │ SSH Tunnel
        ▼
Server Ollama localhost:11434

Setelah tunnel aktif, aplikasi di laptop cukup mengakses:

http://localhost:11434

Padahal request tersebut sebenarnya diteruskan ke Ollama yang berjalan di server kantor.

Menggunakan Jump Host dengan -J

Server Ollama tidak dapat diakses langsung dari internet.

Kita harus melewati jump host:

softdev@ip:port

Kemudian menggunakan:

-J softdev@i:port

-J merupakan singkatan dari:

ProxyJump

SSH akan membuat koneksi seperti:

Laptop
   │
   │ SSH
   ▼
IP:port
   │
   │ SSH
   ▼
Server Ollama

Ini jauh lebih nyaman dibandingkan membuat tunnel SSH bertingkat secara manual.

Koneksi ke Server Tujuan

Bagian berikut:

user@localhost -p port

berarti SSH terhubung ke:

User: user
Host: localhost
Port: port

Dari perspektif jump host, localhost:2233 merupakan server tujuan yang dapat diakses melalui jaringan internal.

Secara konsep:

Laptop
   │
   ▼
Jump Host
IP Public:Port
   │
   ▼
localhost:port
   │
   ▼
Server dengan Ollama

Kemudian port Ollama:

localhost:11434

pada server tujuan diteruskan ke:

localhost:11434

di laptop developer.

Menjalankan SSH Tunnel

Buka terminal dan jalankan:

Tanyakan ke admin kantor

Jika koneksi berhasil, terminal akan terlihat seperti tidak melakukan apa-apa.

Hal tersebut normal.

SSH sedang berjalan di foreground dan menjaga tunnel tetap aktif.

Jangan tutup terminal tersebut.

Menguji Ollama dari Laptop

Setelah tunnel aktif, buka terminal baru dan jalankan:

curl http://localhost:11434/api/tags

Jika berhasil, Ollama akan mengembalikan daftar model yang tersedia.

Contoh:

{
  "models": [
    {
      "name": "qwen3-coder:latest"
    }
  ]
}

Atau dapat menggunakan:

curl http://localhost:11434

Jika koneksi berhasil, berarti:

VSCode
   │
   ▼
localhost:11434
   │
SSH Tunnel
   │
   ▼
Jump Host
   │
   ▼
Ollama Server

sudah berfungsi.

Menggunakan Continue.dev

Setelah Ollama dapat diakses melalui:

http://localhost:11434

selanjutnya kita dapat menghubungkan Continue.dev.

Continue.dev dapat digunakan pada:

  • Visual Studio Code
  • VSCodium
  • Editor berbasis VSCode lainnya yang kompatibel

Install extension Continue.dev melalui marketplace atau marketplace alternatif yang tersedia pada editor.

Setelah terinstall, konfigurasi model dapat diarahkan ke Ollama lokal.

Yang menarik adalah Continue.dev tidak perlu mengetahui bahwa Ollama sebenarnya berada di server kantor.

Dari perspektif Continue.dev:

Ollama berjalan di:

http://localhost:11434

Padahal sebenarnya request melewati SSH tunnel.

Konfigurasi Ollama di Continue.dev

Konfigurasi model secara konsep dapat menggunakan provider Ollama dengan alamat:

http://localhost:11434

Misalnya model coding yang tersedia di server:

qwen3-coder

atau model lain yang mendukung coding dan agent workflow.

Arsitektur akhirnya menjadi:

VSCode / VSCodium -> Continue.dev -> AI Agent -> HTTP -> localhost:11434 -> SSH Local Tunnel -> SSH Jump Host -> Internal AI Server -> Ollama API :11434 -> LLM Model

Mengapa Pendekatan Ini Menarik?

Ada beberapa keuntungan menggunakan arsitektur seperti ini.

1. GPU Tidak Perlu Ada di Laptop

Laptop developer tidak perlu memiliki GPU besar.

Proses inference dilakukan oleh server kantor.

Laptop hanya digunakan untuk:

  • VSCode/VSCodium
  • Continue.dev
  • Menampilkan hasil AI
  • Mengirim source code dan context

Sedangkan proses berat dilakukan oleh:

GPU Server

2. Model Tidak Perlu Di-download di Setiap Laptop

Jika menggunakan Ollama secara lokal, setiap developer mungkin perlu mengunduh model berukuran:

10 GB
20 GB
30 GB
atau lebih

Dengan Ollama Server, model cukup tersedia di satu tempat.

Developer tinggal menggunakan API.


3. Lebih Aman Dibanding Membuka Ollama ke Internet

Membuka port:

11434

langsung ke internet bukanlah pilihan ideal.

Dengan SSH Tunnel:

Ollama Server
    │
localhost only
    │
SSH
    │
Developer

Ollama tetap dapat berjalan secara internal.

Akses hanya diberikan kepada user yang memiliki akses SSH.


4. Tidak Perlu VPN Tambahan

Dalam beberapa kasus, VPN mungkin tidak tersedia atau terlalu kompleks untuk dikonfigurasi.

SSH Tunnel dapat menjadi solusi sederhana.

Developer cukup memiliki:

  • SSH Client
  • Credential SSH
  • Akses ke Jump Host
  • Akses ke server internal

Menjalankan Tunnel di Background

Jika tidak ingin terminal selalu terbuka, SSH dapat dijalankan di background.

Contoh:

ssh -f -N \
  -L 11434:localhost:11434 \
  -J user@ip public : port \
  user@localhost \
  -p port

Parameter:

-f

akan meminta SSH berpindah ke background setelah autentikasi berhasil.

Namun untuk penggunaan awal, saya lebih menyarankan menggunakan tanpa -f terlebih dahulu.

Hal ini memudahkan troubleshooting jika:

  • Password salah
  • SSH key bermasalah
  • Jump host tidak dapat diakses
  • Port tujuan tidak tersedia
  • Tunnel terputus

Membuat Konfigurasi SSH Lebih Sederhana

Perintah SSH di atas cukup panjang.

Agar lebih mudah, kita dapat menggunakan file:

~/.ssh/config

Contoh:

Host office-jump
    HostName IP Public
    Port port
    User user

Host ollama-office
    HostName localhost
    Port 2233
    User user
    ProxyJump office-jump
    LocalForward 11434 localhost:11434

Kemudian cukup menjalankan:

ssh -N ollama-office

Lebih mudah dibandingkan mengingat perintah panjang.

Selain itu konfigurasi ini dapat digunakan kembali untuk kebutuhan lain.

Menggunakan SSH Config dengan VSCode dan Tools Developer

Menggunakan ~/.ssh/config memiliki keuntungan tambahan.

Host:

ollama-office

dapat digunakan oleh berbagai tools yang mendukung OpenSSH.

Misalnya:

ssh ollama-office

atau tools lain yang menggunakan konfigurasi SSH standar.

Dengan pendekatan ini, konfigurasi jaringan tidak perlu diulang di setiap aplikasi.

Aplikasi hanya cukup mengetahui:

http://localhost:11434

Troubleshooting

Port 11434 Sudah Digunakan

Jika laptop sudah menjalankan Ollama lokal, kemungkinan muncul error:

Address already in use

Gunakan port lokal lain:

ssh -N \
  -L 11435:localhost:11434 \
  -J user@ip public:port \
  user@localhost \
  -p port

Kemudian akses:

http://localhost:11435

Remote Ollama tetap menggunakan:

localhost:11434

Tunnel Terputus

Koneksi SSH dapat terputus karena:

  • Koneksi internet berubah
  • Laptop sleep
  • Server melakukan restart
  • Idle connection timeout

Untuk penggunaan yang lebih stabil, dapat menambahkan:

-o ServerAliveInterval=60
-o ServerAliveCountMax=3

Contoh:

ssh -N \
  -o ServerAliveInterval=60 \
  -o ServerAliveCountMax=3 \
  -L 11434:localhost:11434 \
  -J user@ip public:port \
  user@localhost \
  -p port

SSH akan mengirim keepalive secara periodik.

Continue.dev Tidak Bisa Terhubung

Pastikan tunnel benar-benar aktif.

Cek:

curl http://localhost:11434/api/tags

Jika perintah ini gagal, masalah belum berada di Continue.dev.

Periksa terlebih dahulu:

  1. SSH tunnel
  2. Jump host
  3. Server tujuan
  4. Service Ollama

Di server Ollama, periksa:

ollama list

dan:

systemctl status ollama

Kesimpulan

Menggunakan AI Coding Agent tidak selalu berarti harus menggunakan API cloud.

Dengan kombinasi:

VSCode / VSCodium
        +
Continue.dev
        +
SSH Tunnel
        +
Jump Host
        +
Ollama Server
        +
LLM Coding Model

kita dapat membangun environment AI coding assistant yang berjalan menggunakan infrastruktur internal.

Developer cukup mengakses:

http://localhost:11434

sementara proses inference sebenarnya dilakukan di server kantor.

Pendekatan ini memberikan beberapa keuntungan:

  • GPU server dapat digunakan bersama
  • Model tidak perlu di-download di setiap laptop
  • Ollama tidak perlu dibuka langsung ke internet
  • Akses dapat melewati SSH Jump Host
  • Continue.dev tetap dapat bekerja seperti menggunakan Ollama lokal
  • Cocok untuk development environment internal atau remote

Dengan arsitektur ini, VSCode atau VSCodium dapat berfungsi sebagai frontend AI Agent, sementara server kantor menjadi pusat komputasi LLM.

Dari sisi developer, semuanya tetap terasa sederhana:

Continue.dev
        ↓
localhost:11434

Namun di balik localhost, terdapat SSH tunnel yang menghubungkan editor dengan AI server yang berada di jaringan internal perusahaan.

Leave a Reply

Your email address will not be published. Required fields are marked *