No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Ramon 9d49d907a2 Container-DNS vastzetten op de LAN-resolvers
Docker gaf de container 8.8.8.8/8.8.4.4 als fallback (de host resolvt via dnsmasq
op 127.0.0.1, wat een container niet kan gebruiken). Publieke resolvers worden op
het netwerk geblokkeerd -> Chromium kreeg 'This site can't be reached' op claude.ai.

--dns 192.168.11.14 (saldc14) + 192.168.2.9
2026-07-14 14:41:26 -04:00
applications Initial commit: claude-browser lokale toggle 2026-07-06 15:00:28 -04:00
bin Container-DNS vastzetten op de LAN-resolvers 2026-07-14 14:41:26 -04:00
custom-cont-init.d Initial commit: claude-browser lokale toggle 2026-07-06 15:00:28 -04:00
.gitignore Initial commit: claude-browser lokale toggle 2026-07-06 15:00:28 -04:00
claude-browser.env.example Initial commit: claude-browser lokale toggle 2026-07-06 15:00:28 -04:00
install.sh Initial commit: claude-browser lokale toggle 2026-07-06 15:00:28 -04:00
README.md Chromium netjes afsluiten bij toggle-off 2026-07-14 14:30:17 -04:00

claude-browser

Een lokale toggle die een Chromium-in-container start die ingelogd blijft op claude.ai. Zo kun je vanaf elke machine in het LAN verder werken in dezelfde sessie — zonder telkens opnieuw in te loggen — en kan een collega even meekijken/typen. Container/computer uit = niemand erbij.

Gebaseerd op de lscr.io/linuxserver/chromium image (Selkies-desktop), draaiend op debian-p.

Wat het doet

  • Toggle: 1× = container + Chromium + claude.ai starten, nog een keer = alles stoppen.
  • Login blijft bewaard in config/ (Chromium-profiel + claude.ai-cookies).
  • Bereikbaar op het LAN zolang de host aan staat en de toggle aan is.
  • "Home"-knop: opent claude.ai opnieuw als iemand is weggeklikt.

Bestanden

Pad Functie
bin/claude-browser-toggle.sh start/stop de container (+ auto-launch Chromium op claude.ai)
bin/claude-browser-home.sh opent claude.ai opnieuw in de draaiende container
custom-cont-init.d/10-selkies-keepalive.sh verruimt de Selkies websocket-keepalive (30/120s) — draait bij elke container-start
applications/*.desktop rofi-entries ("Claude Browser (toggle)" en "Claude → home")
claude-browser.env login voor de web-UI (niet in git, zie .env.example)
config/ live browserprofiel + login (niet in git)

Installeren

git clone forgejo:ramon/claude-browser.git ~/claude-browser
cd ~/claude-browser
cp claude-browser.env.example claude-browser.env   # en zet je wachtwoord erin
./install.sh

Vereisten:

  • Docker (engine; geen compose nodig).
  • Jezelf in de docker-groep: sudo usermod -aG docker $USER → daarna uit/inloggen.
  • Voor de rofi-entries: een desktop met rofi + notify-send + xdg-open.

De repo hoort op ~/claude-browser te staan; de scripts vinden hun eigen pad, maar de paden in de .desktop-bestanden gaan uit van /home/ramon/.local/bin.

Gebruiken

Actie Hoe
Aan/uit rofi "Claude Browser (toggle)" of ~/.local/bin/claude-browser-toggle.sh
Terug naar claude.ai rofi "Claude → home" of de muis-terugknop in Chromium
Kijken op deze machine http://localhost:3000
Kijken vanaf andere machine https://<ip-host>:3001 (https + 3001, self-signed cert accepteren)

Web-login = WEB_USER + WEB_PASS uit claude-browser.env.

Eerste keer

De Selkies-image installeert Chromium on-demand. Bij de allereerste start: open de pagina, installeer Chromium via het menu, log in op claude.ai. Daarna zit alles in config/ en start Chromium voortaan vanzelf op claude.ai.

Troubleshooting

  • Andere machine: zwart scherm ná inloggen (wel geluid). De video wordt als H264 via WebCodecs gestreamd; sommige browsers (met name Firefox op Linux) kunnen dat niet decoderen. → Gebruik een Chromium-based browser, of zet in de Selkies-zijbalk Video settings de encoder op JPEG.
  • "This application requires a secure connection". Je gebruikt http:// vanaf een andere machine. → Gebruik https://<ip>:3001 (localhost mag wel over http).
  • "Restore pages?"-balk in Chromium. Onderdrukt via --hide-crash-restore-bubble (staat in de scripts). Kwam door onrein afsluiten bij verbindingsverlies.
  • Sessie viel weg bij korte hapering (keepalive ping timeout). Opgelost: Selkies' hardcoded ping_interval=20/ping_timeout=20 wordt verruimd naar 30/120 via custom-cont-init.d/10-selkies-keepalive.sh.
  • "Log opnieuw in" op claude.ai na een toggle-cyclus (reason=elevated_auth, auth_kind=device_key_missing). De claude.ai-cookie is dan nog geldig; wat weg is, is de device-key die Claude Code in de IndexedDB van het profiel bewaart. Die raakte weg doordat Chromium bij docker stop werd gekilld voordat het zijn profiel had weggeschreven. → Het toggle-script stuurt Chromium nu eerst SIGTERM en wacht tot het weg is (chromium_quit), plus S6_KILL_GRACETIME=20000 en docker stop -t 30. Zet 'm dus altijd uit via de toggle, niet met docker kill.

Beveiliging

  • Alleen LAN. Niet via Pangolin/reverse-proxy naar buiten ontsluiten — het is een open ingelogde sessie op je Anthropic-account. Eventueel wél achter NPM voor een interne hostname + net cert.
  • claude-browser.env (wachtwoord) en config/ (login-cookies) staan bewust in .gitignore.