---
title: Kendiniz çalıştırın
description: Tek bir Node süreci ve tek bir SQLite dosyası.
sidebar:
  label: Genel bakış
---
Gitupcms, SQLite veritabanı (better-sqlite3) kullanan bir Astro SSR uygulamasıdır (`@astrojs/node`, standalone). Node 22+ ve pnpm gerektirir.

- cms/
  - src/
    - lib/ (algılama, GitHub, çalışma alanları, medya, SEO, yorumlar)
    - components/ (React adaları ve Bejamas UI)
    - pages/ (Astro sayfaları ve API rotaları)
  - kit/i18n/ (sitelere kopyalanan dil kiti)
  - widget/ (yorum gömme bileşeni)
  - .env.example
- docs/ (bu site)

## Yerel [#local]

1. **Create a GitHub OAuth app**

    Callback URL: `http://localhost:4321/api/auth/callback/github`.

2. **Configure**

    ```bash
    cd cms
    cp .env.example .env   # GitHub OAuth app + BETTER_AUTH_SECRET
    ```

3. **Run**

    ```bash
    pnpm install
    pnpm dev               # http://localhost:4321
    ```
    SQLite tabloları açılışta oluşturulur.

## Production derlemesi [#production-build]

```bash
pnpm install --frozen-lockfile
pnpm build                       # also builds the comments widget
node ./dist/server/entry.mjs     # HOST and PORT from the environment
```

## Docker

`cms/` içinde bir `Dockerfile` ve bir `docker-compose.yml` bulunur. Bu sayede CMS, Docker kurulu her makinede aynı şekilde çalışır; ana makinede Node, pnpm veya derleme araçlarına gerek kalmaz.

```bash
cd cms
cp .env.example .env               # GitHub OAuth app + BETTER_AUTH_SECRET
docker compose up -d --build       # http://localhost:4321
```

- SQLite veritabanı ve önizleme checkout'ları `gitupcms-data` volume'unda (container içinde `/data`) tutulur. Güncellemek için `git pull` ve ardından `docker compose up -d --build` çalıştırmanız yeterlidir; verileriniz korunur.
- Port `127.0.0.1` adresine bağlanır. Sunucuda HTTPS için önüne Caddy veya başka bir proxy koyun; [Sunucu](/tr/self-hosting/server) sayfasında anlatıldığı gibi.
- `PREVIEW_RUNNER=1` ayarlandığında önizlemeler CMS container'ının içinde, aynı kullanıcıyla çalışır. Bunu yalnızca güvendiğiniz siteler için açın. `PREVIEW_DOCKER` değişkenini ayarlamayın, çünkü container'ın içinde Docker yoktur.

Tüm değişkenler için [Ortam](/tr/self-hosting/environment) sayfasına, eksiksiz bir Linux kurulumu için [Sunucu](/tr/self-hosting/server) sayfasına bakın.
