Proje Mimarisi
LibreChat monorepo çalışma alanı yapısına ve paket sınırlarına genel bakış.
Monorepo Yapısı
LibreChat, net bir şekilde tanımlanmış çalışma alanı sınırlarına sahip bir monorepo olarak düzenlenmiştir:
| Çalışma Alanı | Dil | Taraf | Bağımlılık | Amaç |
|---|---|---|---|---|
/api | JS (eski) | Backend | packages/api, packages/data-schemas, packages/data-provider, @librechat/agents | Express sunucusu — burada yapılan değişiklikleri en aza indirin |
/packages/api | TypeScript | Backend | packages/data-schemas, packages/data-provider | Yeni backend kodu burada yer alır (sadece TS, /api tarafından tüketilir) |
/packages/data-schemas | TypeScript | Backend | packages/data-provider | Veritabanı modelleri/şemaları, backend projeleri arasında paylaşılabilir |
/packages/data-provider | TypeScript | Paylaşılan | — | Paylaşılan API tipleri, endpoint'ler, veri servisi — hem frontend hem de backend tarafından kullanılır |
/client | TypeScript/React | Frontend | packages/data-provider, packages/client | Frontend SPA |
/packages/client | TypeScript | Frontend | packages/data-provider | Paylaşılan frontend araçları |
Temel İlkeler
/packages/apiiçindeki tüm yeni backend kodları TypeScript olmalıdır./apideğişikliklerini mutlak minimumda tutun —/packages/apidizinini çağıran ince JS sarmalayıcıları (wrappers) kullanın.- Veritabanına özgü paylaşılan mantık
/packages/data-schemasiçinde yer alır. - Frontend/backend paylaşımlı API mantığı (endpoints, types, data-service)
/packages/data-providerdizininde yer almalıdır.
Oluşturma ve Kurulum
| Komut | Amaç |
|---|---|
npm run smart-reinstall | Bağımlılıkları yükle (lockfile değiştiyse) + Turborepo ile derle |
npm run reinstall | Node/npm sürümleri değiştirildikten sonra veya bağımlılık durumu şüpheli olduğunda temiz kurulum yap |
npm run build | Tüm derlenmiş kodu Turborepo ile derle (paralel, önbellekli) |
npm run frontend | Tüm derlenmiş kodu sırayla derle (eski yöntem yedeği) |
npm run build:data-provider | Değişikliklerden sonra packages/data-provider paketini yeniden derle |
npm run backend | Backend sunucusunu başlat |
npm run backend:dev | Backend'i dosya izleme ile başlat (geliştirme) |
npm run frontend:dev | Frontend geliştirme sunucusunu HMR ile başlat (port 3090, backend'in çalışıyor olması gerekir) |
- Node.js:
v24.16.0 - npm:
v11.16.0 - Veritabanı: MongoDB
- Backend
http://localhost:3080/adresinde; frontend geliştirme sunucusu isehttp://localhost:3090/adresinde çalışır.
Not
Kodlama standartları ve kurallarının tamamı için Code Standards and Conventions bölümüne bakın.
Bu rehber nasıl?