chore: initial commit — chat-saiden web chat baseline
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# chat.saiden.dev
|
||||
|
||||
A quiet channel. Spike Jonze's *Her* (2013) as a chat UI.
|
||||
|
||||
```
|
||||
chat.saiden.dev
|
||||
→ Caddy reverse-proxy (TLS via Let's Encrypt)
|
||||
→ FastAPI on marauder.saiden.dev:8765
|
||||
├─ Google OAuth (authlib) + email whitelist
|
||||
└─ WebSocket → Anthropic API streaming
|
||||
```
|
||||
|
||||
## Status
|
||||
|
||||
Phase 3 — Her-aesthetic. UI plan in `UI-PLAN.md`. Phase 1 (ttyd + CF Tunnel)
|
||||
archived in `_archive-ttyd/`.
|
||||
|
||||
## Local dev
|
||||
|
||||
```bash
|
||||
cd ~/Projects/chat-saiden
|
||||
uv sync
|
||||
cp .env.example .env
|
||||
# fill in ANTHROPIC_API_KEY, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, COOKIE_SECURE=false
|
||||
uv run python -m app.main
|
||||
# → http://127.0.0.1:8765
|
||||
```
|
||||
|
||||
Google OAuth redirect URI for local dev (add to your Google Cloud Console
|
||||
OAuth client): `http://127.0.0.1:8765/auth/callback`
|
||||
|
||||
## Files
|
||||
|
||||
| Path | What |
|
||||
|------|------|
|
||||
| `app/main.py` | FastAPI: OAuth, session, WS streaming, Anthropic client |
|
||||
| `app/templates/chat.html` | Single-page UI (chat + operator prompt) |
|
||||
| `app/templates/denied.html` | Whitelist-rejection page, Her-styled |
|
||||
| `app/static/chat.css` | Design system: warm pastels, Cormorant + Caveat |
|
||||
| `app/static/chat.js` | WebSocket, typewriter queue, label dedup, smooth scroll |
|
||||
| `pyproject.toml` | uv deps |
|
||||
| `.env.example` | env scaffold |
|
||||
| `UI-PLAN.md` | Design doctrine (Her aesthetic translated to chat) |
|
||||
| `_archive-ttyd/` | Phase 1 (ttyd + CF Tunnel + CF Access) — kept for reference |
|
||||
|
||||
## Deployment
|
||||
|
||||
Not deployed yet. Stages remaining:
|
||||
|
||||
1. Caddyfile on marauder.saiden.dev (reverse proxy chat.saiden.dev → :8765)
|
||||
2. systemd unit for the FastAPI app
|
||||
3. DNS swap: `chat.saiden.dev` CNAME → `marauder.saiden.dev` (currently broken — points
|
||||
to deleted CF tunnel from Phase 1)
|
||||
4. Google OAuth client production redirect URI: `https://chat.saiden.dev/auth/callback`
|
||||
5. Smoke test live
|
||||
|
||||
## Persona
|
||||
|
||||
System prompt currently hardcoded as BT-7274 (placeholder). Will swap to a
|
||||
dedicated **Samantha cart** when authored — see EEMS subject `project.samantha-cart`.
|
||||
Reference in New Issue
Block a user