Files
AirCardIOS/docs/appwrite-console.md
T
ClaudeandClaude Opus 5.5 d1d4d621a7 feat(appwrite): Setup-Skript und Console-Anleitung
web/scripts/appwrite-setup.mjs legt Datenbank aircard, Tabelle cards
(4 Spalten) und Bucket card-images idempotent per fetch an, wartet auf
Spalten-Status available und meldet Abweichungen, ohne sie zu ändern
(--check: nichts anlegen, Exit 1 bei Fehlendem/Abweichendem).
docs/appwrite-console.md ist die Klickliste für Projekt, Plattformen,
Auth, Dienste und API-Key. Tests laufen mit node --test gegen einen
Fake-Appwrite; Vitest nimmt nur src/**/*.test.ts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 08:39:02 +00:00

72 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Appwrite-Console: Projekt „AirCard“ einrichten
Klickliste für Kenso. Dauer: etwa 5 Minuten. Console: <https://appwrite.webklar.com/console>
Alles passiert in der bestehenden Organisation. Das Schema (Datenbank, Tabelle, Bucket) legt danach das Skript `web/scripts/appwrite-setup.mjs` an – dafür musst du nichts anklicken.
## 1. Projekt anlegen
1. In der Console anmelden und die bestehende Organisation öffnen.
2. **Create project** klicken.
3. Name: `AirCard`.
4. Beim Feld **Project ID** auf das Stift-Symbol (bzw. „Edit“) klicken und `aircard` eintragen. Die ID lässt sich später nicht mehr ändern; sie muss genau `aircard` heißen.
5. **Create** klicken.
## 2. Web-Plattformen eintragen
Projekt `AirCard` → **Overview** → **Integrations** → **Platforms** → **Add platform** → **Web**.
1. Name `AirCard Website`, Hostname `aircard-ios.org` → **Create**.
2. Noch einmal **Add platform** → **Web**: Name `Entwicklung`, Hostname `localhost` → **Create**.
## 3. Auth-Einstellungen
Linke Leiste → **Auth** → **Settings**.
1. Bei **Auth methods** nur **Email/Password** eingeschaltet lassen. Ausschalten: **Magic URL**, **Email OTP**, **Phone**, **Anonymous**, **JWT** (steht dort auch **Invites**: ebenfalls aus).
2. **Session duration**: `30` Tage → **Update**.
3. **Max sessions** (Sitzungen pro Nutzer): `5` → **Update**.
4. **Limit** (Nutzerlimit): `2000` → **Update**.
5. **Password dictionary**: einschalten.
Keine E-Mail-Bestätigung nötig, Mindestlänge 8 Zeichen ist Standard – dafür ist nichts einzustellen. Die „Passwort vergessen“-Mail geht über den globalen Server-SMTP (Absender WEBklar), auch dafür ist nichts einzustellen.
## 4. Nicht benötigte Dienste abschalten
Linke Leiste → **Settings** → Reiter **Services**.
1. Ausschalten: **Functions**, **Sites**, **Messaging**, **Teams**, **GraphQL**.
2. Alles andere (Account, Avatars, Databases, Locale, Storage …) bleibt an.
## 5. API-Key `aircard-provision` anlegen
Dieser Key gehört nur dem Setup-Skript. Die Website selbst braucht ihn nicht.
1. **Overview** → **Integrations** → **API keys** → **Create API key**.
2. Name: `aircard-provision`. Ablauf (Expiration): **Never**.
3. Unter **Scopes** genau diese acht ankreuzen (Gruppe Database bzw. Storage):
- `databases.read` und `databases.write`
- `tables.read` und `tables.write`
- `columns.read` und `columns.write`
- `buckets.read` und `buckets.write`
4. **Create** klicken.
5. Auf der Seite des neuen Keys den **Secret**-Wert kopieren (Auge-Symbol zum Einblenden, dann kopieren).
## 6. Key auf dem Server eintragen
Der Key gehört in die Datei `/home/webklar/apps/.env`, nirgendwo sonst.
1. Auf dem Server die Datei öffnen, z. B. `nano /home/webklar/apps/.env`.
2. Ans Ende springen und eine neue Zeile anfügen, ohne Anführungszeichen und ohne Leerzeichen um das `=`:
```
AIRCARD_APPWRITE_API_KEY=<hier den kopierten Secret-Wert einfügen>
```
3. Speichern (in `nano`: Strg+O, Enter, Strg+X). Andere Zeilen nicht verändern.
4. Den Key **nicht im Chat teilen**, nicht in Screenshots zeigen und nirgends einchecken. Claude liest ihn nie selbst, das Skript bekommt ihn über `node --env-file=/home/webklar/apps/.env`.
## 7. Bescheid geben
Schreib Claude „Console fertig“. Danach legt Claude Datenbank `aircard`, Tabelle `cards` und Bucket `card-images` mit dem Skript an und prüft sie.