İçeriğe atla
openplate

Uygulama

Ortam değişkenleri

Uygulamanın, çekirdek sunucunun ve çıkarım servisinin okuduğu her değişken, varsayılan değeri ve önyüklemeyi durduran ayarlar

Bu sayfa, İngilizce belgeden makine çevirisiyle çevrildi.

Üç openplate konteynerinin her ayarı bir ortam değişkenidir. Bu sayfa uygulama, çekirdek sunucu (openplate-core) ve çıkarım servisi için bunların tümünü listeler. Çoğu isteğe bağlıdır. Birini ayarlanmamış bıraktığında, satırındaki varsayılan değer geçerli olur.

Bazı ayarlar başlatmayı kasten durdurur. Hizmetin kullanamadığı bir değer ya da bir ikilinin tek tarafı kapsayıcının kapanmasına neden olur. Çıkış iletisi değişkenin adını belirtir. Kapsayıcı bir tahminle başlamaz. Başlatmayı durduran ayarlar bu tür tüm kuralları listeler.

Bir değişkeni ayarlama

  • Docker Compose. İlgili satırı compose dosyasının yanındaki .env dosyasına ekle, örneğin LOG_LEVEL=debug. Ardından docker compose -f <your file> up -d komutunu tekrar çalıştır. Dağıtılan her compose dosyası, hizmetinin okuduğu her değişkeni kapsayıcıya aktarır. docker compose restart, .env dosyasını tekrar okumaz.
  • Quadlet. İlgili satırı birimin yanındaki <unit>.env dosyasına ekle, örneğin app.env, core.env veya inference.env. Kapsayıcının bu sayfadaki kendi adlarını kullan. Ardından birimi yeniden başlat, örneğin systemctl --user restart core.service. podman.md dosyaları açıklar.
  • Kapsayıcı olmadan. Uygulama ve çekirdek sunucunun her biri, çalıştıkları klasördeki bir .env dosyasını okur. Değişkeni kabukta veya systemd biriminde de ayarlayabilirsin. Docker olmadan, uygulamanın kurulumunu gösterir.

Varsayılan sütunu, değişken ayarlanmadığında hizmetin ne yaptığını belirtir. Bir compose dosyası kendi değerini aktarabilir, örneğin MODEL_PROFILE: lite. Compose dosyası bu değeri adın yanında gösterir.

Compose dosyalarının senin yerine doldurduğu adlar

Üç topoloji dosyası (compose.core.yml, compose.inference.yml ve compose.full.yml), bazı kapsayıcı değişkenlerini .env içindeki paylaşılan adlardan doldurur. Paylaşılan adı orada ayarla. Bu dosyalarda kapsayıcı değişkeninin tek başına hiçbir etkisi yoktur.

.env içindeDoldurulan
PUBLIC_APP_URLuygulamanın APP_URL değeri ve çekirdek sunucunun CLIENT_BASE_URL değeri
PUBLIC_SYNC_URLuygulamanın CORE_URL değeri ve çekirdek sunucunun SERVER_PUBLIC_URL değeri
PUBLIC_INFERENCE_URLuygulamanın DEFAULT_INFERENCE_BASE_URL değeri
INFERENCE_API_KEYuygulamanın DEFAULT_INFERENCE_API_KEY değeri ve çıkarım hizmetinin API_KEYS değeri
POSTGRES_USER, POSTGRES_PASSWORD, SYNC_DB_NAMEveritabanı ve çekirdek sunucunun DATABASE_URL değeri

Tek başına uygulama olan docker/compose.yml, kendi adı altında APP_URL değerini alır. Çekirdek sunucunun kendi hızlı başlangıç dosyası apps/core/docker/compose.yml şeklindedir. Kendi adları altında SERVER_PUBLIC_URL ve CLIENT_BASE_URL değerlerini alır. DATABASE_URL değerini POSTGRES_USER, POSTGRES_PASSWORD ve POSTGRES_DB değerlerinden oluşturur.

Uygulama

Uygulama kapsayıcısı, ghcr.io/lowcarbcheck/openplate. Hiçbir şey ayarlanmadan başlar. configuration.md kapsamlı özelliklerini ayrıntılı olarak açıklar.

Sunucu ve adresler

DeğişkenVarsayılanNe yaparDaha fazlası
NODE_ENVİmajda production, aksi halde developmentproduction derlenmiş uygulamayı sunar, APP_URL değerini zorunlu kılar ve 1 değerini TRUST_PROXY varsayılanı yapar. İmaj bunu kendisi ayarlar.
APP_URLhttp://localhost:3000, üretimde zorunludurİnsanların açtığı genel adres, örneğin https://openplate.example.com. Ön sayfa bunu paylaşım bağlantılarına yerleştirir. Sunucu üretim ortamında bu olmadan başlamaz.Caddy
PORT3000Sunucunun dinlediği bağlantı noktası.
HOSTayarlanmamış, her arayüzSunucunun dinlediği adres. Bir konteyner içinde ayarlanmamış olarak bırak. Konteyner olmadan, aynı makinedeki bir ters proxy için 127.0.0.1 değeri sunucuyu bu makinede tutar.Docker olmadan
TRUST_PROXYcanlı ortamda 1, aksi halde kapalıUygulamanın önünde kaç ters proxy olduğu: bir sayı, true, false veya loopback ya da 10.0.0.0/8 gibi bir Express ön ayarı veya adres aralığı. Siteler arası form gönderilerini engelleyen denetim, bir proxy arkasındayken doğru değere ihtiyaç duyar. Proxy yoksa 0 kullan.Uygulamanın tek başına kullanımı
CSP_CONNECT_EXTRAayarlanmamışBoşluklarla ayrılmış, Content-Security-Policy başlığının connect-src yönergesi için ek kaynaklar. Başka bir sunucudaki kendi yapay zeka uç noktan buna ihtiyaç duyar.Özel yapay zeka uç noktaları

Dil ve içerik

DeğişkenVarsayılanNe yaparDaha fazlası
DEFAULT_UI_LANGUAGEenZiyaretçinin bir dil seçmeden önce gördüğü dil: en, de, fr, it, es veya tr. Kişinin kendi seçimi her zaman geçerlidir. Başka herhangi bir değer önyüklemeyi durdurur.
NUTRIENT_REFERENCE_BASISdgeBesin Öğeleri ekranının aktardığı referans değerler: dge (Alman DGE), efsa (AB) veya us (NASEM). Başka herhangi bir değer önyüklemeyi durdurur.
CONTENT_DIRayarlanmamış, yasal sayfalar yokYasal sayfalar için salt okunur bağlanmış markdown dosyaları klasörü. Bir klasörü belirtmeyen değer önyüklemeyi durdurur.İçerik sayfaları

Eşitleme ve örnek türü

DeğişkenVarsayılanNe yaparDaha fazlası
CORE_URLayarlanmamış, eşitleme kapalıÇekirdek sunucunun bir tarayıcının eriştiği adresi. Kaynağı Content-Security-Policy içine girer. Yönetilen bir kurulumda uygulama sunucusu da her yiyecek aramasının hesabını kontrol etmek için bu adrese erişir. Hatalı biçimlendirilmiş bir değer önyüklemeyi durdurur.Eşitleme
SYNC_SERVER_URLayarlanmamışKullanım dışı. CORE_URL değişkeninin eski adı. Bir sürüm daha çalışmaya devam eder ve yalnızca bu ayarlandığında önyükleme sırasında tek bir uyarı günlüğe kaydedilir. İkisi de farklı adreslere ayarlanmışsa, bu sürüm için eski ad geçerli olur ve önyükleme her ikisini de belirten tek bir uyarı günlüğe kaydeder. Eski adı kaldıran sürümden önce eski satırı sil.Eşitleme
INSTANCE_MODEopenopen veya managed. Yönetilen bir kurulumda bir yönetici insanları davet eder ve çekirdek sunucu yapay zekayı sağlar. managed, CORE_URL gerektirir. Başka herhangi bir değer önyüklemeyi durdurur.Yönetilen örnekler

Örnek tarafından sağlanan yapay zeka

DeğişkenVarsayılanNe yaparDaha fazlası
DEFAULT_INFERENCE_BASE_URLayarlanmamışBu örneğin her ziyaretçiye sunduğu, bir tarayıcının erişebildiği OpenAI uyumlu bir uç nokta. Hatalı biçimlendirilmiş bir değer önyüklemeyi durdurur.Örnek tarafından sağlanan yapay zeka
DEFAULT_INFERENCE_API_KEYayarlanmamışBu uç noktanın anahtarı. Herkese açıktır: her ziyaretçinin tarayıcısı bunu alır.Örnek tarafından sağlanan yapay zeka
DEFAULT_INFERENCE_MODELopenplate-plate-1Bu uç noktaya gönderilen model adı.Örnek tarafından sağlanan yapay zeka

Gıda veri tabanı

DeğişkenVarsayılanNe yaparDaha fazlası
FOOD_DB_API_URLhttps://lowcarbcheck.orgSunucunun gıda adlarını aradığı LowCarbCheck gıda veri tabanı. Boş bir değer aramayı kapatır.Gıda veritabanı anahtarı
FOOD_DB_API_KEYayarlanmamış, anonim katmanLowCarbCheck anahtarın. Bunu yalnızca sunucu okur ve hiçbir zaman bir tarayıcıya ulaşmaz.Gıda veritabanı anahtarı
FOOD_DB_BACKFILLfalsetrue, kişilerin bir yapay zeka yanıtından kaydettiği gıdaları öneri olarak LowCarbCheck'e iletir. FOOD_DB_API_KEY gerektirir ve bu olmadan kapalı kalır. true veya false dışındaki herhangi bir değer önyüklemeyi durdurur.Yiyecek veritabanına öneriler
FOOD_DB_DAILY_CALL_LIMIT3200Bu sunucunun bir UTC gününde yapacağı en fazla LowCarbCheck çağrısı sayısı. Bu sınır aşıldığında besin aramaları gece yarısı UTC'ye kadar duraklar ve uygulama bunu belirtir. Varsayılan değer, ücretsiz bir anahtarın ayda 100.000 olan sınırını korur. Pozitif bir tam sayı dışındaki her şey önyüklemeyi durdurur.Gıda veritabanı anahtarı

Analitik, bülten ve güncellemeler

DeğişkenVarsayılanNe yaparDaha fazlası
MATOMO_URLayarlanmamış, analitik kapalıKendi çalıştırdığın bir Matomo kurulumu. MATOMO_SITE_ID ile birlikte ayarla.Analitik
MATOMO_SITE_IDayarlanmamışMatomo site kimliği, pozitif bir tam sayı. MATOMO_URL ile birlikte ayarla.Analitik
MATOMO_EVENT_LEVELproductÖrneğin ne kadar sayım yapacağı: pageviews, product veya research. Yukarıdaki ikisine ihtiyaç duyar.Bir düzeyin belirledikleri
NEWSLETTER_SUBSCRIBE_URLayarlanmamış, form yokSunucunun açılış sayfasındaki bülten formunu ilettiği yer. NEWSLETTER_TURNSTILE_SITE_KEY ile birlikte ayarla.Bülten kaydı
NEWSLETTER_TURNSTILE_SITE_KEYayarlanmamışBu formun Cloudflare Turnstile site anahtarı. Kayıt güvenlik doğrulaması değildir, bkz. Turnstile ile kayıt olma.Bülten kaydı
UPDATE_CHECKaçıkBunu off veya false olarak ayarlamak, sunucunun yeni sürümler için openplate.de/latest.json dosyasını çekmesini engeller. Ayrıca projenin günlük sorgu sayımını da durdurur.Sürüm denetimi

Günlük kaydı

DeğişkenVarsayılanNe yaparDaha fazlası
LOG_LEVELinfoSunucunun ne kadar günlük tutacağı, pino düzeyi olarak: debug, info, warn veya error.

Bir örneği kapatma

DeğişkenVarsayılanNe yaparDaha fazlası
MOVED_TO_URLayarlanmamışBu örneği kapatır ve kullanıcıları başka bir örneğe yönlendirir, örneğin https://app.openplate.de. Her sayfa isteği yeni adresi belirten bir sayfa sunar, telefonlarda yüklü service worker önbelleklerini temizler ve kendi kaydını siler, API ise 410 döndürür. Değer, APP_URL dışındaki bir ana bilgisayarda bulunan bir https:// adresi olmalıdır; başka herhangi bir şey önyüklemeyi durdurur.Kullanıcıları başka bir örneğe taşıma

Çekirdek sunucu (openplate-core)

Çekirdek sunucu konteyneri, ghcr.io/lowcarbcheck/openplate-core. İki değere ihtiyacı vardır: compose dosyalarının senin için doldurduğu DATABASE_URL ve SERVER_SECRET. Diğer her şey isteğe bağlıdır ve sen ayarlayana kadar kapalıdır. openplate-core'un README dosyası özellikleri açıklar.

Sunucu ve adresler

DeğişkenVarsayılanNe yaparDaha fazlası
NODE_ENVİmaj içinde productionE-posta ayarlandığında production, aşağıdaki her iki bağlantı adresinin de başka bir ana makinede https:// adresi olmasını gerektirir.E-posta için genel adresler gerekir
PORT3000Hizmetin dinlediği bağlantı noktası.
HOSTayarlanmamış, her arayüzHizmetin dinlediği adres. Bir kapsayıcı içinde ayarlanmamış olarak bırak. 127.0.0.1, geliştirme örneğini kendi makinesinde tutar.
TRUST_PROXYfalseÖnde kaç tane ters vekil sunucu bulunduğu: bir sayı, true veya false. Bir vekil sunucu arkasında yanlış değer verilirse, her istek vekil sunucudan geliyormuş gibi görünür. Bu durumda bir kişi herkesin sınırını tüketebilir.Önem taşıyan üç ayar
SERVER_PUBLIC_URLayarlanmamışBu hizmetin kendi genel adresi. Davet ve parola sıfırlama mektuplarındaki bağlantılara yazılır. CLIENT_BASE_URL ile birlikte ayarla.E-posta için genel adresler gerekir
CLIENT_BASE_URLayarlanmamışBu bağlantıların diğer yarısı olan openplate uygulamasının adresi.E-posta için genel adresler gerekir
INSTANCE_NAMEopenplate/health el sıkışması (instance.name) ve başlatma günlüğü için örnek adını belirler. Mektuplar bunu kullanmaz. En fazla 64 karakter.
INSTANCE_LANGUAGEenBir istek dil belirtmediğinde mektup dilini ayarlar. Kabul edilen değerler: en, de, fr, it, es veya tr. Başka herhangi bir değer başlatmayı durdurur.
NUTRIENT_REFERENCE_BASISdgeYeni bir örnek şu başvuru değerlerinden biriyle başlar: dge, efsa veya us. Bir yönetici daha sonra canlı ayarı yönetici API üzerinden değiştirebilir. Başka herhangi bir değer başlatmayı durdurur.
CONTENT_DIRayarlanmamışBildirim mektuplarının metnini içeren, salt okunur bağlanmış bir dizin. Uygulama, yasal sayfalarını bu dizinden okuyabilir. Hizmet, başlatma sırasında bunu hiçbir zaman denetlemez.Bildirim mektupları
LEGAL_DECLARATION_RECEIPTS_PER_DAY200Örneğin herhangi bir 24 saatlik süre içinde, tüm adreslerin toplamına göndereceği en fazla bildirim makbuzu sayısı. Bu sınırdan sonra da bildirim kaydedilmeye ve sana gönderilmeye devam eder, ancak makbuzu gönderilmez.Bildirim mektupları
LEGAL_DECLARATION_RECEIPTS_PER_NETWORK_PER_DAY10Tek bir gönderici ağı (bir IPv4 adresi veya bir IPv6 /64) için aynı sınır. Yeniden başlatma bu sayacı sıfırlar.Bildirim mektupları

Veritabanı

DeğişkenVarsayılanNe yaparDaha fazlası
DATABASE_URLyok, zorunludurPostgres bağlantı dizesi. Compose dosyaları bunu senin için oluşturur.
DATABASE_SSLfalsePostgres TLS gerektiriyorsa true olarak ayarla. true, false, 1 veya 0 kabul eder.
MIGRATIONS_DIRdrizzle/migrationsBu ayar, hizmetin başlatma sırasında veritabanı geçişlerini nerede bulacağını belirler. İmaj bunları orada tutar, bu yüzden ayarlanmamış olarak bırak.

Gizli anahtarlar

DeğişkenVarsayılanNe yaparDaha fazlası
SERVER_SECRETyok, zorunludurKök gizli anahtarı en az 32 karakter olmalıdır. Bunu openssl rand -hex 32 ile üret ve veritabanıyla birlikte yedekle. Bu gizli anahtarı değiştirmek, tüm hesapların erişimini kalıcı olarak engeller.Önem taşıyan üç ayar
ADMIN_TOKENayarlanmamışİşletmeci yönetici kimlik bilgisi en az 24 karakter olmalıdır. İlk hesabı oluşturmak için buna ihtiyacın olur. Belirteç ve yönetici hesabı olmadığında yönetici API 404 döndürür.İlk hesabı oluştur

Hesaplar ve kayıt

DeğişkenVarsayılanNe yaparDaha fazlası
OPEN_SIGNUPayarlanmamış, yalnızca davetiyelertrue, herkesin kendi adresiyle bir hesap talep etmesine izin verir. Bu işlem e-posta gerektirir. Sunucu yalnızca true değerini kabul eder. false dahil başka herhangi bir değer başlatmayı durdurur.Turnstile ile kayıt olma
TURNSTILE_SECRET_KEYayarlanmamış, captcha yokKayıt captchasını doğrulayan Cloudflare Turnstile gizli anahtarı. TURNSTILE_SITE_KEY ile birlikte ve yalnızca OPEN_SIGNUP=true ile ayarla.Turnstile ile kayıt olma
TURNSTILE_SITE_KEYayarlanmamışGenel Turnstile site anahtarı. /health bunu yayınlar, uygulama da captchayı bununla ekrana çizer.Turnstile ile kayıt olma

Davetler ve denemeler

DeğişkenVarsayılanNe yaparDaha fazlası
MEMBER_INVITE_DAILY_AI_LIMITayarlanmamış, üyeler davet edemezBir üye davet ettiğinde bir hesabın UTC günü başına aldığı yapay zeka isteği sayısı, 1 ile 10000 arası. MEMBER_INVITE_ALLOWANCE_DAYS ile birlikte ayarla.Üye davetleri
MEMBER_INVITE_ALLOWANCE_DAYSayarlanmamışBu kotanın kayıttan sonra kaç gün geçerli kalacağı.Üye davetleri
MEMBER_INVITE_LIFETIME_CAP5Bir üyenin toplamda gönderebileceği davet sayısı, 0 veya daha fazla. Bu, yukarıdaki ikiliyi veya MEMBER_INVITE_TRIAL=true gerektirir.Üye davetleri
MEMBER_INVITE_TRIALfalsetrue, bir üye davetinin günlük kota yerine aşağıdaki tarama denemesini vermesini sağlar. Denemeyi gerektirir ve yukarıdaki ikiliyle kullanılamaz.
TRIAL_SCANSayarlanmamış, deneme yokYeni bir hesabın aldığı ücretsiz yapay zeka taramaları, 1 ile 100 arası. TRIAL_DAILY_AI_LIMIT ile birlikte ayarla ve TRIAL_ADDRESS_PEPPER değerini de bunlarla belirle.
TRIAL_DAILY_AI_LIMITayarlanmamışDeneme boyunca UTC günü başına yapay zeka isteği sayısı, 1 ile 10000 arası.
TRIAL_DAYSayarlanmamış, bitiş tarihi yokDeneme ayrıca bu kadar gün sonraki gece yarısında biter, 1 ile 90 arası, hangisi önce gelirse. Deneme ikilisini gerektirir.
TRIAL_TIME_ZONEUTCBu gece yarısının Europe/Berlin gibi bir IANA adı biçimindeki saat dilimi. TRIAL_DAYS gerektirir. Bilinmeyen bir bölge önyüklemeyi durdurur.
TRIAL_ADDRESS_PEPPERayarlanmamışPosta kutusu başına tek bir denemeyi zorunlu kılan gizli anahtar. En az 32 karakter olmalıdır. Deneme ikilisiyle birlikte zorunludur. Bu değeri değiştirmek, hangi posta kutularının deneme aldığını unutturur.
TRIAL_HASH_RETENTION_DAYS365Silinen bir hesabın posta kutusu özetinin, silinme anından itibaren saklanacağı gün sayısı, 1 ile 3650 arası. Bu sürenin ardından saatlik bir tarama özeti siler ve aynı posta kutusu yeniden deneme hakkı alabilir. Tarama denemesi sunmayan bir kurulum hiçbir özet saklamaz.
AI_TRIAL_INSTANCE_DAILY_LIMITayarlanmamış, sınır yokTüm deneme hesaplarının birlikte UTC günü başına harcayabileceği toplam miktar. Denemeyi gerektirir.
AI_TRIAL_NETWORK_DAILY_LIMITAI_TRIAL_INSTANCE_DAILY_LIMIT değerinin onda biri, en az 1Tek bir ağdan (bir IPv6 /64 veya bir IPv4 adresi) gelen deneme isteklerinin, UTC günü başına deneme sınırından harcayabileceği miktar. AI_TRIAL_INSTANCE_DAILY_LIMIT olmadan devre dışıdır ve bu değerin üzerine çıkamaz. Tek bir IPv4 operatör NAT'ı arkasındaki kişiler bu miktarı paylaşır.
DEFAULT_FREE_DAILY_AI_LIMITayarlanmamış, kapalıKendine ait ücretsiz bir sınırı bulunmayan her hesabın aldığı UTC günü başına Yapay Zeka istekleri, 0 ile 10000 arası. Hiçbir zaman bitmez ve tarama sayısı yoktur. Tüketilen bir gün Retry-After ile 429 yanıtı verir. Tarama denemesinin yerini alır, bu yüzden deneme ikilisiyle birlikte ayarlanması açılışı durdurur. Hâlâ bir deneme hakkı olan hesap bu sınıra tabi olur.
DEFAULT_CAPABILITIESayarlanmamış, kontrol yokKendine ait bir yetenek listesi bulunmayan bir hesabın kullanabilecekleri: scan,recipes gibi virgülle ayrılmış etiketler ya da hiçbir şey için none. Ayarlanmamış veya boş olması, Yapay Zeka vekilinin hiçbir özelliği kontrol etmediği ve her isteğin geçtiği anlamına gelir. Hesabın sahip olmadığı bir özellik için yapılan istek 403 capability-required alır.
CAPABILITY_SCHEMA_MAPayarlanmamış, boşVirgülle ayrılmış schemaName:label ikilileri. Listelediğin yapılandırılmış çıktı şemasını isteyen bir istek, X-Openplate-Feature başlığı ne derse desin bu etikete ihtiyaç duyar.

E-posta

DeğişkenVarsayılanNe yaparDaha fazlası
SMTP_HOSTayarlanmamışŞema, port veya yol içermeyen SMTP sunucu adı veya adresi.SMTP
SMTP_PORT587465 ilk bayttan itibaren TLS kullanır. Bu makinedeki bir e-posta yakalayıcı hariç diğer tüm portlar STARTTLS ile yükseltilmelidir.SMTP
SMTP_USERayarlanmamışSMTP kullanıcı adı. SMTP_PASSWORD ile birlikte ayarla veya giriş gerektirmeyen bir sunucu için ikisini de boş bırak.SMTP
SMTP_PASSWORDayarlanmamışSMTP parolası.SMTP
SMTP_FROMayarlanmamışaddress veya Name <address> biçiminde gönderici. SMTP bunu gerektirir.SMTP
MAIL_API_URLayarlanmamışResend uyumlu bir HTTP e-posta API'si. MAIL_API_KEY, MAIL_API_FROM ve MAIL_OPERATOR_EMAIL ile birlikte ayarla.Bir HTTP e-posta API'si
MAIL_API_KEYayarlanmamışBearer belirteci olarak gönderilen e-posta API anahtarı.Bir HTTP e-posta API'si
MAIL_API_FROMayarlanmamışE-posta API'si için gönderici adresi.Bir HTTP e-posta API'si
MAIL_OPERATOR_EMAILayarlanmamışKendi adresin. Bir iptal veya para çekme işleminin kopyasını alır. Her iki aktarım yöntemi de bunu gerektirir.SMTP
NODE_EXTRA_CA_CERTSayarlanmamışKapsayıcı içinde, ek sertifika yetkililerini içeren bir PEM dosyasının yolu. Node.js bunu başlangıçta okur. Sertifikasını özel bir yetkilinin imzaladığı bir e-posta aktarıcısı için dosyayı bağla.Özel sertifika yetkilisine sahip bir geçiş sunucusu

Yapay zeka vekili ve sınırları

DeğişkenVarsayılanNe yaparDaha fazlası
UPSTREAM_BASE_URLayarlanmamış, yapay zeka yokSağlayıcının OpenAI uyumlu adresi, örneğin https://openrouter.ai/api/v1. Bunu UPSTREAM_API_KEY ile birlikte ayarla.Yönetilen örnekler
UPSTREAM_API_KEYayarlanmamışSağlayıcı anahtarı. Hiçbir zaman bir tarayıcıya ulaşmaz.Yönetilen örnekler
UPSTREAM_ZDRayarlanmamışYalnızca OpenRouter. true olarak ayarlanırsa vekil, OpenRouter'dan bir isteği yalnızca veri saklama süresi sıfır olan uç noktalara yönlendirmesini ister. Diğer tüm ana makineler bunu yoksayar. true, false veya boştan farklı bir değer açılışı durdurur.Yapay zeka vekil sunucusu
UPSTREAM_PROVIDER_ONLYayarlanmamışYalnızca OpenRouter. Sağlayıcı kısa adlarının virgülle ayrılmış bir listesi, örneğin google-vertex. İstek bunlardan birine gider ya da başarısız olur, asla başka bir sağlayıcıya geri dönmez. Diğer tüm ana makineler bunu yoksayar.Yapay zeka vekil sunucusu
UPSTREAM_TIMEOUT_MS120000Vekil sunucunun, sağlayıcının ilk yanıtı için ve ardından yanıt parçaları arasında milisaniye cinsinden beklediği süre.
AI_TIERS_FILEayarlanmamışHer istek türünün modelinin nereden geldiği. Ayarlanmadığında model AI_ADVERTISED_MODEL olur; yönlendirme ise tam olarak bu dosya var olmadan önceki gibi UPSTREAM_ZDR ve UPSTREAM_PROVIDER_ONLY üzerinden sağlanır. bundled, modeli, yönlendirmesini ve fiyatını tutan çekirdek imajındaki dosyayı (ai-tiers.json) kullanır. Mutlak bir yol ise bağladığın bir dosyayı kullanır. Hatalı bir değer veya bozuk bir dosya açılışı durdurur.Yapay zeka vekil sunucusu
AI_ADVERTISED_MODELayarlanmamışAşama dosyası olmadığında her taramanın kullandığı model. /health modeli adlandırır ve vekil bunu her isteğe yazar. Uygulama bir model olmadan tarama yapmaz. Bir aşama dosyası olduğunda, yalnızca acil bir önlem olarak varsayılan aşamanın modelini geçersiz kılar ve çekirdek her başlangıçta bir uyarı günlüğü düşer.Yönetilen örnekler
AI_MAX_OUTPUT_TOKENS8192Bir isteğin isteyebileceği en fazla çıktı belirteci.
AI_RATE_LIMIT_PER_MINUTE20Bir hesabın herhangi bir 60 saniye içinde yapabileceği en fazla istek sayısı.
AI_INSTANCE_DAILY_LIMITayarlanmamış, sınır yokUTC günü başına yapay zeka birimi cinsinden günlük örnek sınırı. Bir tabak taraması bir birim tutar.Yapay zeka vekil sunucusu
AI_BUDGET_ALERT_FRACTION0.2Bir OpenRouter anahtarında, anahtar sınırının bu oranından daha azı kaldığında her sıfırlama döneminde bir kez MAIL_OPERATOR_EMAIL adresine e-posta gönder. 0'dan büyük ve 1'den küçük olmalıdır.Yapay zeka vekil sunucusu
AI_MAX_REQUEST_BYTES8000000Vekil sunucunun kabul ettiği bayt cinsinden en büyük istek boyutu.
AI_MAX_IMAGE_PARTS1İstek başına en fazla görsel sayısı. Bu sınırı aşan istekler, sayım başlamadan önce 400 ai-request-too-large döndürür.
AI_MAX_TEXT_BYTES49152İleti metni ve response_format birleştirilerek istek başına en fazla metin baytı. Daha fazlasını içeren istekler aynı 400 yanıtını döndürür.
AI_MAX_MESSAGES4İstek başına en fazla ileti sayısı. Bu sınırı aşan istekler aynı 400 yanıtını döndürür.
AI_UNIT_INPUT_TOKENS8192Yapay zeka birimi başına tahmini girdi belirteci. Her istek bir birim tutar, ayrıca ek her AI_UNIT_INPUT_TOKENS için bir birim eklenir. Günlük sınırlar bu birimleri sayar.Yapay zeka vekil sunucusu
AI_IMAGE_INPUT_TOKENS1500Bir görsel için tahmini girdi belirteci. Metin, toplam bayt sayısının 4'e bölünmesiyle hesaplanır.
DeğişkenVarsayılanNe yaparDaha fazlası
HEALTH_CONSENT_VERSIONayarlanmadı, onay istenmezHer hesabın kabul etmesi gereken 2026-09-28 gibi sağlık verisi onayı sürümü. 1 ila 32 harf, rakam, ., _ veya - kullan. Değişen bir sürüm herkesten tekrar onay ister.Açık onay

Anlık bildirim

DeğişkenVarsayılanNe yaparDaha fazlası
VAPID_PUBLIC_KEYayarlanmadı, bildirim yokWeb anlık bildirimleri için genel anahtar. Üçünü birden ayarla ya da hiçbirini ayarlama. pnpm core-api push keygen ile bir çift oluştur.
VAPID_PRIVATE_KEYayarlanmamışWeb anlık bildirimleri için özel anahtar.
VAPID_SUBJECTayarlanmamışBir anlık bildirim servisinin sana nasıl ulaşacağı: bir mailto: adresi veya bir https:// adresi.
PUSH_ENDPOINT_HOSTSayarlanmamışBir cihazın kaydedebileceği, virgülle ayrılmış ek bildirim sunucuları. *.example.org, example.org altındaki her sunucuyu kapsar. Varsayılan tarayıcı bildirim servislerine her zaman izin verilir. Bunu yalnızca özel sunucular için ayarla. Hatalı biçimlendirilmiş bir girdi başlatmayı durdurur.

Planlar

DeğişkenVarsayılanNe yaparDaha fazlası
PLANS_UPSTREAM_URLayarlanmadı, plan yok/v1/plans/* alan faturalandırma servisinin dahili adresi. Bunu PLANS_UPSTREAM_SECRET ile birlikte ayarla.Ücretli planlar
PLANS_UPSTREAM_SECRETayarlanmamışFaturalandırma servisinin denetlediği paylaşılan gizli anahtar.Ücretli planlar
BILLING_TOKENayarlanmamışFaturalandırma servisinin en az 24 karakterden oluşan kendi kimlik bilgisi. Yalnızca üç yönetici rotasına erişir, başka hiçbir yere erişmez.Ücretli planlar
BILLING_MAX_DAILY_AI_LIMIT1000BILLING_TOKEN değerinin bir hesaba yazabileceği en yüksek günlük yapay zeka sınırı. Bunu en yüksek planında veya üzerinde tut. ADMIN_TOKEN buna bağlı değildir.Ücretli planlar

Geri bildirim, paylaşım ve araştırma

DeğişkenVarsayılanNe yaparDaha fazlası
SYNC_FEEDBACKfalsetrue, 30 gün boyunca saklanan fotoğraflarıyla birlikte bildirilen tahminleri kabul eder. Bu fotoğrafları görüntüleyebilirsin.Bildirilen tahminler
FEEDBACK_DAILY_LIMIT5Bir hesabın UTC günü başına gönderebileceği rapor sayısı.
FEEDBACK_MAX_REQUEST_BYTES8000000Servisin kabul ettiği bayt cinsinden en büyük rapor boyutu.
SYNC_SHARINGfalsetrue, bir kliniysen ile bir günlüğü paylaşmayı etkinleştirir.
SYNC_RESEARCHfalsetrue, araştırma katkılarını ve çalışma konsolunu etkinleştirir.Eşitleme

Günlük kaydı ve diğerleri

DeğişkenVarsayılanNe yaparDaha fazlası
LOG_LEVELinfodebug, info, warn veya error. Başka herhangi bir değer başlatmayı durdurur.
SYNC_NOTICEayarlanmamışHer uygulamanın bağlandığında gösterdiği kısa bir ileti, en fazla 280 karakter.
SYNC_NOTICE_URLayarlanmamışBildirimin yanında yer alan bir bağlantı, https:// veya http://. SYNC_NOTICE gerektirir.
SERVICE_VERSIONayarlanmamış, kalıbın sürümü/health tarafından bildirilen sürümün yerine geçer. Ayarlanmamış olarak bırak.

Çıkarım servisi (openplate-inference)

Çıkarım konteyneri, ghcr.io/lowcarbcheck/openplate-inference. Model çalışma zamanını ve servisi tek bir konteynerde çalıştırır. openplate-inference yapılandırma kılavuzu seçenekleri ayrıntılı olarak açıklar.

Servis ve erişim

DeğişkenVarsayılanNe yaparDaha fazlası
PORT8300Servisin dinlediği port. Konteynerin dışa açtığı tek porttur.
API_KEYSayarlanmamış, geçici bir anahtarİstekte bulunanın göndermesi gereken, virgülle ayrılmış anahtarlar. Ayarlanmadığında servis başlangıçta tek bir anahtar oluşturur, bunu bir kez ekrana yazar ve bir sonraki yeniden başlatmada unutur.Anahtarı al
LOG_LEVELinfodebug, info, warn veya error. Başka herhangi bir değer başlatmayı durdurur.
PROFILEMODEL_PROFILE değerinden ayarlanırBaşlangıç günlüğünün yazdırdığı profil adı: lite, quality veya custom. Konteyner bunu MODEL_PROFILE üzerinden ayarlar ve başka hiçbir şeyi değiştirmez.

Model ve ağırlıklar

DeğişkenVarsayılanNe yaparDaha fazlası
MODEL_PROFILEliteKonteynerin indirip çalıştırdığı ağırlıklar: lite, lite-apache veya quality. external hiçbir şey indirmez ve MODEL_RUNTIME_URL adresindeki kendi çalışma zamanını kullanır.Donanım
MODELS_DIR/modelsAğırlıkların konteyner içinde, bir birimde bulunduğu yer. Yalnızca ağırlıkları başka bir yere bağladığında değiştir.
WEIGHTS_MIRROR_BASEayarlanmamışAğırlıkları indirmek için bir yansı, yedek olarak Hugging Face kullanılır. Servis her iki durumda da sağlama toplamlarını denetler.
MODEL_RUNTIME_URLhttp://127.0.0.1:8080, birlikte gelen çalışma zamanı/v1 olmadan, kendi çalışma zamanının adresi. MODEL_PROFILE=external bunu gerektirir. Başka herhangi bir profilde, farklı bir adres konteyneri durdurur.Harici mod değişkenleri
MODEL_RUNTIME_API_KEYayarlanmamışAnahtar gerektiren bir çalışma zamanı veya vekil sunucu için, servisin çalışma zamanına gönderdiği anahtar.Harici mod değişkenleri
MODEL_IDopenplate-plate-1Servisin çalışma zamanına gönderdiği model adı. vLLM sunulan tam adına ihtiyaç duyar.Harici mod değişkenleri
RUNTIME_PORT8080Birlikte gelen llama-server portu, yalnızca konteynerin yerel geri döngü adresinde.
CONTEXT_SIZE8192İşlemdeki her tarama için bağlam. Konteyner bunu llama.cpp için CONCURRENCY ile çarpar.
LLAMA_THREADSçekirdek sayısı eksi iki, en az 1llama.cpp için CPU iş parçacıkları.
LLAMA_EXTRA_ARGSayarlanmamışllama-server komutunun sonuna eklenecek, boşluklardan ayrılmış ek bayraklar. Yalnızca birlikte gelen çalışma zamanı için.
GPU_LAYERSalgılanan: GPU ile 99, aksi takdirde 0GPU'ya kaç model katmanının aktarılacağı. 0 değeri CPU kullanımını zorunlu kılar.
NVIDIA_VISIBLE_DEVICESNVIDIA konteyner çalışma zamanı tarafından ayarlanır--gpus all ayarlar. void veya none dışındaki herhangi bir değer, konteynerin GPU kullanmasını sağlar. Bunu kendin ayarlamazsın.

Sınırlar

DeğişkenVarsayılanNe yaparDaha fazlası
CONCURRENCY2Aynı anda işlenen taramalar. Ayrıca llama.cpp yuvalarını da ayarlar.
MAX_QUEUE_DEPTH8Bekleyebilecek taramalar. Bu sınır aşıldığında çağıran taraf 429 yanıtı alır.
RATE_LIMIT_RPM60Anahtar başına dakikadaki istek sayısı.
LATENCY_CEILING_MS0, kapalıServis, bu kadar milisaniye içinde bitiremeyeceği taramaları reddeder.Donanım
RUNTIME_COMPLETION_TIMEOUT_MS600000Çalışma zamanına yapılan tek bir çağrının sürebileceği en uzun süre, milisaniye cinsinden. 0 bu sınırı kapatır.
MAX_IMAGE_BYTES8388608Servisin kod çözme işleminden sonra kabul ettiği en büyük fotoğraf boyutu, bayt cinsinden (8 MiB).
IMAGE_MAX_LONG_EDGE896Servisin her bir fotoğrafı küçülttüğü uzun kenar boyutu, piksel cinsinden, en az 112.

Yemek verileri

DeğişkenVarsayılanNe yaparDaha fazlası
FOOD_SOURCEfdcMakroların nereden geleceği: fdc (imajdaki USDA özeti, ağ bağlantısı gerektirmez), off (Open Food Facts), lcc (LowCarbCheck) veya none.Yemek verileri
FDC_DATASET_PATH./data/fdc-foods.jsonÇalışma dizinine göre USDA özeti.
OFF_API_URLhttps://world.openfoodfacts.orgOpen Food Facts adresi, FOOD_SOURCE=off ile okunur.
LCC_API_URLhttps://lowcarbcheck.orgLowCarbCheck adresi, FOOD_SOURCE=lcc ile okunur.
LCC_API_KEYayarlanmamış, anonim katmanLowCarbCheck anahtarın, FOOD_SOURCE=lcc ile okunur.
EMBEDDING_RUNTIME_URLayarlanmamışDaha iyi yiyecek eşleştirmesi için /v1/embeddings modeline hizmet veren OpenAI uyumlu bir çalışma zamanı.
EMBEDDING_RUNTIME_API_KEYayarlanmamışBu çalışma zamanının anahtarı.

Başlatmayı durduran ayarlar

Başlamayan bir konteyneri fark etmek kolaydır ve maliyeti tek bir yeniden başlatmadır. Sessizce yok sayılan bir ayar ise bir şeyin çalışmadığı halde çalıştığını sanmana yol açar. Bu yüzden aşağıdaki her kural önyüklemeyi durdurur ve günlükte değişkenin adı belirtilir.

Reddedilen adlar

Bu adlar bir zamanlar ayardı. Artık servis bunlardan biri ayarlıyken başlamayı reddeder ve yerine ne kullanılacağını söyler. Çekirdek sunucu boş bir değerle bile bunları reddeder, bu nedenle satırı sil. Uygulama GATEWAY_URL değişkenini yalnızca bir değere sahip olduğunda reddeder.

DeğişkenReddedenYerine şunu kullan
GATEWAY_URLuygulamaINSTANCE_MODE=managed. Çekirdek sunucu yapay zeka vekilini devraldı.
SIGNUP_MODEçekirdek sunucuHiçbir şey. Hesaplar davetiyelerle oluşturulur ve OPEN_SIGNUP=true kullanıcıların davetiye istemesine olanak tanır.
SIGNUPS_OPENçekirdek sunucuHiçbir şey, aynı nedenle.
REQUIRE_EMAIL_VERIFICATIONçekirdek sunucuHiçbir şey. Davetiyenin kendisi adres kontrolüdür.
EMAIL_FROMçekirdek sunucuMAIL_API_FROM veya SMTP_FROM.
SMTP_SECUREçekirdek sunucuHiçbir şey. Şifrelemeye SMTP_PORT karar verir.
PIGEON_API_KEYçekirdek sunucuMAIL_API_KEY veya SMTP_USER ile SMTP_PASSWORD.
PIGEON_BASE_URLçekirdek sunucuMAIL_API_URL veya SMTP_HOST.

Değişkenler arası kurallar

Uygulama.

  • MATOMO_URL ve MATOMO_SITE_ID: ikisini de ayarla ya da hiçbirini ayarlama. MATOMO_EVENT_LEVEL için ikisi de gerekir.
  • NEWSLETTER_SUBSCRIBE_URL ve NEWSLETTER_TURNSTILE_SITE_KEY: ikisini de ayarla ya da hiçbirini ayarlama.
  • INSTANCE_MODE=managed için CORE_URL gerekir.
  • CORE_URL ve desteği sonlandırılan SYNC_SERVER_URL: birini ayarla. İkisi de farklı adreslere ayarlanmışsa, bu sürüm için SYNC_SERVER_URL geçerli olur ve önyükleme tek bir uyarı günlüğe kaydeder.
  • NODE_ENV=production durumunda APP_URL zorunludur.
  • MOVED_TO_URL, kullanıcı adı veya parola içermeyen, APP_URL dışındaki bir ana bilgisayarda bulunan bir https:// adresi olmalıdır.
  • Listesinin dışındaki bir değer önyüklemeyi durdurur: DEFAULT_UI_LANGUAGE, NUTRIENT_REFERENCE_BASIS, INSTANCE_MODE, MATOMO_EVENT_LEVEL ve FOOD_DB_BACKFILL. Pozitif bir tam sayı olmayan FOOD_DB_DAILY_CALL_LIMIT de önyüklemeyi durdurur. CORE_URL, DEFAULT_INFERENCE_BASE_URL, MATOMO_URL veya NEWSLETTER_SUBSCRIBE_URL içindeki hatalı biçimlendirilmiş adresler de önyüklemeyi durdurur. MATOMO_SITE_ID pozitif bir tam sayı değilse veya CONTENT_DIR bir dizin değilse önyükleme yine durur.

Çekirdek sunucu.

  • DATABASE_URL ve SERVER_SECRET zorunludur.
  • Asgari uzunluklar: SERVER_SECRET ve TRIAL_ADDRESS_PEPPER için 32 karakter, ADMIN_TOKEN ve BILLING_TOKEN için 24 karakter.
  • E-posta tek bir aktarım yöntemi kullanır. HTTP e-posta API'si dördüne birden ihtiyaç duyar: MAIL_API_URL, MAIL_API_KEY, MAIL_API_FROM ve MAIL_OPERATOR_EMAIL. SMTP için SMTP_HOST, SMTP_FROM ve MAIL_OPERATOR_EMAIL gerekir, SMTP_USER ve SMTP_PASSWORD ise birlikte kullanılır. İki aktarım yönteminin değişkenlerinin aynı anda bulunması açılışı durdurur, hiçbir aktarım yöntemi olmadan MAIL_OPERATOR_EMAIL kullanılması da aynı şekilde durdurur.
  • E-posta için SERVER_PUBLIC_URL ve CLIENT_BASE_URL gerekir. NODE_ENV=production etkinken her ikisi de localhost değil, başka bir sunucudaki https:// adresleri olmalıdır.
  • İkisini de ayarla ya da hiçbirini ayarlama: UPSTREAM_BASE_URL ve UPSTREAM_API_KEY; PLANS_UPSTREAM_URL ve PLANS_UPSTREAM_SECRET; TURNSTILE_SECRET_KEY ve TURNSTILE_SITE_KEY; MEMBER_INVITE_DAILY_AI_LIMIT ve MEMBER_INVITE_ALLOWANCE_DAYS; TRIAL_SCANS ve TRIAL_DAILY_AI_LIMIT.
  • Üçünü de ayarla ya da hiçbirini ayarlama: VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY ve VAPID_SUBJECT.
  • X, Y'yi gerektirir: OPEN_SIGNUP=true e-posta gerektirir. Turnstile ikilisi OPEN_SIGNUP=true gerektirir. MEMBER_INVITE_LIFETIME_CAP, üye davet ikilisini veya MEMBER_INVITE_TRIAL=true gerektirir. MEMBER_INVITE_TRIAL=true, deneme ikilisini gerektirir ve üye davet ikilisini reddeder. Deneme ikilisi TRIAL_ADDRESS_PEPPER gerektirir. TRIAL_DAYS ve AI_TRIAL_INSTANCE_DAILY_LIMIT deneme ikilisini gerektirir. AI_TRIAL_NETWORK_DAILY_LIMIT, AI_TRIAL_INSTANCE_DAILY_LIMIT gerektirir. TRIAL_TIME_ZONE, TRIAL_DAYS gerektirir. SYNC_NOTICE_URL, SYNC_NOTICE gerektirir.
  • "Kapalı" gibi okunup tam tersi anlama geleceği yerlerde sıfır kabul edilmez: AI_INSTANCE_DAILY_LIMIT, AI_TRIAL_INSTANCE_DAILY_LIMIT, AI_TRIAL_NETWORK_DAILY_LIMIT, TRIAL_SCANS, TRIAL_DAILY_AI_LIMIT, TRIAL_DAYS, MEMBER_INVITE_DAILY_AI_LIMIT ve MEMBER_INVITE_ALLOWANCE_DAYS. 0 kabul eden iki tanesi hariç, diğer tüm sayılar da pozitif olmalıdır: TRUST_PROXY ve 0 değerinin üyelere gönderecek hiçbir şey bırakmadığı MEMBER_INVITE_LIFETIME_CAP.
  • Üst sınırlar: TRIAL_SCANS 100, TRIAL_DAYS 90, TRIAL_DAILY_AI_LIMIT ve MEMBER_INVITE_DAILY_AI_LIMIT 10000, SYNC_NOTICE 280 karakter, INSTANCE_NAME 64 karakter.
  • SYNC_SHARING, SYNC_RESEARCH, SYNC_FEEDBACK, DATABASE_SSL ve MEMBER_INVITE_TRIAL değişkenleri true, false, 1 veya 0 kabul eder. OPEN_SIGNUP yalnızca true kabul eder.
  • Listesinin dışındaki bir değer açılışı durdurur: INSTANCE_LANGUAGE, NUTRIENT_REFERENCE_BASIS, LOG_LEVEL, TRIAL_TIME_ZONE ve HEALTH_CONSENT_VERSION. mailto: veya https: olmayan bir VAPID_SUBJECT açılışı durdurur. Şema, bağlantı noktası veya yol içeren bir SMTP_HOST de açılışı durdurur. SERVER_PUBLIC_URL, CLIENT_BASE_URL, UPSTREAM_BASE_URL, PLANS_UPSTREAM_URL veya SYNC_NOTICE_URL içindeki hatalı biçimlendirilmiş adresler de açılışı durdurur.

Çıkarım servisi.

  • MODEL_PROFILE=external için MODEL_RUNTIME_URL gerekir. Diğer tüm profillerde, paketle gelen adres dışındaki bir MODEL_RUNTIME_URL konteyneri durdurur.
  • Listesinin dışındaki bir MODEL_PROFILE, FOOD_SOURCE, PROFILE veya LOG_LEVEL açılışı durdurur. http:// veya https:// adresi olmayan bir MODEL_RUNTIME_URL ya da EMBEDDING_RUNTIME_URL de açılışı durdurur.
  • Sayılar ve boyutlar pozitif tam sayı olmalıdır. LATENCY_CEILING_MS ve RUNTIME_COMPLETION_TIMEOUT_MS değişkenleri 0 değerini de kabul eder. IMAGE_MAX_LONG_EDGE en az 112, PORT en fazla 65535 olmalıdır.

Turnstile ile kayıt olma

Varsayılan olarak bir hesap yalnızca bir davetten gelir. Çekirdek sunucuda OPEN_SIGNUP=true ayarla, böylece herkes kendi adresiyle bir hesap talep edebilir. Servis daha sonra bu adrese bir davet postalar ve mektup adresin çalıştığını kanıtlar. Bu yüzden açık kayıt için e-posta gerekir ve servis bu olmadan başlamaz. Uygulama, kayıt formunu yalnızca çekirdek sunucu kapısının açık olduğunu söylediğinde gösterir.

Captcha, betiklerin servisi istek yağmuruna tutmasını engeller. İki anahtarı yapılandırdığında çekirdek sunucu bir Cloudflare Turnstile captcha'sını kontrol eder:

  1. Cloudflare kontrol panelinde oturum aç, Turnstile sayfasını aç ve Add widget seçeneğini seç. Ücretsiz bir hesap yeterlidir. Alan adının Cloudflare kullanması gerekmez.
  2. Gerece bir ad ver, uygulamanın openplate.example.com gibi ana bilgisayar adını ekle ve modu Yönetilen olarak bırak. Oluştur seçeneğini seç.
  3. Site anahtarını TURNSTILE_SITE_KEY içine, gizli anahtarı ise çekirdek sunucudaki TURNSTILE_SECRET_KEY içine ayarla. Ya iki anahtarı da ayarla ya da hiçbirini ayarlama.
  4. Çekirdek sunucuyu örneğin docker compose -f <your file> up -d ile yeniden oluştur.

/health ardından site anahtarını yayınlar. Uygulamanın kayıt sayfası captcha'yı gösterir. Gönder düğmesi, kullanıcı bunu çözene kadar etkinleşmez. Gizli anahtar çekirdek sunucuyu asla terk etmez. Servis, ziyaretçinin adresini değil, captcha yanıtını ve gizli anahtarı Cloudflare'e gönderir.

Servis yalnızca kayıt isteğini, yani POST /v1/auth/signup-request isteğini denetler. Giriş yapma, davet açma ve diğer tüm rotalarda doğrulama yoktur. Servis Cloudflare tarafına erişemediğinde 503 döner ve kişi daha sonra tekrar deneyebilir. Denetim başarısızlık durumunda geçit vermez, bu yüzden yanıtsız kalan bir istek asla onaylanmaz.

Uygulamanın Content-Security-Policy ayarı, Cloudflare doğrulamasını yalnızca yönetilen bir kurulumda (INSTANCE_MODE=managed) veya bülten formu açıkken onaylar. Diğer kurulumlarda tarayıcı doğrulamayı engeller ve kimse formu gönderemez. Doğrulamayı açmadan önce uygulamayı yönetilen olarak ayarla.

İki anahtar olmadan da açık kayıt çalışmaya devam eder. Diğer sınırları yine geçerlidir. Servis tek bir adresten saatte beş isteğe ve tek bir posta kutusu için günde bir e-postaya izin verir. Bilinen tek kullanımlık e-posta servislerinden gelen adresleri engeller. Servis başlangıçta bir uyarı günlüğü düşer.

NEWSLETTER_TURNSTILE_SITE_KEY ayrı bir ayardır. Uygulamaya aittir ve açılış sayfasındaki bülten formunu korur. Gizli anahtarı openplate tarafında değil, o formu alan serviste durur. Bülten kaydı bunu açıklar.

İmajı kendin derlemek

Dockerfile dosyaları birkaç derleme argümanı kabul eder. Bunlar çalışan bir konteyner için ayar değildir. OPENPLATE_BUILD_SHA, commit bilgisini uygulamanın paketine basar. Çıkarım imajı, üzerine inşa edilecek llama.cpp sunucu imajı olan BASE_IMAGE değerini alır. Ayrıca derleme için Node.js imajı olan NODE_IMAGE değerini alır. VITE_ALLOWED_HOSTS yalnızca uygulamanın geliştirme sunucusuna uygulanır ve öntanımlı sunucuları yoktur.

Bu sayfayı GitHub üzerinde düzenle