İçeriğe atla
supastack
Dokümanlara göz atın
WebNext.js

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /tr/docs/web/provider-keys.md (or send Accept: text/markdown).

Kalan sağlayıcı anahtarlarını toplayın

Kalan hizmetler için kısa yol göstericiler: AI sağlayıcıları, Trigger.dev, S3 depolama, Sentry veya PostHog, Turnstile ve alan adınız.

Bu sayfa nasıl kullanılır

Aşağıdaki her bölüm eksiksiz bir kurulum yol göstericisidir: hesabı oluşturun, anahtarı bulun, env adlarını ayarlayın, doğrulayın. Yalnızca ürününüzün gönderdiği hizmetlerin bölümlerini alın — AI özelliği olmayan bir site asla ilki gerektirmez ve kit, buradaki her bölüm atlanmış olarak çalışmaya devam eder.

Her yerdeki aynı gizli kuralları: API anahtarları ve webhook gizli anahtarları yalnızca sunucuda kalır, yalnızca NEXT_PUBLIC_/EXPO_PUBLIC_ ön ekli değerler istemciye ulaşabilir, üretim gizli değerleri hostun gizli deposunda yaşar ve geliştirme sunucusu env'i ancak yeniden başlatmada yeniden okur.

AI sağlayıcı anahtarları

Kit'in AI_PROVIDER'ı openai, anthropic, openai-compatible ve openrouter kabul eder — ayrıca varsayılan yerel yedek fake. Birini seçin; sağlayıcı anahtarı gereken tek hesaptır çünkü model kimlikleri ve fiyatları env değişkenlerinden değil kit'in veritabanı kataloğundan gelir.

OpenAI: platform.openai.com → API keys → Create new secret key → sk-… kopyalayın → OPENAI_API_KEY. Anthropic: console.anthropic.com → API Keys → Create Key → sk-ant-… → ANTHROPIC_API_KEY. İkisi de belirteç başına faturalandırır — birkaç dolarlık kredi geliştirmeyi karşılar.

OpenRouter her katalog modelini tek anahtarla yönlendirir: openrouter.ai → Keys → Create Key → sk-or-… → AI_PROVIDER=openrouter artı OPENROUTER_API_KEY; isteğe bağlı OPENROUTER_APP_NAME/OPENROUTER_SITE_URL atıf başlıkları gönderir. openai-compatible her OpenAI biçimli uç noktayı kapsar: OPENAI_COMPATIBLE_API_KEY artı OPENAI_COMPATIBLE_BASE_URL.

Doğrulayın: yeniden başlatın, bir AI işi çalıştırın ve deterministik sahte yerine gerçek model yanıtı bekleyin. Anahtarı adlandıran bir başlangıç hatası, sağlayıcı bayrağının anahtarı olmadan açık olduğu anlamına gelir. Gerçek bir yanıt ayrıca aşağıdaki Trigger.dev bölümünden JOB_PROVIDER=trigger ve kit kataloğunda etkin bir model gerektirir — AI'ı kurun o kurulumu kapsar.

# apps/web/.env.local — pick ONE provider
AI_PROVIDER=openai
OPENAI_API_KEY=sk-…

# or AI_PROVIDER=anthropic
# ANTHROPIC_API_KEY=sk-ant-…

# or AI_PROVIDER=openrouter
# OPENROUTER_API_KEY=sk-or-…

# or AI_PROVIDER=openai-compatible
# OPENAI_COMPATIBLE_API_KEY=…
# OPENAI_COMPATIBLE_BASE_URL=https://your-endpoint/v1

Trigger.dev

Ürün gerçek arka plan işi çalıştırmaları gerektirmedikçe atlayın — JOB_PROVIDER=local, işleri onları çalıştırmadan bellekte kuyruğa alır ve geliştirme için doğrudur.

1. app.trigger.dev → kaydolun → proje oluşturun.

2. İki değer kopyalayın: projenin settings veya gösterge paneli URL'sindeki proje referansı proj_… → TRIGGER_PROJECT_REF ve projenin API keys sayfasındaki gizli anahtar (geliştirme ortamı için tr_dev_…, üretim için tr_prod_…) → TRIGGER_SECRET_KEY. İkisi de yalnızca sunucuda kalır.

3. Kit'in görevleri zaten apps/web/trigger içinde yaşar ve apps/web/trigger.config.ts, TRIGGER_PROJECT_REF okur. apps/web içinden npx trigger.dev@latest dev çalıştırın — görevleri projenize kaydeder ve bunları geliştirme anahtarına karşı yerelde çalıştırır.

Doğrulayın: dev komutu kayıtlı görevleri günlüğe kaydeder; uygulamada birini kuyruğa alın ve gösterge panelinin Runs listesinde çalışmasını izleyin. Dağıtılmış ortamlar görev setini yayınlamak için corepack pnpm --filter @supastack/web trigger:deploy çalıştırır.

# apps/web/.env.local
JOB_PROVIDER=trigger
TRIGGER_PROJECT_REF=proj_…
TRIGGER_SECRET_KEY=tr_dev_…   # tr_prod_… in production

# run the worker alongside the app, from apps/web:
cd apps/web
npx trigger.dev@latest dev

S3 uyumlu depolama (Cloudflare R2)

Ürün dosya saklamadıkça atlayın — STORAGE_PROVIDER=memory geliştirme için yüklemeleri işlem içinde tutar.

Herhangi bir S3 uyumlu bucket çalışır; Cloudflare R2 ücretsiz katman dostu seçimdir. 1. dash.cloudflare.com → R2 Object Storage → Create bucket'ı açın, ad verin ve varsayılan konum ipucunu koruyun.

2. R2 genel bakışına dönüp Manage R2 API Tokens → Create API token → Object Read & Write izni, o bucket'a kapsamlı → Create'yi açın. Access Key ID, Secret Access Key ve gösterilen S3 uç noktasını — https://<account-id>.r2.cloudflarestorage.com — kopyalayın.

3. Aşağıdaki env adlarını ayarlayın. STORAGE_REGION=auto R2 geleneğidir — kit varsayılan olarak us-east-1 kullanır ve R2 de onu kabul eder. STORAGE_FORCE_PATH_STYLE, özel uç noktalar için zaten varsayılan olarak açıktır ve R2 bunu ister. Genel dosyaları sunmak ayrıca STORAGE_PUBLIC_BASE_URL veya CDN bağlantısı gerektirir; özel dosyalar daha fazlasına ihtiyaç duymaz.

Doğrulayın: yeniden başlatın ve uygulama üzerinden yükleyin — nesne R2 bucket gezgininde görünür. İmza veya 403 hatası, belirtecin o bucket'ta nesne okuma/yazma izni olmadığı anlamına gelir; doğru kapsamlı yeni bir belirteç oluşturun.

# apps/web/.env.local
STORAGE_PROVIDER=s3
STORAGE_ENDPOINT=https://<account-id>.r2.cloudflarestorage.com
STORAGE_REGION=auto
STORAGE_BUCKET=your-bucket
STORAGE_ACCESS_KEY_ID=…          # server-only
STORAGE_SECRET_ACCESS_KEY=…      # server-only
# STORAGE_PUBLIC_BASE_URL=       # optional public-URL base

Sentry veya PostHog (isteğe bağlı)

Tamamen isteğe bağlı: her gözlemlenebilirlik değeri varsayılan olarak ayarlanmamıştır ve kit onlarsız da iyi çalışır — üretimde hata raporları ve analitik istediğinizde bunu ekleyin.

Hatalar için Sentry: sentry.io → proje oluşturun → Next.js platformunu seçin → kurulum ekranı DSN https://…@….ingest.sentry.io/… gösterir → SENTRY_DSN. İstisnalar daha sonra correlation-id etiketleriyle Sentry'ye ulaşır; ücretsiz katman başlamak için yeterlidir.

Bunun yerine ürün analitiği için PostHog: posthog.com → proje oluşturun → proje API anahtarını phc_… kopyalayın → NEXT_PUBLIC_POSTHOG_KEY artı NEXT_PUBLIC_POSTHOG_HOST (https://us.i.posthog.com veya AB hostunuz). Bu ikisi tasarım gereği genel tarayıcı değerleridir; SENTRY_DSN sunucu tarafında kalır. ALERT_WEBHOOK_URL isteğe bağlı olarak hata uyarılarını Slack uyumlu bir uç noktaya gönderir.

Doğrulayın: yeniden başlatın, bir test istisnası oluşturun (veya Sentry'nin örnek olayını oynatın) ve projenin Issues listesine düştüğünü onaylayın.

# apps/web/.env.local — all optional
SENTRY_DSN=https://…@….ingest.sentry.io/…

NEXT_PUBLIC_POSTHOG_KEY=phc_…
NEXT_PUBLIC_POSTHOG_HOST=https://us.i.posthog.com

# ALERT_WEBHOOK_URL=https://hooks.slack.com/services/…

Cloudflare Turnstile

Genel formlar ve kimlik bilgisi uç noktaları için bot koruması — CAPTCHA_PROVIDER=off varsayılandır, bu yüzden kaydı yabancılara açmadan önce ekleyin. Ücretsizdir.

1. dash.cloudflare.com → Turnstile → Add widget → ad verin ve host adlarını listeleyin: geliştirme için localhost artı gerçek alan adınız → Create.

2. İki değeri de kopyalayın: Site Key — tasarım gereği geneldir, widget'ın içinde işlenir → NEXT_PUBLIC_TURNSTILE_SITE_KEY — ve sunucunun doğrulamak için kullandığı Secret Key → TURNSTILE_SECRET_KEY.

3. CAPTCHA_PROVIDER=turnstile açar; başlangıç hangi anahtar eksikse onu adlandırarak başarısız olur. Captcha rehberi widget'ın tam olarak hangi yüzeyleri koruduğunu listeler.

Doğrulayın: /auth veya iletişim formunu açın — widget işlenir; çözülmemiş meydan okumayla gönderimler reddedilir. Widget hiç yüklenmezse, gezdiğiniz host adı widget'ın listesinde değildir.

# apps/web/.env.local
CAPTCHA_PROVIDER=turnstile
NEXT_PUBLIC_TURNSTILE_SITE_KEY=0x…   # public by design
TURNSTILE_SECRET_KEY=0x…             # server-only

Kendi alan adınız

Herhangi bir kayıt şirketinden tek satın alma — Cloudflare Registrar, Porkbun, Namecheap hepsi çalışır. Buradan env'e kopyalanan hiçbir şey yok; alan adı yol boyunca yapılandırdığınız Services ID, Resend DNS'i, Turnstile host adları ve OAuth return URL'lerinde görünür.

Uygulamaya yöneltmenin iki yolu: Cloud Run için dağıtım rehberindeki alan adı eşlemesini kullanın — birkaç konsol tıklaması artı Google'ın listelediği DNS kayıtları. Veya DNS'i Cloudflare nameserver'larına taşıyın (kayıt şirketi iki kaydı değiştirir) — isteğe bağlı ama aynı zamanda R2 genel bucket'ları ve Turnstile host adlarını tek yerde yönetmenin düzenli yoludur.

Kuruluma devam etmek için Veritabanını kurun kılavuzunu okuyun.

Sık sorulan sorular

14 soru

supastack nedir?

supastack, YZ destekli SaaS ürünleri oluşturmak için modüler bir temeldir. Ortak altyapıyı bir araya getirir, böylece ürüne özgü özelliklere odaklanabilirsiniz.

Web ve mobil destekliyor mu?

Evet. supastack, web ve mobil deneyimler için başlangıç noktası olarak Next.js ve Expo uygulamaları içerir.

Hangi kimlik doğrulama dahil?

Better Auth; e-posta/parola, OTP ve sosyal girişi kapsar. Kişisel çalışma alanları hesapla birlikte sağlanır, böylece ürün kayıtları ilk günden itibaren sınırlı kalır.

YZ'yi nasıl destekliyor?

supastack; yapılandırılabilir çok sağlayıcılı YZ, kullanım takibi, bütçeler ve şifreli kendi-anahtarını-getir desteği içerir.

Abonelikler nasıl ele alınıyor?

Kit üzerine kurulu ürünler için Stripe faturalama, abonelikler ve yetkilendirmeler ücretli erişim temelini oluşturur. Sağlayıcı gizli anahtarları yalnızca sunucuda kalır.

Ürüne özgü kodum nerede durur?

Ürüne özgü özellikler ayrı bir kod tabanında kalırken ürün, supastack'in temel modüllerini yapılandırır ve entegre eder.

supastack fiyatlandırması nasıl çalışır?

Kit, ömür boyu güncellemeli tek seferlik bir satın alımdır: 249 $'a Tek Platform (geçici tanıtım fiyatı — normal fiyat 349 $ üzerinden 100 $ indirim) — Next.js (Web), Expo (iOS ve Android) veya Tauri (macOS ve Windows Masaüstü) seçiminiz — ya da tüm platformları ve tam monorepo'yu içeren 499 $'lık Tüm Platformlar Paketi (geçici tanıtım fiyatı — normal fiyat 599 $ üzerinden 100 $ indirim); ek geliştirici koltuğu başına 75 $. Kit aboneliği yok. Bu sitedeki ödeme, lisans anahtarınızı e-postayla teslim eder ve depo erişimi GitHub davetiyle sağlanır.

Çalışma alanları verilerimi nasıl sınırlar?

Kullanıcıya ait kayıtlar workspaceId ile sınırlanır. Kimlik, yetkilendirmeler, YZ kullanımı, faturalama olayları ve denetim kayıtları kişisel çalışma alanı sınırının içinde kalır.

Arka plan işleri nasıl çalışır?

Trigger.dev açık iş çalışma zamanıdır. JobRunner sözleşmesi yalnızca enqueue, status ve cancel vaat eder — iş akışı semantiği Trigger.dev'e özgü ve açık kalır.

E-posta, tanıtım yazılarından nasıl farklı?

İşlemsel e-posta, tamamlanma bildirimleri gibi ürün iş akışlarını kapsar. Soğuk tanıtım ve kampanyalar, bu kitin e-posta modülünün dışında kalan ürün konularıdır.

Mobil satın almalar nasıl çalışır?

Mobil uygulama RevenueCat ile yerel satın alma ve geri yükleme sunar; erişimi sunucunuz doğrular. Yayınlamadan önce mağaza hesaplarını yapılandırın ve cihaz testlerini tamamlayın. Web faturalandırması ayrı kalır.

YZ sağlayıcı anahtarları nerede durur?

Kendi-anahtarını-getir kimlik bilgileri şifrelidir ve yalnızca sunucuda kalır. Anahtarlar günlüklerden gizlenir; kullanım ve bütçeler çalışma alanı düzeyinde görünür kalır.

Ödeme hangi ödeme yöntemlerini kabul ediyor?

Stripe tarafından barındırılan ödeme sayfası kartları kabul eder; cüzdanlar Stripe hesabında etkinleştirildiğinde Alipay ve WeChat Pay de sunabilir — Çin'deki alıcılar için kullanışlı. Cüzdan yetkilendirmeleri eşzamansız onaylanır; ödeme tamamlanır tamamlanmaz lisans sayfası güncellenir.

Geri ödeme alabilir miyim?

Depoya erişim kazandıktan sonra supastack sonsuza kadar sizin olur, bu nedenle geri ödeme yapılamaz. Ancak içiniz rahat olsun: kendiniz veya müşterileriniz için sınırsız sayıda ürün geliştirip yayınlamak üzere ömür boyu güncellemeler içeren eksiksiz kaynak koduna sahip olursunuz. Yalnızca kodu yeniden satamaz veya depoyu bir başlangıç kiti ya da şablon olarak yeniden dağıtamazsınız.

TR
Tema