Sorunuzu sorun ve bu sayfaya ve seçtiğiniz AI sağlayıcısına referans vererek belgenin bir özetini alın
Bu belge güncel değil, temel sürüm şu tarihte güncellendi 2 Temmuz 2026.
İngilizce dökümana gitSürüm Geçmişi
Bu sayfanın içeriği bir yapay zeka kullanılarak çevrildi.
Orijinal içeriğin İngilizce son sürümünü görüntüleyinIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Intlayer'ı Kendi Sunucunuzda Barındırma
Intlayer, tamamen kendi altyapınızda çalışabilir; Intlayer Cloud hesabı gerekmez. Tek bir komutla üretime hazır bir yığını başlatabilirsiniz:
Kodu panoya kopyala
curl -fsSL https://intlayer.org/install.sh | shYükleyici, bir docker-compose.yml ve bir .env indirir, gerekli gizli anahtarları otomatik olarak oluşturur ve tüm kapsayıcıları docker compose up -d ile başlatır.
İçindekiler
Mimari
Kodu panoya kopyala
┌─────────────────────────────┐ browser ──────▶ │ app (TanStack Start) :3000│ ──┐ └─────────────────────────────┘ │ VITE_BACKEND_URL ┌─────────────────────────────┐ │ │ backend (Fastify/Bun) :3100│ ◀─┘ └──────────────┬──────────────┘ ┌──────────┬─────────┼──────────┬───────────┐ ▼ ▼ ▼ ▼ ▼ mongo:27017 redis:6379 minio:9000 mailpit:1025 Chromium (1-düğüm RS) (S3 API) (SMTP) (görüntü içinde) minio:9001 mailpit:8025 (konsol) (web arayüzü)Chromium (Puppeteer ekran görüntüsü oluşturma için kullanılır) backend görüntüsünün içine dahil edilmiştir; ayrı bir kapsayıcıya gerek yoktur.
Önkoşullar
- Docker ≥ 24 ve Docker Compose ≥ v2. Herhangi biri eksikse, yükleyici kurulum bağlantısını yazdırır ve çıkar.
- Ana bilgisayarda
3000,3100,8025,9000ve9001bağlantı noktalarının kullanılabilir olması. - Bir Linux veya macOS ana bilgisayarı (veya Windows'ta WSL2).
Hızlı Başlangıç
Kodu panoya kopyala
curl -fsSL https://intlayer.org/install.sh | shYükleyicinin yaptığı işlemler:
dockervedocker compose'un mevcut olduğunu kontrol eder.docker-compose.ymlve.env.exampledosyalarını./intlayer/dizinine indirir..envdosyası mevcut değilse, örneği kopyalar veBETTER_AUTH_SECRET,S3_ACCESS_KEY_IDveS3_SECRET_ACCESS_KEYiçinopenssl randaracılığıyla rastgele gizli anahtarlar oluşturur.docker compose pull+docker compose up -dkomutlarını çalıştırır.- URL'leri yazdırır: kontrol paneli
:3000, API:3100, e-posta arayüzü:8025, MinIO konsolu:9001.
Yığın çalışmaya başladıktan sonra http://localhost:3000 adresini açın ve ilk hesabınızı oluşturun.
İlk çalıştırma kurulumu
Yeni bir instance'ta (boş veritabanı), dashboard'u açmak sizi /init sayfasına yönlendirir:
- İlk hesabı oluşturun. Kullanıcılar koleksiyonu boş olduğundan, bu hesap otomatik olarak super admin olarak yükseltilir.
- Bir doğrulama e-postası gönderilir (Resend aracılığıyla). E-posta doğrulaması zorunludur — bu nedenle
RESEND_API_KEYbaşlamadan önce ayarlanmalıdır. - E-postadaki bağlantıyı tıklayın, ardından oturum açın.
Bir admin mevcut olduğunda, /init standart oturum açma sayfasına yönlendirilir.
Servisler
Tüm veri içeriğini net bir şekilde görmek için tabloyu modalde açın
| Servis | Görüntü | Ana Bilgisayar Bağlantı Noktası(ları) | Amaç |
|---|---|---|---|
| app | apps/app/Dockerfile dosyasından oluşturuldu | 3000 | TanStack Start kontrol paneli (CMS UI) |
| backend | apps/backend/Dockerfile dosyasından oluşturuldu | 3100 | Fastify REST API (/health uç noktası) |
| mongo | mongo:7 | dahili | Tek düğümlü replika seti (rs0) |
| redis | redis:7-alpine | dahili | İş kuyrukları (BullMQ) ve önbellekleme (ioredis) |
| minio | minio/minio | 9000 (S3), 9001 (konsol) | Avatarlar ve ekran görüntüleri için S3 uyumlu nesne depolama |
| mailpit | axllent/mailpit | 1025 (SMTP), 8025 (web UI) | Yerel işlem e-postası alıcısı |
Dahili bağlantı noktaları (mongo, redis) varsayılan olarak ana bilgisayara açık değildir.
MinIO bağlantı noktası9000tarayıcı tarafından erişilebilir olmalıdır çünkü yüklenen varlıklar (avatarlar, ekran görüntüleri) doğrudanS3_PUBLIC_URL=http://localhost:9000/intlayeradresinden yüklenir.
Ortam değişkenleri
Gerekli
Tüm veri içeriğini net bir şekilde görmek için tabloyu modalde açın
| Variable | Example | Description |
|---|---|---|
DB_ID | intlayer | MongoDB Atlas kullanıcısı |
DB_MDP | (şifreniz) | MongoDB Atlas şifresi |
DB_CLUSTER | cluster0.xxxxx.mongodb.net | MongoDB Atlas cluster host'u (mongodb+srv:// URI'de kullanılır) |
BETTER_AUTH_SECRET | (generated) | Session imzalama için 32-byte secret |
S3_SECRET_ACCESS_KEY | (generated) | Bundled MinIO için secret |
RESEND_API_KEY | (your key) | Resend aracılığıyla işlemsel e-posta. Global SMTP mailer'ı yapılandırmadığınız sürece ilk çalıştırma kurulumu için gereklidir (bkz. Global mailer) |
Gerekli (otomatik oluşturulur veya istenir)
Tüm veri içeriğini net bir şekilde görmek için tabloyu modalde açın
| Değişken | Örnek | Açıklama |
|---|---|---|
NODE_ENV | production | Çalışma zamanı ortamı |
PORT | 3100 | Backend dinleme portu |
BACKEND_URL | http://localhost:3100 | Backend API'sinin genel URL'si |
APP_URL | http://localhost:3000 | Kontrol panelinin genel URL'si |
DOMAIN | localhost | Çerez alanı |
MONGODB_URI | mongodb://mongo:27017/intlayer?replicaSet=rs0 | Tam MongoDB bağlantı URI'si |
REDIS_URL | redis://redis:6379 | Redis bağlantı URL'si |
BETTER_AUTH_SECRET | (oluşturuldu) | Oturum imzalamak için 32 baytlık gizli anahtar |
MAIL_PROVIDER | smtp | E-posta taşıma yöntemi: smtp veya resend |
MAIL_SMTP_HOST | mailpit | SMTP ana bilgisayar adı (Mailpit kapsayıcı adı) |
MAIL_SMTP_PORT | 1025 | SMTP portu |
MAIL_FROM | Intlayer <no-reply@localhost> | Gönderen adresi |
S3_ENDPOINT | http://minio:9000 | S3 uyumlu uç nokta |
S3_PUBLIC_URL | http://localhost:9000/intlayer | Tarayıcı varlık yüklemesi için genel URL |
S3_BUCKET_NAME | intlayer | Kova adı |
S3_ACCESS_KEY_ID | (oluşturuldu) | MinIO erişim anahtarı |
S3_SECRET_ACCESS_KEY | (oluşturuldu) | MinIO gizli anahtarı |
VITE_BACKEND_URL | http://localhost:3100 | Oluşturma zamanında kontrol paneline gömülü backend URL'si |
VITE_DOMAIN | localhost | Oluşturma zamanında kontrol paneline gömülü alan adı |
İsteğe Bağlı (yokluğunda özellikler sorunsuz şekilde bozulur)
Tüm veri içeriğini net bir şekilde görmek için tabloyu modalde açın
| Değişken | Özellik |
|---|---|
OPENAI_API_KEY | AI destekli çeviri ve içerik denetimi |
STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, STRIPE_* | Faturalandırma ve abonelik yönetimi |
RESEND_API_KEY | Resend aracılığıyla işlemsel e-posta (ayarlanırsa Mailpit'i geçersiz kılar) |
GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET | GitHub OAuth girişi |
GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET | Google OAuth girişi |
GITLAB_CLIENT_ID, GITLAB_CLIENT_SECRET | GitLab OAuth girişi |
MICROSOFT_CLIENT_ID, MICROSOFT_CLIENT_SECRET | Microsoft OAuth girişi |
LINKEDIN_CLIENT_ID, LINKEDIN_CLIENT_SECRET | LinkedIn OAuth girişi |
ATLASSIAN_CLIENT_ID, ATLASSIAN_CLIENT_SECRET | Atlassian OAuth girişi |
Global mailer
Varsayılan olarak, tüm işlemsel e-postalar Resend üzerinden RESEND_API_KEY kullanılarak gönderilir. Self-hosted dağıtımlar bunun yerine tüm e-postaları — şifre sıfırlamaları ve magic linkler gibi organizasyon dışı e-postalar dahil — ortam değişkenleriyle yapılandırılmış global bir mailer üzerinden yönlendirebilir.
Etkinleştirmek için MAIL_PROVIDER ayarlayın. Ayarlanmadığında, varsayılan Resend mailer kullanılır.
Tüm veri içeriğini net bir şekilde görmek için tabloyu modalde açın
| Değişken | Örnek | Açıklama |
|---|---|---|
MAIL_PROVIDER | smtp | Global transport: smtp veya resend. Varsayılanları kullanmak için ayarlamayın |
MAIL_FROM | Intlayer <no-reply@acme.com> | Gönderen başlığı. Düz bir adres veya Name <email> formatını kabul eder |
MAIL_SMTP_HOST | smtp.acme.com | SMTP host (MAIL_PROVIDER=smtp olduğunda gerekli) |
MAIL_SMTP_PORT | 587 | SMTP port (varsayılan 587) |
MAIL_SMTP_SECURE | false | Implicit TLS. Port 465 için true olarak ayarlayın |
MAIL_SMTP_USER | (your user) | SMTP kullanıcı adı (isteğe bağlı; kimliği doğrulanmamış relayler için atlayın) |
MAIL_SMTP_PASSWORD | (your password) | SMTP şifresi |
Öncelik: bir organizasyonun kendi mailer'ı (Organization panosundan yapılandırılmış) global mailer'dan daha yüksek önceliğe sahiptir ve bu da varsayılan Resend anahtarından daha yüksek önceliğe sahiptir.
Intlayer projenizi bağlama
Yığın çalışmaya başladıktan sonra, projenizi intlayer.org yerine kendi barındırılan backend ve kontrol paneline yönlendirin.
Proje yapılandırması
Kodu panoya kopyala
import type { IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
editor: {
clientId: process.env.INTLAYER_CLIENT_ID,
clientSecret: process.env.INTLAYER_CLIENT_SECRET,
/**
* Kendi sunucunuzda barındırılan CMS kontrol panelinin URL'si.
* Varsayılan: https://app.intlayer.org
*/
cmsURL: process.env.INTLAYER_CMS_URL, // örn. http://localhost:3000
/**
* Kendi sunucunuzda barındırılan backend API'sinin URL'si.
* Varsayılan: https://back.intlayer.org
*/
backendURL: process.env.INTLAYER_BACKEND_URL, // örn. http://localhost:3100
},
};
export default config;Projenizin .env dosyasında ortam değişkenlerini ayarlayın:
Kodu panoya kopyala
INTLAYER_CMS_URL=http://localhost:3000INTLAYER_BACKEND_URL=http://localhost:3100INTLAYER_CLIENT_ID=<your-client-id>INTLAYER_CLIENT_SECRET=<your-client-secret>Kendi barındırılan kontrol panelinizde Projeler → Erişim Anahtarları altında http://localhost:3000/projects adresinde erişim kimlik bilgileri oluşturun.
@intlayer/api SDK
@intlayer/api SDK'sını programlı olarak kullanırken, backendURL'i açıkça geçirin:
Kodu panoya kopyala
import { createIntlayerCMS } from "@intlayer/api";import { dictionaryEndpoint } from "@intlayer/api/dictionary";const cms = createIntlayerCMS({ editor: { clientId: process.env.INTLAYER_CLIENT_ID, clientSecret: process.env.INTLAYER_CLIENT_SECRET, backendURL: process.env.INTLAYER_BACKEND_URL, // http://localhost:3100 },});const { data: dictionaries } = await dictionaryEndpoint(cms).getDictionaries();Yükseltme
Mevcut bir dağıtım üzerinde yükleyiciyi yeniden çalıştırmak, kademeli bir yükseltme gerçekleştirir:
Kodu panoya kopyala
curl -fsSL https://intlayer.org/install.sh | shBu, en son görüntüleri çeker ve kapsayıcıları docker compose pull && docker compose up -d ile yeniden başlatır. Mevcut birimler (mongo-data, redis-data, minio-data) korunur; veri kaybı olmaz.
Manuel olarak ./intlayer/ dizini içinden yükseltme yapmak için:
Kodu panoya kopyala
docker compose pulldocker compose up -dYedekleme ve Geri Yükleme
Tüm kalıcı veriler, üç adet adlandırılmış Docker biriminde bulunur.
Yedekleme
Kodu panoya kopyala
docker run --rm \ -v intlayer_mongo-data:/data \ -v "$(pwd)":/backup \ busybox tar czf /backup/mongo-data.tar.gz /datadocker run --rm \ -v intlayer_redis-data:/data \ -v "$(pwd)":/backup \ busybox tar czf /backup/redis-data.tar.gz /datadocker run --rm \ -v intlayer_minio-data:/data \ -v "$(pwd)":/backup \ busybox tar czf /backup/minio-data.tar.gz /dataGeri Yükleme
Kodu panoya kopyala
docker run --rm \ -v intlayer_mongo-data:/data \ -v "$(pwd)":/backup \ busybox tar xzf /backup/mongo-data.tar.gz -C /# redis-data ve minio-data için tekrarlayınSınırlamalar
- MongoDB harici (Atlas) olmalıdır. Backend yalnızca
mongodb+srv://üzerinden bağlanır (DB_ID/DB_MDP/DB_CLUSTERöğesinden oluşturulur), bu nedenle düzmongodb://host:27017— konteyner'ın kendi paketlenmişmongoddahil — kullanılamaz. Bir MongoDB Atlas kümesi sağlayın. - Özel alan adı yok. Tüm tarayıcıya yönelik
VITE_*URL'leri derleme zamanında uygulamaya satır içine alınır ve yayınlanan görüntülocalhostdeğerleriyle gemi. Pano şu adreste erişilmelidir:http://localhost:3000; bunu genel bir alan adında sunmak, görüntüyü hedef URL'ler ile yeniden oluşturmayı gerektiriyor ve kutudan hemen çıkar desteklenmiyor. - E-posta çalışan bir postacı gerektirir. İlk çalıştırma kurulumu e-posta doğrulamasını uygular, bu nedenle
RESEND_API_KEYveya bir global SMTP postacısı (MAIL_PROVIDER=smtp+MAIL_SMTP_*) yapılandırılmalıdır. İlk yönetici oturum açtıktan sonra, her kuruluş panodan kendi SMTP veya Resend postacısını da yapılandırabilir.
Sorun Giderme
İlk Başlangıçta Backend Sürekli Çöküyor
Backend başlamadan önce MongoDB ve Redis'in sağlıklı olması gerekir. Compose dosyası condition: service_healthy ile depends_on kullanır. Tekrarlayan backend yeniden başlatmaları görüyorsanız, mongo ve redis sağlık kontrollerinin geçtiğinden emin olun:
Kodu panoya kopyala
docker compose psdocker compose logs mongodocker compose logs redisKontrol Paneli API'ye Ulaşamıyor
VITE_BACKEND_URL'in backend'e tarayıcıdan (Docker ağı değil) erişilebilen URL ile eşleştiğini doğrulayın. Backend portunu değiştirdiyseniz veya bir ters proxy eklediyseniz, kontrol paneli görüntüsünü yeniden oluşturun:
Kodu panoya kopyala
docker compose build appdocker compose up -d appMinIO Kovası Eksik
Eğer minio-init tek seferlik servisi çalışmadıysa (veya MinIO hazır olmadan önce çalıştıysa), kovayı manuel olarak oluşturun:
Kodu panoya kopyala
docker compose run --rm minio-init