Jan Server, Jan projesinin kendi sunucunuzda barındırılabilen yarısıdır: OpenAI uyumlu bir API sunan Go mikroservisleri kümesi; önünde MCP araç entegrasyonu, Keycloak kimlik doğrulaması ve bir Kong ağ geçidi vardır. Tek bir konteyner değildir ve kurulum da bunu yansıtır.
İyi haber şu ki proje, yapılandırmayı sizin yerinize yazan bir kurulum sihirbazı sunuyor. Sihirbaz sırasında verdiğiniz asıl karar, çıkarımın nerede çalışacağıdır.
Başlamadan önce
- En az 8 GB RAM olan bir VPS — projenin belirttiği asgari; tüm servis kümesi için 12 GB öneriliyor
- Temiz bir Linux kurulumu (Ubuntu 24.04 LTS makul bir varsayılandır)
- Docker Engine ve Docker Compose v2
makevegit- TLS istiyorsanız bir alan adı — test dışındaki her kullanım için isteyeceksiniz
Ucuz VPS planlarının çoğu 4 GB’dir ve yetmez. Eşiği geçenler şunlar:
| Sağlayıcı | Plan | vCPU / RAM / Disk | Fiyat | Link |
|---|---|---|---|---|
| Contabo | Cloud VPS 4 | 4 / 8 GB / 100 GB | KDV hariç 5.50 EUR/ay | Contabo |
| Hetzner Cloud | CX33 | 4 / 8 GB / 80 GB NVMe | KDV hariç 8.49 EUR/ay | Hetzner Cloud |
| DigitalOcean | 8 GB droplet kademesi | 8 GB | güncel fiyata bakın | DigitalOcean |
| Vultr | 8 GB örnek kademesi | 8 GB | güncel fiyata bakın | Vultr |
| Linode | 8 GB paylaşımlı kademe | 8 GB | güncel fiyata bakın | Linode |
Bu planların daha ayrıntılı dökümü için VPS karşılaştırmamıza bakın.
1. Adım: Bağlanın ve bağımlılıkları kurun
ssh kullanici@sunucu-ip-adresiniz
sudo apt update && sudo apt upgrade -y
sudo apt install -y docker.io docker-compose-v2 make git
sudo systemctl enable --now docker
Elinizdekinin Compose v2 olduğunu doğrulayın; çünkü Jan Server’ın compose dosyası, v1’in anlamadığı include: anahtarını kullanır:
docker compose version
2. Adım: Depoyu klonlayın
Kendi kendine barındırılan çoğu uygulamanın aksine burada kendi docker-compose.yml dosyanızı yazmazsınız. Deponun compose dosyası; altyapı, API servisleri, MCP araçları, web uygulaması ve çıkarım için parçaları içeri alır.
git clone https://github.com/janhq/server.git
cd server
3. Adım: Kurulum sihirbazını çalıştırın
make quickstart
Sihirbaz kök dizine tek bir .env yazar ve ardından Compose’u başlatır. Üç şey sorar:
- LLM sağlayıcısı — model indiren ve GPU bekleyen yerel vLLM, ya da ikisine de gerek duymayan uzak OpenAI uyumlu bir uç nokta. Standart bir VPS’te uzak uç noktayı seçin.
- MCP arama sağlayıcısı — Serper bir API anahtarı ister, SearXNG anahtarsız olarak yerelde çalışır; aramayı tamamen kapatıp MCP araç servisini yine de tutabilirsiniz.
- Media API — yüklemeler için açın veya en küçük çalışma zamanı için kapalı bırakın.
Sihirbazı etkileşimli çalıştıramıyorsanız şablonu kopyalayıp doldurun:
cp .env.template .env
nano .env
make setup
make setup; bağımlılıkları denetler, dizinleri oluşturur ve hiçbir şeyi başlatmadan temel imajları indirir.
4. Adım: Yığını başlatın
make up-full
Konteynerler oturduğunda elinizde şunlar olur:
| Servis | Port | Görevi |
|---|---|---|
| API Ağ Geçidi (Kong) | 8000 | Her şeyin giriş noktası |
| LLM API | 8080 | OpenAI uyumlu sohbet tamamlamaları |
| Response API | 8082 | Çok adımlı araç düzenlemesi |
| Media API | 8285 | Yüklemeler ve medya kimlikleri |
| MCP Araçları | 8091 | Arama, sayfa kazıma, kod çalıştırma |
| Web sohbet arayüzü | 3001 | Tarayıcı istemcisi |
| Keycloak | 8085 | Kimlik doğrulama konsolu |
API dokümantasyonu http://sunucu-ip-adresiniz:8000/api/swagger/index.html adresinde sunulur.
5. Adım: Dışarı açmadan önce güvene alın
Bu, atlanmaması gereken adımdır. Herkese açık bir sunucuda iki varsayılan güvenli değildir:
- Keycloak konsolu
admin/adminile gelir. 8085 numaralı porttan hemen değiştirin. Kong’un doğruladığı token’ları Keycloak ürettiği için bu tek kimlik bilgisi API yüzeyinin tamamını korur. - Dışarıdan yalnızca 8000 numaralı porta erişilebilmelidir. JWT ve API anahtarı denetimlerini Kong uygular; arkasındaki servis portları uygulamaz. Geri kalanını localhost’a bağlayın veya güvenlik duvarında kapatın.
sudo ufw allow OpenSSH
sudo ufw allow 443/tcp
sudo ufw enable
Ardından TLS’i Caddy, Traefik veya Nginx ile sonlandırıp 8000 numaralı porta yönlendirin. Kimlik doğrulaması olmayan bir LLM uç noktasını herkese açık internette bırakırsanız, genellikle günler içinde bulunur ve başkası tarafından kullanılır.
Çıkarımı yerelde çalıştırmak
Yerel vLLM’yi seçtiyseniz çıkarım parçası iki profil tanımlar. GPU profili, varsayılan model janhq/Jan-v1-4B ile vllm/vllm-openai:v0.11.2 imajını çalıştırır ve bir NVIDIA aygıtı ayırır; dolayısıyla tipik bir VPS’te başlamaz. CPU profili GPU olmadan çalışır ve test için gerçekten kullanışlıdır, ancak paylaşımlı vCPU’larda token üretimi kullanıcıların önüne koymak istemeyeceğiniz kadar yavaştır.
GPU kapasitesini kiralayıp Jan Server’ı uzak uç nokta olarak oraya yönlendirmek, istemler arasında boş duran bir GPU sunucusundan genellikle daha ucuza gelir.
Günlük işletim
Yeni bir sürüme geçmek için:
git pull
docker compose pull
make up-full
Postgres birimini ve kök dizindeki .env dosyanızı yedekleyin. .env, sihirbazın ürettiği gizli değerleri taşır; veri tabanını o dosya olmadan geri yüklerseniz elinizde çözemediğiniz oturumlar kalır.
Bir servisin ne yaptığını docker compose logs -f llm-api ile, ilgilendiğiniz servisin adını yazarak görebilirsiniz.
Sık karşılaşılan sorunlar
| Belirti | Nedeni |
|---|---|
include geçerli bir compose anahtarı değil | Docker Compose v1 kurulu; v2 gerekiyor |
| Konteynerler açılış sırasında sonlandırılıyor | 8 GB RAM’in altında yığın OOM ile öldürülüyor |
| Her API çağrısı 401 dönüyor | İstekler 8000’deki Kong yerine doğrudan bir servis portuna gidiyor |
| vLLM konteyneri hiçbir zaman sağlıklı duruma gelmiyor | NVIDIA aygıtı olmayan bir sunucuda GPU profili etkin |
Jan Server bir VPS’ten tipik bir kendi kendine barındırılan uygulamadan fazlasını ister; bunun başlıca sebebi kendi ağ geçidini, kimlik sağlayıcısını ve veri tabanını beraberinde getirmesi, sizde hazır olduklarını varsaymamasıdır. 8 GB’a göre boyutlandırın, Kong’u TLS’in arkasına koyun ve her şeyden önce Keycloak parolasını değiştirin.
Frequently asked questions
Jan Server'ı bir VPS'te barındırmak için GPU gerekir mi?
Kurulum sihirbazı LLM sağlayıcınızı sorduğunda uzak ve OpenAI uyumlu bir uç nokta seçerseniz gerekmez. VPS o zaman yalnızca API, düzenleme ve kimlik doğrulama servislerini çalıştırır. Yerel vLLM seçeneğinin NVIDIA kartı bekleyen bir GPU profili ve kartsız çalışan ama çok daha yavaş bir CPU profili vardır.
Keycloak konsolu neden kullanıcı adı ve parola olarak admin kabul ediyor?
Compose kurulumunun getirdiği varsayılan kimlik bilgisi budur; dizüstü bilgisayarda sorun değildir, ancak herkese açık bir sunucuda kabul edilemez. İnternete herhangi bir port açmadan önce değiştirin, çünkü Kong ağ geçidinin arkasındaki her API yolunu koruyan şey Keycloak realm'idir.
Ters proxy'min arkasına hangi portu koymalıyım?
Kong API ağ geçidinin çalıştığı 8000 numaralı portu. Belgelenmiş giriş noktası odur ve tek tek servislerin önünde JWT ile API anahtarı denetimlerini uygular. Servis portlarını doğrudan yayımlamak, çağrı yapanların ağ geçidini ve kimlik doğrulamasını tamamen atlamasına izin verirdi.