# Website mit KI bauen — nerdag.ch

Ihre Website läuft bei nerdag.ch in einem eigenen Container. Mit dem Token Ihrer
Applikation kann Ihre KI (Claude Code, Codex, …) die Seite direkt bauen und
veröffentlichen — Sie beschreiben, die KI baut, ein Befehl stellt es live.

## 1. Token

Das Token (`nsk_…`) bekommen Sie von nerdag.ch oder aus dem Kundenportal. Es gilt
für genau eine Website. Behandeln Sie es wie ein Passwort; ein neues Token macht
das alte ungültig.

## 2. MCP-Server einrichten

Laden Sie die Datei herunter (braucht nur Node 18+, keine Pakete):

```bash
curl -fsSL -o nerdag-site-mcp.mjs https://offers.nerdag.ch/mcp/nerdag-site-mcp.mjs
```

**Claude Code**

```bash
claude mcp add nerdag-site -e NERDAG_SITE_TOKEN=nsk_IHR_TOKEN -- node ./nerdag-site-mcp.mjs
```

**Codex** (`~/.codex/config.toml`)

```toml
[mcp_servers.nerdag-site]
command = "node"
args = ["/pfad/zu/nerdag-site-mcp.mjs"]
env = { NERDAG_SITE_TOKEN = "nsk_IHR_TOKEN" }
```

Danach stehen der KI die Werkzeuge `site_status`, `site_regeln`, `site_deploy`,
`site_logs`, `site_rollback`, `site_crawlen` zur Verfügung.

## 3. Bauen

Die KI ist angewiesen, Sie zuerst kurz zu **interviewen** (Zweck, Zielgruppe, Seiten,
Stil, Inhalte, Funktionen, Angaben für Impressum und Datenschutz), einen Plan zu zeigen
und dann in Runden zu arbeiten: erster Stand online → Ihre Rückmeldung → Verfeinerung.
Antworten Sie ruhig knapp; die KI schlägt jeweils Standards vor. **Impressum und
Datenschutzerklärung** legt sie verpflichtend an — halten Sie Firmenangaben (Adresse,
UID/Handelsregister, Kontakt) bereit.

Haben Sie den MCP-Server schon länger installiert: die Arbeitsanweisungen kommen live
vom Server (`site_regeln`), Sie müssen nichts neu laden. Ein `curl`-Download der Datei
bringt trotzdem die neueste Version.


Sagen Sie Ihrer KI zum Beispiel:

> Lies die Regeln meiner Website (site_regeln), baue mir eine moderne
> Unternehmensseite mit Kontaktformular in Astro und veröffentliche sie mit
> site_deploy. Prüfe danach mit site_logs, ob alles läuft.

Die KI kennt über `site_regeln` den Port, die Limits und was in einer
`docker-compose.yml` erlaubt ist. Eigene Container (Node, PHP, Python,
Datenbank, Cache) sind möglich — unprivilegiert, mit festen Ressourcen.

## Ohne MCP: die API direkt

```bash
export TOKEN=nsk_IHR_TOKEN
curl -sS -H "Authorization: Bearer $TOKEN" https://offers.nerdag.ch/api/site
curl -sS -H "Authorization: Bearer $TOKEN" https://offers.nerdag.ch/api/site/regeln
tar czf site.tgz --exclude node_modules --exclude .git -C mein-projekt .
curl -sS -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/gzip" \
     --data-binary @site.tgz https://offers.nerdag.ch/api/site/deploy
curl -sS -H "Authorization: Bearer $TOKEN" "https://offers.nerdag.ch/api/site/logs?zeilen=100"
curl -sS -X POST -H "Authorization: Bearer $TOKEN" https://offers.nerdag.ch/api/site/rollback
```

## Was passiert bei einem Deploy

1. Paket wird entpackt und gegen die Regeln geprüft (Ablehnung mit Begründung)
2. bisheriger Stand wird gestoppt und aufbewahrt
3. `docker compose up -d --build`
4. Warten, bis die Seite antwortet — sonst automatisch zurück auf den alten Stand

Datenbank-Volumes bleiben über Deploys hinweg erhalten.
