---
title: Ortam
description: Gitupcms'in okuduğu tüm ortam değişkenleri.
---
Değişkenler çalışma anında okunur. Bu sayede aynı build her sunucuda çalışır.

| Değişken | Zorunlu | Ne işe yarar |
| --- | --- | --- |
| `GITHUB_CLIENT_ID`, `GITHUB_CLIENT_SECRET` | Evet | GitHub OAuth uygulaması. Callback: `<BETTER_AUTH_URL>/api/auth/callback/github` |
| `BETTER_AUTH_SECRET` | Evet | En az 32 karakterlik rastgele bir değer (`openssl rand -base64 32`). Entegrasyon ve SMTP bilgilerini şifrelemek için de kullanılır |
| `BETTER_AUTH_URL` | Evet | CMS'in herkese açık URL'si |
| `DB_PATH` | | SQLite dosyası. Varsayılan: `data/gitupcms.db` |
| `HOST`, `PORT` | | Node sunucusunun dinlediği adres ve port |
| `SMTP_URL`, `EMAIL_FROM` | | Giriş kodu ve yorum e-postaları herhangi bir SMTP sunucusu üzerinden gönderilir: `smtps://user:pass@host:465` veya `smtp://user:pass@host:587`. Ayarlanmazsa e-postalar sunucu loguna yazılır |
| `AI_BASE_URL`, `AI_API_KEY`, `AI_MODEL` | | OpenAI uyumlu herhangi bir endpoint (OpenRouter, OpenAI, 9router). Fix with AI, AI Editor, çeviri ve Gitupcms SEO bununla çalışır |
| `AI_REASONING_EFFORT` | `high` | `low`, `medium` veya `high`; `reasoning_effort` olarak gönderilir. `none` hiçbir şey göndermez (bu parametreyi reddeden endpoint'ler için) |
| `PREVIEW_RUNNER` | | `1` verilirse önizleme URL'si olmayan siteler için `astro dev` çalıştırılır. Bu, sitenin kendi kodunu sizin sunucunuzda çalıştırır |
| `PLANS` | | `1` verilirse Preview, Solo, Team ve Agency planları açılır (Settings → Plan). Ayarlanmazsa her çalışma alanında tüm özellikler açık olur |
| `SCRAPER_URL` | | Google Maps scraper motoru (repodaki `scraper/`), örneğin `http://127.0.0.1:8080`. **Create sites from Google Maps** özelliğini açar |
| `SCRAPER_API_KEY` | | Motorun `SCRAPER_API_KEY` değeri; `X-API-Key` olarak gönderilir |
| `PREVIEW_DOCKER` | | Bir Node imajı, örneğin `node:24-bookworm-slim`. Önizlemeler doğrudan sunucuda değil, kısıtlanmış Docker container'larında kurulur ve çalışır (1 GB, 1 CPU, salt okunur root, yalnızca sitenin klasörü bağlanır) |
| `PREVIEW_HOST` | | Örneğin `https://*.preview.example.com`: AI Editör sayfaları script'leri çalışır halde gösterir (menüler, carousel'ler). Her site kendi alt alan adında açılır, böylece sitenin kodu CMS'e erişemez. Wildcard DNS kaydını sunucuya yönlendirin; reverse proxy bu adresleri wildcard sertifikayla `PREVIEW_PROXY_PORT`'a iletsin. Önizleme adresi ya da `PREVIEW_RUNNER` gerekir, anlık önizleme kapalı olmalı |
| `PREVIEW_PROXY_PORT` | | Canlı önizleme proxy'sinin dinlediği port (`127.0.0.1` üzerinde). Varsayılan `4322` |
| `PREVIEW_DIR` | | Önizleme kopyalarının tutulduğu yer. Varsayılan: `~/.cache/gitupcms/previews` |
| `COMMENTS_GOOGLE_CLIENT_ID`, `COMMENTS_GOOGLE_CLIENT_SECRET` | | Yorum yapanların Google ile giriş yapması (tanımlı değilse `GOOGLE_CLIENT_*` kullanılır) |
| `COMMENTS_GITHUB_CLIENT_ID`, `COMMENTS_GITHUB_CLIENT_SECRET` | | Yorum yapanların ikinci bir GitHub OAuth uygulamasıyla giriş yapması |

:::warning
`BETTER_AUTH_SECRET` değerini değiştirirseniz herkesin oturumu kapanır. S3/R2 entegrasyonlarını ve SMTP şifrelerini de yeniden girmeniz gerekir.
:::

:::tip
AI endpoint'ine sunucudan erişilebilmelidir. Kendi bilgisayarınızdaki bir `localhost` URL'si canlı ortamda çalışmaz.
:::
