Kurulum
API, yönetim paneli ve site şablonunu yerelde kurma, ayarlama ve birbirine bağlama.
Bu sayfada Journey AI'ın üç parçasını kendi bilgisayarında nasıl kuracağını, her birini nasıl ayarlayacağını ve birbirine nasıl bağlayacağını öğreneceksin.
| Parça | Depo | Teknoloji | Yerel adres |
|---|---|---|---|
| API | sameup-cms | .NET 10, EF Core, SQL Server | http://localhost:5235 |
| Yönetim paneli | journey-v2 | React 19, Vite, npm | http://localhost:5173 |
| Site şablonu | Cms-Landing-Core | Next.js 16, pnpm | http://localhost:3000 |
Kurulum sırası önemlidir: önce API, sonra panel, en son site. Panel ve site API'den okur; API çalışmadan ikisi de açılmaz.
Ön koşullar
| Araç | Sürüm | Hangi parça için |
|---|---|---|
| .NET SDK | 10.0.400 veya üstü (global.json) | API |
| SQL Server | Erişebildiğin herhangi bir SQL Server | API |
| Docker | Güncel sürüm | API'nin yardımcı servisleri (dosya deposu, isteğe bağlı Redis) |
| Node.js | 24 veya üstü | Panel |
| Node.js | 22 veya üstü | Site şablonu |
| pnpm | Güncel sürüm | Site şablonu (npm ve yarn engellenir) |
SQL Server'ı sen sağlarsın
Depolardaki Docker dosyalarında SQL Server servisi yoktur. Yerel bir SQL Server kur ya da bir konteynerde çalıştır; API yalnızca bağlantı dizesini bekler.
1. API
Depoyu klonla ve derle
git clone <sameup-cms> && cd sameup-cms
dotnet buildÇözüm dosyası sameup-cms.slnx'tir. Çalışan proje SameUp.CMS.API, veritabanı katmanı SameUp.CMS.Data'dır.
Yardımcı servisleri başlat
API dosyaları bir nesne deposunda tutar. Yerelde bunun için docker-compose.local.yml içindeki MinIO servisini kullan:
export MINIO_ACCESS_KEY=<erişim-anahtarı> MINIO_SECRET_KEY=<gizli-anahtar>
docker compose -f docker-compose.local.yml up -d minio redis| Servis | Port | Gerekli mi |
|---|---|---|
minio | 9000, yönetim ekranı 9001 | Evet (ya da AWS S3 / Azure Blob) |
redis | 6379 | Hayır; kapalıysa API bellek içi önbellek kullanır |
kafka, kafka-ui | 9092, 8081 | Hayır; yalnızca log gönderimi için |
MinIO yönetim ekranında (http://localhost:9001) API'nin kullanacağı kovayı (bucket) oluştur.
Ayarları gir
API ayarları SameUp.CMS.API/appsettings.json dosyasından ve ortam değişkenlerinden okunur. Ortam değişkenlerinde bölüm ayracı olarak __ kullan: ConnectionStrings:SqlConnection → ConnectionStrings__SqlConnection.
Zorunlu ayarlar:
| Anahtar | Ne işe yarar |
|---|---|
ConnectionStrings:SqlConnection | SQL Server bağlantı dizesi. Veritabanı yoksa ilk açılışta oluşturulur. |
Documents:ActiveFileServer | Dosya deposu: MinIO, AWS ya da AzureBlobStorage. Başka bir değerle API açılmaz. |
Documents:FileServers:MinIO:* | Seçtiğin deponun ayarları: AccessKey, SecretKey, BucketName, Host, UseSSL, CDNUrl vb. AWS ve Azure için aynı yolda kendi blokları vardır. |
Jwt:Key | Oturum belirteçlerini imzalayan gizli anahtar. Her kurulumda kendine özgü, uzun ve rastgele bir değer ver. Jwt:Issuer ve Jwt:Audience da kuruluma göre ayarlanır. |
Origins | Panelin adresi gibi, tarayıcıdan API'ye istek atmasına izin verilen adresler (CORS): Origins__0=http://localhost:5173. Boşsa panel API'ye bağlanamaz. |
Operational:Token | Bakım uçları için gizli anahtar. İlk yönetici kullanıcıyı oluşturmak için gerekir; boşsa bu uçlar kapalıdır. |
Sık kullanılan isteğe bağlı ayarlar:
| Anahtar | Ne işe yarar |
|---|---|
Redis:Enabled, Redis:ConnectionString | Redis önbelleği. |
Kafka:LoggingEnabled | Logları Kafka'ya gönderir. Yerelde Kafka çalıştırmıyorsan false yap. |
Auth:LocalLoginEnabled | E-posta ve şifreyle giriş (varsayılan açık). |
Auth:Sso:* | Kurumsal SSO girişi. Yerel giriş kapalıysa SSO ayarlanmış olmalıdır; yoksa API açılmaz. |
Admin:Cookie:* | Panelin oturum çerezinin Domain, Secure ve SameSiteMode ayarları. |
UseSwagger | Swagger arayüzü. Geliştirme ortamında her zaman açıktır. |
DisableAutoMigration | true ise açılışta veritabanı geçişleri çalışmaz. |
Depodaki geliştirme ayarlarını olduğu gibi kullanma
appsettings.Development.json belirli bir ortama ait değerler içerir. Kendi bağlantı dizeni, anahtarlarını ve adreslerini ortam değişkenleriyle ver; gizli değerleri depoya koyma.
Çalıştır
dotnet run --project SameUp.CMS.API --urls "http://localhost:5235"İlk açılışta API veritabanı geçişlerini kendisi çalıştırır ve varsayılan uygulama parametrelerini ekler. Veritabanı henüz hazır değilse beş dakika boyunca yeniden dener.
Kontrol için:
GET http://localhost:5235/health: sağlık durumu.http://localhost:5235/: geliştirme ortamında Swagger arayüzü.
İlk yönetici kullanıcıyı oluştur
Boş bir veritabanında panele girecek kullanıcı yoktur. Depodaki betik, varsayılan rolleri (SuperAdmin, Admin, Editor) ve ilk yöneticiyi oluşturur:
export Operational__Token=<api-ayarlarındaki-değer>
export ADMIN_EMAIL=[email protected] ADMIN_PASSWORD=<güçlü-bir-şifre>
SEED_ROLES=1 ./scripts/dev-admin.sh- Betik API'nin
http://localhost:5235adresinde çalıştığını varsayar; farklıysaAPI_URLile değiştir. - Güvenlik için yalnızca yerel bir veritabanında çalışır.
SEED_ROLES=1mevcut rolleri silip yeniden oluşturur; yalnızca boş bir veritabanında kullan.
2. Yönetim paneli
Depoyu klonla ve bağımlılıkları kur
git clone <journey-v2> && cd journey-v2
npm installAPI adresini gir
Depo kökünde .env.local dosyası oluştur:
VITE_API_URL=http://localhost:5235
VITE_API_BASE_PATH=/api/v1| Değişken | Ne işe yarar |
|---|---|
VITE_API_URL | API'nin kök adresi. Zorunlu. |
VITE_API_BASE_PATH | API yol öneki. Varsayılan /api/v1. |
VITE_API_PROXY | Yalnızca geliştirmede: /api isteklerini bu adrese yönlendirir. CORS ayarlamak istemezsen kullan. |
VITE_ALLOWED_HOSTS | Paneli localhost dışında bir alan adıyla açacaksan izin verilen adresler (virgülle). |
VITE_DEV_LOGIN_EMAIL, VITE_DEV_LOGIN_PASSWORD | Yalnızca yerel geliştirmede giriş formunu doldurur. |
Site adresleri panelde ortam değişkeni değildir; API'deki uygulama parametrelerinden okunur (bkz. Parçaları bağla).
Çalıştır
npm run dev # http://localhost:5173
npm run check # tür, lint ve diğer kontrollerİlk yönetici kullanıcıyla giriş yap.
Docker imajında VITE_* değişkenleri derleme sırasında sabitlenmez. Konteyner açılırken APP_API_URL (zorunlu), APP_API_BASE_PATH ve APP_GOOGLE_OAUTH_CLIENT_ID değerleri config.js dosyasına yazılır ve VITE_* değerlerinin önüne geçer. Panel konteynerde 5173 portunda sunulur.
3. Site şablonu
git clone <Cms-Landing-Core> my-site && cd my-site
cp .env.example .env.local
pnpm install
pnpm dev # http://localhost:3000.env.local içinde yerel kurulum için en az şunları ayarla:
NEXT_PUBLIC_API_URL=http://localhost:5235
NEXT_PUBLIC_SITE_URL=http://localhost:3000
REVALIDATE_ALLOWED_ORIGINS=http://localhost:5173NEXT_PUBLIC_API_URLAPI'nin kök adresidir;/api/v1ekleme. Ayarlı değilse ya da API'ye ulaşılamıyorsa geliştirmede bir kurulum ekranı görürsün.REVALIDATE_ALLOWED_ORIGINSpanelin adresidir; panel kayıttan sonra sitenin önbelleğini bu izinle yeniler.- Önizleme sitesini aynı şablonun
PREVIEW_MODE=trueile çalışan ikinci bir kopyası olarak kurarsın.
Tüm değişkenler, proje yapısı ve bileşen eşleme için Site şablonu sayfasına bak.
4. Parçaları bağla
Üç parçanın birbirini bulması için şu ayarların birbiriyle uyuşması gerekir:
| Kim | Kimi bulur | Ayar |
|---|---|---|
| Panel | API | Panelde VITE_API_URL; API'de Origins içinde panelin adresi. |
| Site | API | Sitede NEXT_PUBLIC_API_URL. |
| Panel | Site | Panelde Ayarlar › Bağlantılar › Canlı site adresi ve Önizleme sitesi adresi; sitede REVALIDATE_ALLOWED_ORIGINS içinde panelin adresi. |
Yerel kurulumda panele girip Ayarlar › Bağlantılar ekranında iki site adresini de http://localhost:3000 yap. Bu adresler boş ya da başka bir ortamı gösteriyorsa bileşen düzenleyicideki önizleme ve Cache Yenile düğmesi yanlış siteye gider. Ayrıntı için Ayarlar sayfasına bak.
Sık karşılaşılan durumlar
Documents:ActiveFileServer boş ya da MinIO, AWS, AzureBlobStorage dışında bir değer. Değeri ve seçtiğin deponun ayar bloğunu kontrol et.
Auth:LocalLoginEnabled kapalı ve Auth:Sso:* ayarlanmamış. En az bir giriş yöntemi açık olmalıdır.
API'nin Origins listesinde panelin tam adresi (http://localhost:5173) yok. Adresi ekleyip API'yi yeniden başlat ya da panelde VITE_API_PROXY kullan.
Panelde Bağlantılar ekranındaki site adreslerini ve sitedeki REVALIDATE_ALLOWED_ORIGINS değerini kontrol et. Yenileme isteği tarayıcıdan, panelin adresinden gider.
İlgili sayfalar
Site şablonu
Journey AI içeriğini yayınlayan Next.js site şablonunun yapısı, ayarları ve bir isteğin sayfaya dönüşme yolu.
Ayarlar
E-posta, captcha, yapay zekâ, dosya sınırları ve site adreslerini tek ekrandan yönetin.
API
Sitelerin içerik okumak ve form göndermek için kullandığı, kimlik doğrulaması gerektirmeyen herkese açık API.