AI Tools

9Router Proxy

Catatan fungsi 9Router sebagai proxy, router, dan dashboard monitoring untuk penggunaan API model AI.

30 dari 57 materi Intermediate aiproxyrouterllmapimonitoring

9Router Proxy

9Router adalah tool yang berfungsi sebagai proxy dan router untuk API model AI. Tool ini menjadi lapisan tengah antara aplikasi atau CLI yang kita pakai dengan provider AI yang menjadi tujuan request.

Dengan pola ini, aplikasi tidak harus langsung terhubung ke masing-masing provider. Aplikasi cukup mengirim request ke 9Router, lalu 9Router yang mengatur request tersebut akan diteruskan ke provider atau model yang sesuai.

Fungsi Utama

1. Endpoint proxy

9Router menyediakan endpoint pusat yang bisa dipakai oleh aplikasi AI, coding agent, atau CLI tool. Endpoint ini menerima request dari client, lalu meneruskannya ke provider model AI yang sudah dikonfigurasi.

Contoh alur sederhana:

OpenCode / CLI / Aplikasi
  -> 9Router Proxy
  -> Provider AI / Model AI

2. Provider manager

9Router dapat dipakai untuk mengelola banyak provider AI dari satu dashboard. Provider ini bisa berupa layanan berbayar, layanan gratis, endpoint OpenAI-compatible, atau provider custom.

Manfaatnya:

  • API key dan endpoint lebih terpusat.
  • Lebih mudah mengganti provider tanpa mengubah konfigurasi di banyak aplikasi.
  • Bisa membandingkan performa beberapa model atau provider.

3. Model routing

9Router dapat mengarahkan request ke model atau provider tertentu. Misalnya satu client diarahkan ke model coding, sementara client lain diarahkan ke model yang lebih murah untuk chat ringan.

Contoh penggunaan:

  • Coding agent memakai model yang kuat untuk reasoning.
  • Chat ringan memakai model yang lebih hemat.
  • Request tertentu diarahkan ke provider cadangan jika provider utama gagal.

4. Combo

Menu Combos kemungkinan dipakai untuk membuat kombinasi routing. Combo bisa berguna untuk menyimpan konfigurasi tertentu, misalnya gabungan client, provider, model, fallback, atau profil penggunaan.

Contoh ide combo:

  • Coding Hemat: model murah untuk tugas ringan.
  • Coding Serius: model lebih kuat untuk refactor atau debugging berat.
  • Fallback Chain: provider utama lalu provider cadangan.

5. Usage analytics

9Router menyediakan halaman analytics untuk memantau penggunaan API. Dari dashboard, kita bisa melihat:

  • Total request.
  • Total input token.
  • Total output token.
  • Estimasi biaya.
  • Riwayat request per model.

Fitur ini penting untuk membaca pola penggunaan dan menghindari pemakaian token yang tidak terkontrol.

6. Quota tracker

Quota tracker dipakai untuk memantau batas penggunaan provider atau model. Fitur ini membantu kita mengetahui apakah penggunaan sudah mendekati limit harian, bulanan, atau limit dari provider tertentu.

7. Proxy pools

Proxy pools kemungkinan dipakai untuk mengelola kumpulan proxy jaringan. Ini berguna ketika traffic perlu diarahkan melalui jalur jaringan tertentu, dibagi ke beberapa proxy, atau disesuaikan dengan kebutuhan provider.

8. MITM dan debugging

Menu MITM mengarah ke fitur inspeksi request dan response. Fitur ini berguna untuk debugging:

  • Header request.
  • Payload yang dikirim ke provider.
  • Response dari model.
  • Error format API.
  • Masalah autentikasi.

9. Media providers

Menu Media Providers kemungkinan dipakai untuk provider yang tidak hanya berbasis chat teks, misalnya image generation, audio, video, atau layanan media lain.

10. Skills

Menu Skills bisa dikembangkan sebagai sistem kemampuan tambahan. Misalnya transformasi request, custom routing logic, preset prompt, filter keamanan, atau integrasi workflow tertentu.

11. CLI tools

CLI tools menunjukkan 9Router bisa diintegrasikan dengan terminal atau tool development. Ini cocok untuk coding agent, aplikasi command line, atau workflow lokal yang membutuhkan API AI.

12. Console log

Console log dipakai untuk melihat aktivitas runtime, error provider, request yang gagal, atau status service. Bagian ini penting saat melakukan troubleshooting.

Kapan 9Router Berguna

9Router paling berguna ketika kita:

  • Menggunakan banyak provider AI.
  • Ingin satu endpoint pusat untuk semua tool AI.
  • Perlu memantau token dan estimasi biaya.
  • Ingin fallback otomatis saat provider error.
  • Ingin debugging request dan response API.
  • Ingin memisahkan model untuk kebutuhan berbeda.
  • Ingin menjaga konfigurasi API key tetap rapi.

Cara Install 9Router di VPS

Bagian ini menggunakan pendekatan yang cocok untuk server produksi kecil: 9Router dijalankan di VPS, data disimpan persistent, lalu akses dashboard diamankan lewat firewall atau reverse proxy.

Sumber resmi:

1. Siapkan VPS

Rekomendasi awal:

  • Ubuntu 22.04 atau 24.04.
  • RAM minimal 1 GB, lebih nyaman 2 GB.
  • Storage minimal 10 GB.
  • Domain atau subdomain jika ingin akses lewat HTTPS.
  • Akses SSH dengan user yang punya izin sudo.

Update package server:

sudo apt update
sudo apt upgrade -y

Install utility dasar:

sudo apt install -y curl ca-certificates gnupg ufw

2. Install Docker

Install Docker menggunakan script resmi:

curl -fsSL https://get.docker.com | sudo sh

Aktifkan Docker saat boot:

sudo systemctl enable docker
sudo systemctl start docker

Opsional, agar user saat ini bisa menjalankan Docker tanpa sudo:

sudo usermod -aG docker $USER

Setelah menjalankan command di atas, logout dari SSH lalu login ulang.

Cek Docker:

docker --version
docker ps

3. Jalankan 9Router dengan Docker

Buat folder untuk data 9Router:

sudo mkdir -p /opt/9router/data
sudo chown -R $USER:$USER /opt/9router

Jalankan container:

docker run -d \
  --name 9router \
  --restart unless-stopped \
  -p 20128:20128 \
  -v /opt/9router/data:/app/data \
  -e DATA_DIR=/app/data \
  -e PORT=20128 \
  -e HOSTNAME=0.0.0.0 \
  decolua/9router:latest

Cek apakah container berjalan:

docker ps
docker logs -f 9router

Jika sukses, dashboard bisa dibuka dari browser:

http://IP_VPS:20128

URL penting:

Dashboard: http://IP_VPS:20128/dashboard
OpenAI-compatible API: http://IP_VPS:20128/v1

4. Alternatif rapi dengan Docker Compose

Untuk VPS, Docker Compose lebih nyaman karena konfigurasi container disimpan dalam file.

Buat folder project:

mkdir -p /opt/9router
cd /opt/9router

Buat file docker-compose.yml:

nano docker-compose.yml

Isi file:

services:
  9router:
    image: decolua/9router:latest
    container_name: 9router
    restart: unless-stopped
    ports:
      - "20128:20128"
    environment:
      DATA_DIR: /app/data
      PORT: 20128
      HOSTNAME: 0.0.0.0
    volumes:
      - ./data:/app/data

Jalankan:

docker compose up -d
docker compose logs -f

Jika nanti ingin memakai reverse proxy Nginx dan tidak ingin port 9Router terbuka langsung ke publik, ubah bagian ports menjadi:

ports:
  - "127.0.0.1:20128:20128"

Dengan cara ini, 9Router hanya bisa diakses dari dalam VPS melalui 127.0.0.1.

5. Amankan akses dengan firewall

Jika dashboard hanya dipakai pribadi, jangan buka terlalu banyak port.

Izinkan SSH:

sudo ufw allow OpenSSH

Jika ingin akses langsung ke dashboard lewat port 20128:

sudo ufw allow 20128/tcp
sudo ufw enable
sudo ufw status

Untuk setup yang lebih aman, jangan buka port 20128 ke publik. Gunakan reverse proxy seperti Nginx atau Caddy, lalu buka hanya port 80 dan 443.

6. Setup reverse proxy dengan Nginx

Install Nginx:

sudo apt install -y nginx

Buat konfigurasi site:

sudo nano /etc/nginx/sites-available/9router

Isi konfigurasi:

server {
    listen 80;
    server_name 9router.example.com;

    location / {
        proxy_pass http://127.0.0.1:20128;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Ganti 9router.example.com dengan domain atau subdomain sendiri.

Aktifkan site:

sudo ln -s /etc/nginx/sites-available/9router /etc/nginx/sites-enabled/9router
sudo nginx -t
sudo systemctl reload nginx

Atur firewall untuk web:

sudo ufw allow 'Nginx Full'
sudo ufw status

7. Pasang HTTPS dengan Certbot

Install Certbot:

sudo apt install -y certbot python3-certbot-nginx

Generate SSL:

sudo certbot --nginx -d 9router.example.com

Cek auto-renew:

sudo certbot renew --dry-run

Setelah ini dashboard bisa diakses melalui:

https://9router.example.com

8. Hubungkan client ke 9Router

Setelah dashboard aktif, tambahkan provider di menu Providers, lalu ambil endpoint dan API key dari dashboard.

Konfigurasi umum untuk tool yang mendukung OpenAI-compatible API:

Base URL / Endpoint: https://9router.example.com/v1
API Key: ambil dari dashboard 9Router
Model: pilih model atau combo yang sudah dibuat di 9Router

Jika akses langsung tanpa domain:

Base URL / Endpoint: http://IP_VPS:20128/v1
API Key: ambil dari dashboard 9Router

Gunakan HTTPS jika endpoint dipakai dari luar VPS, terutama karena request bisa membawa API key dan isi prompt.

9. Backup data 9Router

Data 9Router disimpan di folder yang dipasang ke container. Dalam contoh ini:

/opt/9router/data

Di dalam data tersebut biasanya terdapat database SQLite, backup, sertifikat, log, dan konfigurasi runtime.

Buat backup manual:

cd /opt/9router
tar -czf 9router-backup-$(date +%F).tar.gz data

Restore backup:

cd /opt/9router
docker stop 9router
tar -xzf 9router-backup-YYYY-MM-DD.tar.gz
docker start 9router

Simpan backup di tempat lain, misalnya object storage, server backup, atau local machine.

10. Update 9Router

Untuk update Docker image:

docker pull decolua/9router:latest
docker stop 9router
docker rm 9router
docker run -d \
  --name 9router \
  --restart unless-stopped \
  -p 20128:20128 \
  -v /opt/9router/data:/app/data \
  -e DATA_DIR=/app/data \
  -e PORT=20128 \
  -e HOSTNAME=0.0.0.0 \
  decolua/9router:latest

Karena data disimpan di /opt/9router/data, konfigurasi dan database tidak hilang saat container diganti.

Jika memakai Docker Compose:

cd /opt/9router
docker compose pull
docker compose up -d
docker compose logs -f

11. Alternatif install via npm

Jika tidak ingin memakai Docker, 9Router juga bisa dijalankan dari npm:

npm install -g 9router
9router

Untuk VPS produksi, jalankan dengan process manager seperti systemd atau pm2 agar service tetap hidup setelah SSH ditutup atau server reboot.

Contoh dengan pm2:

npm install -g pm2
pm2 start 9router --name 9router
pm2 save
pm2 startup

Namun untuk server yang ingin mudah di-backup dan mudah di-update, Docker biasanya lebih rapi.

12. Checklist keamanan VPS

Sebelum dipakai rutin, pastikan:

  • Jangan expose port 20128 langsung ke publik jika tidak perlu.
  • Gunakan Nginx/Caddy + HTTPS untuk akses dari luar.
  • Simpan API key dashboard dan provider dengan aman.
  • Batasi akses dashboard hanya untuk user yang dipercaya.
  • Aktifkan firewall dan hanya buka port yang diperlukan.
  • Backup folder data secara berkala.
  • Update image 9Router secara teratur.
  • Jangan menaruh API key provider di dokumentasi publik.
  • Jika memungkinkan, pakai domain khusus seperti ai-gateway.example.com.

13. Checklist setelah install

Setelah 9Router berjalan di VPS, lakukan pengecekan berikut:

  • Dashboard bisa dibuka dari browser.
  • Provider AI sudah ditambahkan.
  • Endpoint proxy sudah dicatat.
  • API key atau token dashboard tidak dibagikan publik.
  • Firewall hanya membuka port yang diperlukan.
  • Jika memakai domain, HTTPS sudah aktif.
  • Data 9Router tersimpan di volume persistent.
  • Log container tidak menunjukkan error berulang.

14. Troubleshooting

Jika dashboard tidak bisa dibuka, cek container:

docker ps
docker logs 9router

Jika port bentrok:

sudo lsof -i :20128

Jika Nginx error:

sudo nginx -t
sudo systemctl status nginx

Jika domain belum mengarah ke VPS, cek DNS record A domain sudah mengarah ke IP VPS.

Arah Pengembangan yang Disarankan

Beberapa ide pengembangan yang paling bermanfaat:

  1. Fallback otomatis

    Jika provider utama error, rate limit, atau lambat, request otomatis dialihkan ke provider cadangan.

  2. Cost control

    Tambahkan limit harian, limit per provider, limit per project, dan notifikasi jika token melonjak.

  3. Routing rule

    Buat aturan routing berdasarkan kebutuhan. Contoh: request coding diarahkan ke model kuat, chat ringan ke model hemat, dan request media ke provider media.

  4. Request replay

    Dari log request, sediakan tombol untuk menjalankan ulang request yang sama. Ini akan sangat membantu saat debugging prompt atau payload API.

  5. Dashboard per client

    Pisahkan analytics berdasarkan client seperti OpenCode, custom app, CLI tool, atau project tertentu.

  6. Privacy filter

    Tambahkan filter sebelum request keluar ke provider. Contohnya menyamarkan API key, email, token rahasia, path file sensitif, atau data pribadi.

  7. Integrasi local model

    Hubungkan 9Router dengan local model seperti Ollama atau LM Studio, sehingga routing bisa mencampur provider cloud dan model lokal.

  8. Export analytics

    Sediakan export CSV atau JSON untuk audit penggunaan, laporan biaya, dan evaluasi performa model.

Kesimpulan

9Router sebaiknya diposisikan sebagai AI gateway pribadi. Nilai utamanya bukan hanya meneruskan request, tetapi mengatur routing, memantau penggunaan, mengontrol biaya, membantu debugging, dan menyatukan banyak provider AI dalam satu tempat.