Initial commit - NUC server configuration and docs

- CLAUDE.md: Server instructions and service reference
- docs/: Persistent documentation (architecture, guides)
- .artifacts/: Session-generated notes
- playwriter-browser/: Remote browser container config

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Alejandro Gutiérrez
2026-02-01 20:49:20 +00:00
commit 390eda1595
25 changed files with 3664 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
version: '3.8'
services:
playwriter-browser:
build:
context: .
dockerfile: Dockerfile
container_name: playwriter-browser
hostname: playwriter-browser
ports:
- "5901:5900" # VNC (use 5901 to avoid conflicts)
- "6081:6080" # noVNC web interface
- "19988:19988" # Playwriter WebSocket relay
- "9222:9222" # Chrome DevTools Protocol
volumes:
# Persist full Chrome profile (login sessions, cookies, localStorage, bookmarks, passwords)
- chrome-profile:/root/.config/google-chrome
# Persist keyrings for encrypted credentials (gnome-keyring)
- browser-keyring:/root/.local/share/keyrings
# Persist session data for quick restore
- browser-sessions:/root/.config/google-chrome/Default/Sessions
environment:
- DISPLAY=:99
- PLAYWRITER_TOKEN=${PLAYWRITER_TOKEN:-nuc-browser-token}
# Enable password saving in Chrome
- CHROME_ENABLE_PASSWORDS=true
# Chrome requires shared memory for stability
shm_size: 2gb
# Chrome capabilities
cap_add:
- SYS_ADMIN
security_opt:
- seccomp:unconfined
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pgrep -x chrome > /dev/null || exit 1"]
interval: 30s
timeout: 10s
start_period: 60s
retries: 3
volumes:
chrome-profile:
name: playwriter-chrome-profile
browser-keyring:
name: playwriter-browser-keyring
browser-sessions:
name: playwriter-browser-sessions