Rakazo Self-Hosting: Kendi AI Botunuzu VPS Üzerinde Kurun
Node 22, pnpm, Postgres ve Graphile Worker kullanarak Rakazo kurulumunu yapın. Docker Compose yapılandırması, sandbox sağlayıcı seçimi ve VPS kaynak yönetimi hakkında detaylar.
Rakazo self-hosting ile aslında neler çalıştırılır
Rakazo self-hosting, tek bir Linux sunucusu üzerinde beş bileşenin çalıştırılması anlamına gelir: PostgreSQL, bir Graphile Worker süreci, API, web uygulaması ve aktif olan her bot için bir adet sandbox container. Rakazo, elie222 tarafından Apache 2.0 lisansı altında yayımlanan, Grok Bot'un açık kaynaklı bir alternatifidir. Her bot kendi iş parçacığına (thread), kendi bilgisayar kaynağına, kendi belleğine ve kendi geçmişine sahiptir; ayrıca eşler veya kısa ömürlü alt temsilciler (subagent) oluşturabilir.
Bu son kısım, uygulamanın neden masaüstü bilgisayarda değil de bir VPS (sanal özel sunucu) üzerinde çalıştırılması gerektiğini açıklar. Bellek tutan ve zamanlanmış işler yürüten bir botun, siz uyurken de erişilebilir olması gerekir. Uyku moduna geçen bir dizüstü bilgisayar, kuyruğu düşürür.
Rakazo, Ağustos 2026 itibarıyla erken beta aşamasındadır; bu nedenle kurulumu tamamlanmış bir ürün olarak değil, üzerinde çalışılan bir yapı olarak değerlendirin. Yığın tamamen TypeScript tabanlıdır: web uygulaması için React 19 ve Vite, API için Hono, Prisma ile Postgres, hesaplar için Better Auth ve arka plan işleri için Graphile Worker kullanılır. Graphile Worker, kuyruğunu Postgres içinde saklar; bu sayede Redis veya ikinci bir veri deposu çalıştırmanıza gerek kalmaz. .env.example, WAKEUP_DRIVER=graphile değerini ayarlar; bu da uyanan bir botun Postgres destekli bir iş olduğu anlamına gelir. Postgres'i durdurduğunuzda, zamanlanmış tüm bot eylemleri de onunla birlikte durur. Başkasının ürününü çalıştırmak yerine bir temsilciyi parçalardan birleştirmeyi tercih ederseniz, kendi temsilcinizi bileşenlerden oluşturma diğer seçenektir.
1 GB planın neden yetersiz kalacağı
Süreçleri sayın. Postgres bir süreçtir. API bir Node sürecidir. Worker ikinci, web uygulaması ise üçüncü süreçtir. Sandbox yöneticisi dördüncü süreçtir. Ardından, çalışan her bot; grafiksel bir Linux masaüstü ve tarayıcı içeren bir container çalıştırır.
Projenin kendi self-host dokümantasyonu dürüst bir rakam verir: E2B bot masaüstlerini yönettiğinde API, worker ve Postgres için 2 vCPU ve 4 GB RAM'li bir makine yeterlidir. Bu rakam, ağır yükün başka bir yerde barındırıldığı kontrol düzlemi içindir. SANDBOX_PROVIDER=docker ayarını yaptığınızda bu masaüstleri sizin VPS'nize taşınır; dolayısıyla 4 GB artık hedef değil, alt sınır haline gelir. Birden fazla botu aktif tutmayı planlıyorsanız 8 GB ile başlayın ve bir bot çalışırken docker stats ile gerçek tüketimi ölçün. Bellek kullanımını artıran asıl unsur sandbox içindeki tarayıcıdır, bu yüzden teknik özellikler tablosu size gerçek durumu söylemeyecektir. Ajan çalışmaları için bir sunucuyu boyutlandırmanın genel yöntemi konusunda, bir ajan VPS'sinin gerçekte ne kadar RAM ve CPU'ya ihtiyaç duyduğu başlıklı yazı ölçüm sürecini detaylıca anlatır.
Bir ayar, durumun daha da kötüleşmesini engeller. .env.example, SANDBOX_IDLE_MS=600000 değerini, belirtilen milisaniye kadar boşta kalındığında E2B bilgisayarlarını duraklatacağı veya Docker tabanlı olanları kapatacağı açıklamasıyla sunar. On dakika boşta kalma süresinden sonra bilgisayar kaldırılır. Kabul edilen minimum değer 30000'dir. Bu ayar olmazsa, açtığınız her bot sonsuza kadar bellek tutmaya devam eder.
Disk kapasitesi de önemlidir. Sandbox imajı, Node modülleri ve Postgres birimi aynı diski paylaştığı için 40 GB makul bir başlangıç noktasıdır.
Klonlamadan önce bir sürümü sabitleyin
Rakazo hızlı ilerlemektedir ve main bir sürüm (release) değildir. 16 Ağustos 2026 itibarıyla depo, 13 Ağustos 2026 tarihinde yayınlanmış ve ön sürüm (prerelease) olarak işaretlenmiş tam olarak bir adet v0.1.0-beta etiketine sahiptir.
git clone https://github.com/elie222/rakazo.git
cd rakazo
git checkout 53b119a68d9ef843d23aa3b7e3719b6be7b51fdb
git log -1 --format='%H %ci'Söz konusu commit, v0.1.0-beta öğesinin işaret ettiği commit'tir. Branch veya etiket yerine commit değerini sabitleyin. Bir branch, bir sonraki git pull işleminde değişebilir; etiket ise bir geliştiricinin yerini değiştirebileceği hareketli bir etikettir. Bu nedenle her ikisi de geri dönebileceğiniz bir ağacı tanımlamaz. Bir commit tanımlayıcısı değiştirilemez. Kendi commit tanımlayıcınızı diğer sunucu bilgilerinizin yanına not edin; çünkü bir yükseltme işlemi sistemi bozduğunda en hızlı çözüm git checkout <old commit> ve yeniden oluşturmadır. Bu yöntem ise yalnızca hangi commit'in çalıştığını bildiğiniz durumlarda işe yarar.
Gereksinimler: Node 22, pnpm 9 ve Docker
node -v
pnpm -v
docker --versionpackage.json, "engines": { "node": ">=22" } ve "packageManager": "pnpm@9.15.0" sürümlerini gerektirir, bu nedenle node -v komutu v22 veya daha yüksek bir sürüm çıktısı vermelidir. Ubuntu arşivindeki Node paketi genellikle daha eski sürümlere sahiptir; bu yüzden kurulumu NodeSource veya nvm üzerinden yapın. pnpm, corepack aracılığıyla Node ile birlikte gelir:
corepack enable
corepack prepare pnpm@9.15.0 --activateDocker Engine ve compose eklentisi geri kalan gereksinimleri karşılar; ayrıca kullanıcınızın daemon erişimine sahip olması gerekir. Eğer docker ps komutu permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock çıktısını veriyorsa, kullanıcınızı docker grubuna ekleyin ve yeni bir oturum açın. Bunun ne anlama geldiğini önceden bilin: docker grubuna üyelik, makinede root yetkisine eşdeğerdir; çünkü bu gruptaki herkes, ana makine dosya sistemini bağlayan bir container başlatabilir.
.env dosyasını yapılandırın ve ardından Postgres'i başlatın
cp .env.example .env
chmod 600 .envHerhangi bir bileşen ağa açılmadan önce iki değerin değiştirilmesi gerekir. .env.example, BETTER_AUTH_SECRET=replace-with-32-plus-character-secret ve ENCRYPTION_KEY=replace-with-64-char-hex-or-passphrase değerlerini içerir. Rakazo, geliştirme ortamı dışındaki bu yer tutucu değerleri reddeder; bu nedenle eksik yapılandırılmış bir dağıtım, depoda yayınlanan bir gizli anahtar üzerinde çalışmak yerine hata vererek durur.
openssl rand -base64 48
openssl rand -hex 32Ardından veritabanını tek başına ayağa kaldırın ve migrasyonları çalıştırın.
docker compose --env-file .env -f infra/compose/docker-compose.yml up postgres -d
pnpm install
pnpm db:generate
pnpm db:migrate
pnpm sandbox:buildpnpm sandbox:build, package.json içerisinde docker build -t rakazo/computer:local infra/sandboxes/computer olarak tanımlanan bot bilgisayar imajını oluşturur. Bu grafiksel bir imaj olduğundan, ilk oluşturma işlemi çok fazla veri çeker ve zaman alır. İmajın yüklendiğini, tek bir satır çıktı vermesi gereken docker image ls rakazo/computer komutu ile doğrulayın.
Compose dosyası, Postgres'i yalnızca loopback üzerinden erişilebilir olan 127.0.0.1:5433:5432 adresinde yayınlar. Bu şekilde bırakın. Geliştirme kimlik bilgileri rakazo:rakazo şeklindedir ve depoda yer almaktadır; internetten erişilebilen ve yayınlanmış bir parolaya sahip bir Postgres portu, tarayıcılar tarafından saatler içinde bulunur. Üretim ortamı compose dosyası bunun yerine POSTGRES_PASSWORD değerini okur, bu yüzden o aşamaya geldiğinizde bu değeri rastgele bir karakter dizisi ile değiştirin.
İlk çalıştırma
pnpm devBu komut dört bileşeni başlatır: 3100 numaralı portta API, Graphile Worker, 5173 numaralı portta Vite web uygulaması ve 7091 numaralı portta sandbox denetleyicisi. Uygulama http://127.0.0.1:5173 adresindedir ve bir oturum açma sayfası ile karşılaşmanız gerekir.
Bir VPS üzerinde çalışırken makinenin başında olmadığınız için 5173 numaralı portu dış dünyaya açmamalısınız. Bunun yerine portları kendi makinenizden SSH (secure shell) üzerinden yönlendirin.
ssh -L 5173:127.0.0.1:5173 -L 3100:127.0.0.1:3100 you@your-serverBu işlemi gerçekleştirmenin iki yolu arasındaki farka dikkat edin. pnpm dev, Vite'ı yerel olarak bağlı şekilde ana makinede çalıştırır. Compose dosyasındaki web servisi ise 5173:5173 portunu tüm arayüzlerde yayınlar. Tam geliştirme compose yığınını herkese açık bir VPS üzerinde ayağa kaldırırsanız uygulama dış dünyaya açık hale gelir; bu nedenle çalışır durumda bırakacağınız her şey için üretim dosyasını ve onun reverse proxy yapılandırmasını kullanın.
Sunucuda hangi sandbox sağlayıcısı güvenlidir?
Doğru yapılandırılması gereken tek ayar budur. .env içindeki SANDBOX_PROVIDER dört farklı değer alır.
dockervarsayılan değerdir. Her bot, makinenizdepnpm sandbox:buildtarafından oluşturulan imajdan türetilen kendi konteynerine sahip olur. En hızlı self-hosted kurulumdur.e2b, bot bilgisayarlarını E2B üzerinde çalıştırır veE2B_API_KEYgerektirir. Proje, bot bilgisayarlarını API ve veritabanınızın çalıştığı ana makineden ayrı tuttuğu için bunu halka açık veya çok kullanıcılı dağıtımlar için önerir.desktop, bot komutlarını doğrudan API ve worker ana makinesi üzerinde çalıştırır. Depo talimatları bu konuda nettir: halka açık veya paylaşımlı bir sunucuda kullanmayın.fake, testler için kullanılan bir süreç içi emülatördür. Bir çalışma zamanı (runtime) değildir.
Masaüstü uyarısını ciddiye alın. Masaüstü modunda hiçbir izolasyon sınırı yoktur; bu nedenle bot, kabuk komutlarını API sürecini çalıştıran kullanıcı yetkileriyle yürütür. Bu, kullanıcının ev dizinine, SSH anahtarlarına, bulut kimlik bilgilerine ve .env değerlerine erişim anlamına gelir. Botun bir web sayfasında okuduğu metin, sunucunuzda bir komuta dönüşür. Sunucuda masaüstü modu kullanmak, botun kimlik bilgilerinizi ele geçirmesine yol açar. Bu modu yalnızca başında oturduğunuz bir makinede kullanın ya da hiç kullanmayın.
docker gerçek ancak kusursuz olmayan bir sınırdır. Her botun kendi konteyneri olduğu için bir bot diğerinin dosyalarını okuyamaz. Ancak bu konteynerleri oluşturan denetleyici (supervisor), /var/run/docker.sock dizinini bağlar ve ana makine Docker soketinin kontrolü, ana makinenin kontrolü demektir. Bu nedenle denetleyiciyi gizli tutun. .env.example, SANDBOX_SUPERVISOR_TOKEN değerini isteğe bağlı ayrı bir servis kimlik bilgisi olarak belgeler. Bu değer boş bırakıldığında varsayılan olarak BETTER_AUTH_SECRET olur; bu da gizli anahtarı yer tutucuda bırakmanın, konteyner oluşturan servisi GitHub üzerinde herkesin okuyabileceği bir metinle korumaya çalışmak anlamına geldiğini gösterir. Her iki değeri de ayarlayın. Burada mevcut olan en güçlü ayrım için e2b kullanın veya Rakazo'ya içinde başka hiçbir şey barındırmayan bir makine tahsis edin. kodlama ajanlarını tek kullanımlık bir VM'de çalıştırmanın arkasındaki mantık da aynıdır: bir ajanın hata yapması durumunda hayatta kalmanın en ucuz yolu, makinenin hiçbir değer taşımamasıdır.
Model API anahtarları nereye girilir?
Rakazo üzerinde yönetilen bir model faturalandırması bulunmamaktadır. Anahtarı kendiniz sağlamanız gerekir. .env.example, PI_DEFAULT_PROVIDER=openrouter değerini ayarlar, bu nedenle OPENROUTER_API_KEY genellikle anahtarın girildiği yerdir; sağlayıcı anahtarları da aynı ayar üzerinden çalışır.
Anahtarı .env içinde tutun ve commit ettiğiniz hiçbir dosyaya eklemeyin. Depodaki her iki compose komutu da --env-file .env değerini aktarır, böylece değerler git tarafından izlenen YAML dosyalarına yazılmadan doğrudan container'lara ulaşır. Ayrıca OPENROUTER_API_KEY değerini boş bırakıp kurulum sırasında uygulama içinden bir anahtar yapıştırabilirsiniz; bu, ENCRYPTION_KEY değerinin varsayılan yer tutucu yerine gerçek ve rastgele bir değer olması gerekliliğinin bir diğer nedenidir.
Bir bot kullanmaya başlamadan önce sağlayıcı tarafında anahtar için bir harcama limiti belirleyin. Döngüye giren bir bot, harcama yapan bir bottur ve anahtar bazlı limit, sizin sürekli izlemenize gerek kalmadan çalışan tek durdurma mekanizmasıdır. Bu anahtara özel bir isim verin, böylece gerektiğinde yalnızca bu anahtarı iptal edebilirsiniz.
Geliştirme modundan sürekli çalışacak bir yapıya geçiş
Depo, Postgres, API, worker, web uygulaması ve otomatik olarak TLS (aktarım katmanı güvenliği) sertifikaları alan Caddy'yi çalıştıran bir üretim compose dosyası ile gelir. Bot bilgisayarları için E2B gerektirir.
sudo DEPLOY_USER=deploy bash infra/compose/harden-host.sh
docker compose --env-file .env -f infra/compose/docker-compose.prod.yml up -d --buildharden-host.sh, SSH parola ile girişi devre dışı bırakır, SSH, HTTP ve HTTPS için UFW (uncomplicated firewall) kurallarını ayarlar, fail2ban'i etkinleştirir ve AppArmor profillerini uygular. Çalıştırmadan önce okuyun, çünkü giriş yönteminizi değiştirir. Çalışırken ikinci bir SSH oturumunu açık tutun.
Üretim .env, geliştirme ortamındakinden daha fazlasına ihtiyaç duyar. Self-host dokümanı bu minimum gereksinimleri listeler.
NODE_ENV=production
RAKAZO_HOST=app.example.com
BETTER_AUTH_URL=https://app.example.com
WEB_ORIGIN=https://app.example.com
API_URL=https://app.example.com
POSTGRES_PASSWORD=<random>
BETTER_AUTH_SECRET=<random>
ENCRYPTION_KEY=<random>
E2B_API_KEY=<your key>
OPENROUTER_API_KEY=<your key>
SANDBOX_PROVIDER=e2b
AGENT_RUNTIME=pi
DATA_DIR=/dataİlk up komutundan önce sunucuya bir A kaydı yönlendirin. Caddy, RAKAZO_HOST içindeki isim için bir sertifika talep eder; eğer isim bu sunucuya çözümlenmiyorsa veya 80 numaralı port dış dünyaya kapalıysa talep başarısız olur.
Ayrıca SIGNUP_ALLOWLIST=you@example.com ayarını yapın. SIGNUPS_ENABLED=true varsayılan değerdir; bu nedenle herkese açık bir isimdeki örnek, onu bulan herkesten kayıt kabul eder ve her yeni hesap bir bilgisayar alır. Önce izin listesi (allowlist) kullanın. İsterseniz daha sonra gevşetebilirsiniz.
Depodaki docs/self-host.md dosyasını üretim ayarları için temel kaynak olarak kabul edin, çünkü kodla birlikte değişir ve bu kılavuz değişmez. Compose işi yaptığı için standart kurallar geçerlidir ve VPS için Docker Compose temelleri, bir yığın aylarca çalışır durumda bırakıldığında neden --env-file ve adlandırılmış birimlerin (named volumes) daha önemli olduğunu açıklar.
Yedeklemeler
Postgres ve data/ dizini, örneğin tamamını oluşturur.
./scripts/backup.sh
./scripts/restore.sh backups/BACKUP_TIMESTAMPbackup.sh, Postgres veritabanını dump eder ve data/ dizinini arşivler. Bağımlı olduğunuz bir makine için, infra/compose/backup-prod.sh aracını depo tarafından sağlanan zamanlayıcı ile /usr/local/sbin/rakazo-backup olarak kurun; böylece rotasyon işlemi sizin müdahalenize gerek kalmadan gerçekleşir. Veritabanı ile aynı diskte duran bir yedek, yedek sayılmaz; bu nedenle yedeği sunucudan başka bir yere kopyalayın. Ardından, ihtiyaç duymadan önce yedek bir sunucuda geri yükleme işlemini bir kez test edin.
Neden başarısız olur ve ne görürsünüz
pnpm db:migrate veritabanına erişemiyor. Geçiş işlemi, 127.0.0.1:5433 adresindeki veritabanı sunucusuna erişemediğini bildirir. Ya Postgres container'ı çalışmıyordur ya da çalışıyordur ancak henüz hazır değildir. docker compose --env-file .env -f infra/compose/docker-compose.yml ps komutunu çalıştırın ve postgres servisinin sağlıklı (healthy) olduğunu bildirdiğinden emin olun; çünkü compose dosyası, her üç saniyede bir çalışan bir sağlık kontrolü içerir. Bir döngü içinde sürekli yeniden başlayan bir container, genellikle pgdata biriminin farklı kimlik bilgileriyle oluşturulduğu anlamına gelir. docker compose ... down -v bu durumu temizler ancak beraberinde verileri de siler.
Port zaten kullanımda. Postgres'i ayağa kaldırma işlemi, 5433 numaralı portu başka bir şey tuttuğunda bind: address already in use hatasıyla başarısız olur; bu genellikle durdurmayı unuttuğunuz eski bir Rakazo yığınıdır. sudo ss -lntp | grep 5433 süreci adlandırır.
Bot bilgisayar alamıyor. SANDBOX_PROVIDER=docker ile ve rakazo/computer:local imajı olmadan başlatılacak hiçbir şey yoktur. docker image ls rakazo/computer buna tek satırda yanıt verir ve pnpm sandbox:build sorunu düzeltir. Eğer supervisor Docker socket'ine erişemezse container oluşturamaz ve hata mesajı şu yolu belirtir: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock.
Uzun bir komut yarıda kesiliyor. .env.example, SANDBOX_COMMAND_TIMEOUT_MS=300000 değerini ayarlar; bu nedenle bir botun bilgisayarı içindeki tek bir komut beş dakika sonra kesilir. Sandbox'ın çöktüğünü varsaymak yerine, yavaş derlemeler için bu süreyi artırın.
pnpm install kafa karıştırıcı şekillerde bozuluyor. Başka bir şey yapmadan önce node -v dosyasını kontrol edin. Çalışma alanı >=22 değerini bildirir ve eski bir Node sürümü, sürümle ilgili bir mesaj vermek yerine bağımlılık kodunda başarısız olur.
Oturum açma yerelde çalışıyor ancak alan adı üzerinden çalışmıyor. BETTER_AUTH_URL, WEB_ORIGIN ve API_URL değerlerinin tamamı, şema dahil olmak üzere adres çubuğundakiyle aynı genel kaynağı (public origin) tutmalıdır. Asla kalıcı olmayan bir oturumun yaygın nedeni, bunlardan birinde bırakılmış eski bir http://127.0.0.1:5173 değeridir.
Sabitlenmiş bir checkout sürümünü güncelleme
Self-host dokümanındaki yükseltme yolu kısadır: yeni kaynak kodunu çekin, veritabanı migrasyonunu çalıştırın, API ve worker servislerini yeniden başlatın.
./scripts/backup.sh
git fetch --all
git checkout NEW_COMMIT_SHA
pnpm install
pnpm --filter @rakazo/db migrate
docker compose --env-file .env -f infra/compose/docker-compose.prod.yml up -d --buildÖncelikle yedek alın. Migrasyonlar ileriye dönük çalışır ve beta sürümlerinde güvenebileceğiniz bir geri dönüş yolu yoktur. Güncelleme yapmadan önce sabitlenmiş SHA değeriniz ile yeni SHA değeri arasındaki commit kayıtlarını inceleyin; çünkü bu kadar yeni bir proje, duyuru yapmaksızın ortam değişkenlerinin isimlerini değiştirebilir. Eksik bir değişken, servisin başlamasına ancak hemen ardından kapanmasına neden olur. Rakazo'nun çalıştırılacak doğru araç olup olmadığına henüz karar veriyorsanız, self-hosted yapay zeka ajanları özeti, bu kategoride başka nelerin bulunduğunu ve her birinin çalışır durumda tutulmasının maliyetini ele almaktadır.
FAQ
Rakazo'yu 1 GB RAM'e sahip bir VPS üzerinde çalıştırabilir miyim?
Hayır. Postgres, API, worker, sandbox supervisor ve web uygulaması aynı anda çalışır. Ayrıca SANDBOX_PROVIDER=docker ile her aktif bot, grafiksel bir masaüstü ve tarayıcı içeren bir container başlatır. Projenin kendi dokümantasyonu, bot masaüstlerini E2B barındırdığında bile API, worker ve Postgres için 2 vCPU ve 4 GB RAM'i yeterli görmektedir. Kontrol düzlemi için 4 GB RAM'i alt sınır olarak kabul edin; masaüstleri kendi sunucunuzda çalışacaksa bu miktarı daha da artırın.
Masaüstü sandbox sağlayıcısı bir sunucuda güvenli midir?
Hayır. desktop, bot komutlarını doğrudan API ve worker sunucusu üzerinde, o süreci çalıştıran kullanıcı yetkileriyle yürütür; bu da kullanıcının dosyalarına ve kimlik bilgilerine erişim sağlar. Depo, bu yöntemin halka açık veya paylaşımlı bir sunucuda kullanılmaması gerektiğini belirtir. Her bot için ayrı bir container kullanmak üzere docker veya birden fazla kişinin giriş yaptığı durumlar için e2b yöntemini tercih edin.
Rakazo'nun hangi sürümünü kurmalıyım?
16 Ağustos 2026 itibarıyla, 13 Ağustos 2026 tarihinde yayınlanmış ve ön sürüm (prerelease) olarak işaretlenmiş v0.1.0-beta etiketi bulunmaktadır. main dalını takip etmek yerine, işaret ettiği 53b119a68d9ef843d23aa3b7e3719b6be7b51fdb commit'ini kullanın. Bir dal sürekli değişebilir ve bir etiket yeniden yönlendirilebilir; bu nedenle ikisi de geri dönebileceğiniz sabit bir sürümü garanti etmez. Commit numarasını kaydedin; çünkü geri alma işlemi yalnızca hangi sürümün çalıştığını bildiğinizde mümkündür.
OpenRouter API anahtarımı nereye girmeliyim?
.env dosyası içerisinde OPENROUTER_API_KEY olarak tanımlayın ve asla commit ettiğiniz bir compose dosyasına yazmayın. Depodaki her iki compose komutu da --env-file .env değişkenini aktarır; böylece değer, takip edilen YAML dosyalarına yazılmadan container'lara ulaşır. İsterseniz bu alanı boş bırakıp anahtarı uygulama içindeki kurulum aşamasında da girebilirsiniz. Sağlayıcı tarafında bir harcama limiti belirleyin; çünkü döngüye giren bir bot, siz durdurana kadar modeli çağırmaya devam edecektir.
Bir alan adına ve TLS sertifikasına ihtiyacım var mı?
İlk test aşamasından sonra evet. Üretim ortamı için hazırlanan compose dosyası Caddy'yi çalıştırır ve sertifikaları otomatik olarak alır. Ayrıca RAKAZO_HOST, BETTER_AUTH_URL, WEB_ORIGIN ve API_URL bileşenlerinin tamamı aynı genel HTTPS kaynağını kullanmalıdır. İlk inceleme için alan adını atlayabilirsiniz: pnpm dev komutunu çalıştırın ve 5173 numaralı portu dışarı açmak yerine SSH üzerinden yönlendirin.