> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sertifikasitrainer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Layanan eksternal

> Tutorial setup Resend, Mux, Cloudflare, Neon, DeepSeek, Scalev, dan integrasi lain untuk AI Mentor.

AI Mentor memakai beberapa layanan pihak ketiga. Secret-nya disimpan di **`.env` shared** lalu di-push ke Cloudflare Worker lewat `./thub secrets push`.

<CardGroup cols={2}>
  <Card title="Cloudflare" icon="cloud" href="/external/cloudflare">
    Workers, R2, Hyperdrive, API token deploy
  </Card>

  <Card title="Neon" icon="database" href="/external/neon">
    Postgres production (`DATABASE_URL`)
  </Card>

  <Card title="DeepSeek" icon="brain" href="/external/deepseek">
    AI utama — generate dokumen & chat
  </Card>

  <Card title="Gemini" icon="sparkles" href="/external/gemini">
    AI opsional / fallback
  </Card>

  <Card title="Resend" icon="mail" href="/external/resend">
    Email transaksional (invite, notifikasi)
  </Card>

  <Card title="Mux" icon="video" href="/external/mux">
    Video kelas + signed playback JWT
  </Card>

  <Card title="Scalev" icon="credit-card" href="/external/scalev">
    Payment gateway Indonesia
  </Card>
</CardGroup>

## Prioritas setup

<Steps>
  <Step title="Wajib — app jalan">
    1. [Cloudflare](/external/cloudflare) — deploy Workers + R2
    2. [Neon](/external/neon) — `DATABASE_URL` production
    3. [DeepSeek](/external/deepseek) — `DEEPSEEK_API_KEY`
    4. `BETTER_AUTH_SECRET` — generate: `openssl rand -base64 32`
  </Step>

  <Step title="Wajib untuk fitur inti">
    [Cloudflare R2](/external/cloudflare#r2-object-storage) — upload file & foto (`AWS_*` keys)
  </Step>

  <Step title="Opsional — fitur mati kalau kosong">
    [Resend](/external/resend), [Mux](/external/mux), [Scalev](/external/scalev), [Gemini](/external/gemini), `SERPAPI_API_KEY`, `REDIS_URL`
  </Step>
</Steps>

## Mapping env → layanan

| Env di `.env`                                            | Layanan                        | Wajib?               |
| -------------------------------------------------------- | ------------------------------ | -------------------- |
| `BETTER_AUTH_SECRET`                                     | Auth internal                  | Ya                   |
| `DEEPSEEK_API_KEY`                                       | DeepSeek                       | Ya                   |
| `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_S3_*` | Cloudflare R2                  | Ya                   |
| `DATABASE_URL`                                           | Neon (`.env.production.local`) | Ya (prod)            |
| `RESEND_API_KEY`, `EMAIL_FROM`                           | Resend                         | Opsional             |
| `MUX_*`                                                  | Mux Video                      | Opsional             |
| `SCALEV_*`                                               | Scalev                         | Opsional             |
| `GEMINI_API_KEY`                                         | Google Gemini                  | Opsional             |
| `CLOUDFLARE_API_TOKEN`, `CLOUDFLARE_ACCOUNT_ID`          | CI/CD deploy                   | Hanya GitHub Actions |

Daftar lengkap worker secrets: `.cloudflare/worker-secrets.keys`

## Setelah dapat API key

```bash theme={null}
# 1. Paste ke .env shared di root repo
# 2. Merge + cek
./thub env merge
./thub secrets check

# 3. Push ke Cloudflare (production)
./thub secrets push
```

Lihat juga: [Model environment](/guides/env-model) · [Secrets & Cloudflare](/guides/secrets)
