From 41b1af1e3bd23a783d8982de7c825f59f6a72db8 Mon Sep 17 00:00:00 2001 From: Boris Kamenev Date: Sat, 11 Apr 2026 14:58:50 +0300 Subject: [PATCH] update doc --- CLAUDE.md | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index 6acb670..4c1d06b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -109,6 +109,38 @@ Tests live in `backlogger/tests.py` only. The CI only tests the `backlogger` app | Staging/dev | https://debug.killmybacklog.com | `django-dev` | 8081 | | Gitea | https://git.k-boris.tech | `gitea` | 3000 | | Woodpecker | https://ci.k-boris.tech | `woodpecker-server` | 8000 | +| Dozzle (logs) | https://logs.k-boris.tech | `dozzle` | 8888 | + +## Monitoring & Logs + +**Dozzle** at https://logs.k-boris.tech provides a web UI for all Docker container logs. +Login: username `boris` (password in 1Password / your password manager). +Use this instead of SSH log-tailing during development. + +Auth config lives at `/opt/services/dozzle/users.yml` on the VPS. +To update password: `docker run --rm httpd:alpine htpasswd -nbB boris 'newpassword'` → paste hash into users.yml. + +## Claude Code tooling + +### Playwright MCP (browser + screenshots) + +Allows Claude to browse the live sites and take screenshots without manual intervention. + +Add to `~/.claude/settings.json`: + +```json +{ + "mcpServers": { + "playwright": { + "command": "npx", + "args": ["@playwright/mcp@latest", "--headless"] + } + } +} +``` + +Requires Node.js / npx available on the machine. `@playwright/mcp` is downloaded on first use. +Restart Claude Code after editing settings.json. ## Workflow @@ -116,4 +148,4 @@ Tests live in `backlogger/tests.py` only. The CI only tests the `backlogger` app 2. Push to `dev` → CI runs tests + deploys to staging automatically 3. Check staging at https://debug.killmybacklog.com 4. Merge/push to `main` → CI deploys to production -5. Tail production logs via SSH if something looks wrong +5. Check logs at https://logs.k-boris.tech instead of SSH if something looks wrong