2026'da AnythingLLM Nasıl Self-Host Edilir: Belgeler, Embedding ve Kalıcılık
AnythingLLM'i doğru portlar, kalıcı depolama, HTTPS, secret'lar, yedekler ve upgrade kontrolleriyle self-host edin. Storage mount eksik olduğunda sorunu nasıl çözeceğinizi öğrenin.
AnythingLLM container'ı yeşil durumda görünürken kullanıcıların asıl ihtiyaç duyduğu iş bozulmuş olabilir. AnythingLLM'de bu gizli hata genellikle storage mount'ının eksik olması veya indexing sonrasında embedding modelinin değişmesidir. Bu rehberde “bir belgeyi ingest et, embedding işleminin tamamlanmasını bekle, yanıtı bu belgeye dayanan bir soru sor ve alıntılanan source chunk'ı doğrula” akışını acceptance test olarak ele alıyor ve deployment'ı bu sonuçtan geriye doğru tasarlıyoruz.
AnythingLLM'in stack'teki rolü nettir: elle pipeline oluşturmayı gerektirmeden document chat ve retrieval sağlamak. Bu nedenle production sorusu, port 3001'in bir kez yanıt verip vermediği değil; state, dependency'ler ve public address'in bir restart, update ve restore sonrasında uyumlu kalıp kalmadığıdır.
Portlar, process'ler ve private service'ler
Kullanışlı bir AnythingLLM diyagramında public route, private port 3001, state sınırı ve gereken tüm supporting requirement'lar gösterilir. Hangi okların credential taşıdığını, hangilerinin normal user traffic olduğunu işaretleyin. AnythingLLM'in network contract'ı bir embedding provider, bir LLM provider ve belgeler için yeterli storage'dan oluşur. Private endpoint'leri internal DNS üzerinde tutun, yalnızca gerekli outbound çağrılara izin verin ve AnythingLLM'e kapsamı sınırlandırılmış bir service credential verin.
Diyagramı tek bir gerçek işlemle doğrulayın: bir belgeyi ingest edin, embedding işleminin tamamlanmasını bekleyin, yanıtı bu belgeye dayanan bir soru sorun ve alıntılanan source chunk'ı doğrulayın. Olası yük document parsing, embedding throughput, vector-store size ve seçilen modele gönderilen context'ten gelir; tüm HTTP request'lerini eşit kabul etmek yerine bu akışı izleyin.
AnythingLLM recovery sürecini ölçülebilir hale getirin
Belgeler, vector index'ler, workspace'ler ve application settings gibi tüm durable artifact'lerin envanterini çıkarın. Bootstrap işleminden önce /app/server/storage mount'ını bağlayın, zararsız sample data yazın ve bu path'in gerçekten persistent olduğunu kanıtlamak için container'ı değiştirin. Yalnızca en büyük directory'yi değil, saklanan verilerin nasıl yorumlandığını değiştiren configuration'ı da dahil edin.
Retention politikası belirleyin, backup'ları host dışına kopyalayın ve temiz bir ortamda restore işlemi gerçekleştirin. AnythingLLM drill'i; belgeler, embedding'ler, workspace üyeliği ve provider settings birlikte geri yüklendiğinde ve kanıta dayalı aynı soruya aynı yanıt verildiğinde tamamlanmış olur. Snapshot'lar planın bir parçasıysa her mekanizmanın neleri geri getirebileceğini belgelemek için PITR ve snapshot rehberini kullanın.
AnythingLLM trust boundary'sini seçin
İlk login sonrasında anonymous visitor, normal user ve administrator rollerinin neler yapabildiğini inceleyin. Kaçınılması gereken AnythingLLM hatası, workspace login'ini provider key'lerini izole etmenin yerine koymaktır. Amaçlanan policy; üyeleri workspace'lerle sınırlandırmak ve LLM, embedding ile vector-database credential'larını server'da tutmaktır.
JWT_SECRET'i uzun ve rastgele bir değer olarak üretin; bunu değiştirmek normalde session'ları veya token'ları geçersiz kılar. Bu nedenle işlemi encryption migration olarak adlandırmak yerine user impact'i planlayın. Dependency account'larını human account'larından ayrı tutun, mümkün olduğunda kullanılmayan egress'i engelleyin ve document parsing, embedding throughput, vector-store size ile seçilen modele gönderilen context'in etkilediği çalışmayı sınırlandırın.
Gerçek AnythingLLM verileri gelmeden önce nelerin geçmesi gerekir?
AnythingLLM için release record'ı “iyi görünüyor” gibi ifadeler değil, somut bilgiler içermelidir. Seçilen image digest'ini, configuration checksum'ini, public hostname'i ve şu işlem için timestamp içeren sonucu kaydedin: bir belgeyi ingest et, embedding işleminin tamamlanmasını bekle, yanıtı bu belgeye dayanan bir soru sor ve alıntılanan source chunk'ı doğrula. Bu kontrolün her deployment sonrasında çalıştırılabilmesi için non-production sample data kullanın.
İki lifecycle event'ini ayrı ayrı kanıtlayın. Container replacement normal çalışmayı korumalıdır; temiz bir recovery ise belgelerin, embedding'lerin, workspace üyeliğinin ve provider settings'in birlikte geri yüklendiğini ve kanıta dayalı aynı soruya aynı yanıtı verdiğini göstermelidir. Kontroller çalışırken document parsing'i, embedding throughput'u, vector-store size'ı ve seçilen modele gönderilen context'i ölçün; sonucu bu version için beklenen envelope olarak saklayın.
Reddedilen veya geçersiz bir durumu da test edin: test identity'sinin bir embedding provider'a, LLM provider'a ve belgeler için yeterli storage'a erişimini geçici olarak engelleyin. AnythingLLM anlaşılır şekilde hata vermeli ve sağlıklı state'in üzerine yazmamalıdır. Geçerli durumu geri yükleyin, sample'ı yeniden çalıştırın ve ilgili redacted log'ları ekleyin. Bu artifact'ler, gelecekteki rollback kararı için somut kanıt sağlar.
Değiştirilebilir bir AnythingLLM container'ı oluşturun
Platformun ileride yöneteceği unsurları ortaya çıkardığında minimal bir command kullanışlıdır.
docker run -d \
--name anythingllm \
--restart unless-stopped \
-p 127.0.0.1:3001:3001 \
-v anythingllm-data:/app/server/storage \
-e JWT_SECRET=replace-with-a-long-random-value \
mintplexlabs/anythingllm:latest
Burada port 3001 host üzerinde private kalır ve gereken her path açıkça belirtilir. Bir embedding provider, LLM provider ve belgeler için yeterli storage'a ait gözden geçirilmiş connection settings'leri ekleyin; private service'ler için private name'ler kullanın. Hem log'larla hem de application-specific proof ile startup'ı doğrulayın: bir belgeyi ingest edin, embedding işleminin tamamlanmasını bekleyin, yanıtı bu belgeye dayanan bir soru sorun ve alıntılanan source chunk'ı doğrulayın. Doğruladıktan sonra image version'ını sabitleyin; böylece rutin bir replacement davranışı fark edilmeden değiştirmez.
AnythingLLM'i server dışından test edin
AnythingLLM için geçici ve kalıcı public origin'leri birbirinden ayırın. Bunun yerine browser ve API erişimi için external HTTPS origin'i kullanın, seçilen DNS name'i platform route'una yönlendirin ve yalnızca port 3001'e proxy uygulayın.
Bu işlemi host dışından gerçekleştirin: bir belgeyi ingest edin, embedding işleminin tamamlanmasını bekleyin, yanıtı bu belgeye dayanan bir soru sorun ve alıntılanan source chunk'ı doğrulayın. Ingress başarısız olursa 502 troubleshooting rehberi port ve listener hatalarını ele alır. AnythingLLM request'i alıyor ancak storage mount eksikse veya indexing sonrasında embedding modeli değişmişse kanıt artık proxy'nin ötesindeki bir noktayı gösterir.
AnythingLLM için failure drill'leri
Dashboard'ları document parsing, embedding throughput, vector-store size ve seçilen modele gönderilen context etrafında oluşturun. Bu workload context'i olmadan hazırlanan bir CPU grafiği AnythingLLM'in neden yavaş olduğunu açıklayamaz. Zararsız test data kullanarak bir belgeyi ingest etmeyi, embedding işleminin tamamlanmasını beklemeyi, yanıtı bu belgeye dayanan bir soru sormayı ve alıntılanan source chunk'ı doğrulamayı deneyen synthetic veya scheduled bir check ekleyin.
Upgrade öncesinde application-specific şu riski hesaba katın: embedding modelinin değiştirilmesi re-indexing gerektirebilir; application release'leri ise workspace ve vector metadata üzerinde migration gerçekleştirebilir. Yakın tarihli bir backup'ı isolated bir deployment'a restore edin, migration'ları orada çalıştırın ve davranışı karşılaştırın. Storage mount eksikse veya indexing sonrasında embedding modeli değişmişse ilgisiz ayarlara dokunmadan önce ilgili boundary'yi — public origin, storage veya dependency — inceleyin.
Dockup AnythingLLM için neleri otomatikleştirmeli?
Dockup, AnythingLLM için route ve TLS certificate oluşturabilir, mount'ları koruyabilir, secret'ları iletebilir ve bir embedding provider'ı, LLM provider'ı ve belgeler için yeterli storage'ı private networking üzerinde konumlandırırken deployment'ı Dockup'a veya bağlı server'lara gerçekleştirebilir.
Release gate yine somut AnythingLLM transaction'ıdır: bir belgeyi ingest edin, embedding işleminin tamamlanmasını bekleyin, yanıtı bu belgeye dayanan bir soru sorun ve alıntılanan source chunk'ı doğrulayın. Restore koşulunu da doğrulayın — belgeler, embedding'ler, workspace üyeliği ve provider settings birlikte geri yüklenmeli ve kanıta dayalı aynı soruya aynı yanıtı vermelidir. Bu iki kontrol, deployment'ın çalışıp çalışmadığını ve kurtarılabilir olup olmadığını gösterir.
Sık sorulan sorular
AnythingLLM production deployment için neye ihtiyaç duyar?
AnythingLLM container'ını tek bir HTTPS origin üzerinden port 3001'e route edin. Supporting network requirement; bir embedding provider, bir LLM provider ve belgeler için yeterli storage'dır. Bir belgeyi ingest edemiyor, embedding işleminin tamamlanmasını bekleyemiyor, yanıtı bu belgeye dayanan bir soru soramıyor ve alıntılanan source chunk'ı doğrulayamıyorsanız AnythingLLM'i hazır kabul etmeyin.
Hangi AnythingLLM verileri backup'a dahil edilmelidir?
/app/server/storage path'ini persistent hale getirin ve belgeleri, vector index'leri, workspace'leri ve application settings'i aynı recovery manifest'ine dahil edin. Temiz bir AnythingLLM restore işlemi yalnızca belgeler, embedding'ler, workspace üyeliği ve provider settings birlikte geri yüklendiğinde ve kanıta dayalı aynı soruya aynı yanıt verildiğinde başarılı sayılır.
Reverse proxy arkasındaki AnythingLLM için HTTPS gerekir mi?
Public AnythingLLM origin'i için HTTPS kullanın ve port 3001'i internal route üzerinde tutun. AnythingLLM setting'ini doğru uygulayın: browser ve API erişimi için external HTTPS origin'i kullanın. AnythingLLM için HTTPS, credentials veya user content'in aktarım sırasında korunmasını sağlar ve origin'e duyarlı client davranışını tutarlı hale getirir.
AnythingLLM upgrade'i nasıl test edilmelidir?
Mevcut AnythingLLM state'ini isolated bir deployment'a restore edin, aday version'ı uygulayın ve acceptance transaction'ını tekrarlayın. Embedding modelinin değiştirilmesi re-indexing gerektirebileceği, application release'lerinin ise workspace ve vector metadata üzerinde migration gerçekleştirebileceği için özellikle bu noktalara dikkat edin. Data migration ve rollback boundary'leri anlaşılana kadar önceki AnythingLLM image'ını saklayın.
