Files
Gitea Mirror Bot e7652c8dab
Some checks failed
Documentation / Build Docusaurus (push) Failing after 5m3s
Documentation / Deploy to GitHub Pages (push) Has been skipped
Sanitized mirror from private repository - 2026-04-20 01:32:01 UTC
2026-04-20 01:32:01 +00:00

87 lines
2.9 KiB
Markdown

# HolyClaude
**AI Coding Workstation (Claude Code CLI + Web UI)**
## Service Overview
| Property | Value |
|----------|-------|
| **Service Name** | holyclaude |
| **Host** | seattle |
| **Category** | AI / Development |
| **Docker Image** | `coderluii/holyclaude:latest` |
| **Compose File** | `hosts/vms/seattle/holyclaude.yaml` |
| **Port** | 3059 (container :3001) |
| **URL** | `http://seattle:3059` (Tailscale-only) |
| **Status** | Testing |
## Purpose
HolyClaude bundles the Claude Code CLI, the [siteboon/claude-code-ui](https://github.com/siteboon/claude-code-ui) web UI, multiple AI CLIs, and a headless Chromium into a single Docker image. Upstream: [github.com/CoderLuii/HolyClaude](https://github.com/CoderLuii/HolyClaude) (MIT).
Deployed on seattle as a testing sandbox for evaluating the web UI workflow.
## Access
Bound to the Tailscale interface only (`100.82.197.124:3059`). Not reachable from the public IP (YOUR_WAN_IP). Access via Tailscale from any node on the tailnet:
```
http://seattle:3059
http://100.82.197.124:3059
```
First visit prompts you to create a username/password for the UI.
## Volumes
| Container Path | Docker Volume | Purpose |
|----------------|---------------|---------|
| `/home/claude` | `holyclaude-data` | UI config, user account, Claude Code state, plugins |
| `/workspace` | `holyclaude-workspace` | Project code (WORKDIR inside the container) |
## Configuration
Environment variables set in the compose file:
| Variable | Value |
|----------|-------|
| `TZ` | `America/Los_Angeles` |
| `PUID` | `1000` |
| `PGID` | `1000` |
The image runs as `root` internally (typical for dev-workstation containers — it drops to the `claude` user for most work via s6-overlay).
## Management
```bash
# From seattle
cd /root/repos/homelab/hosts/vms/seattle
docker compose -f holyclaude.yaml ps
docker compose -f holyclaude.yaml logs -f
docker compose -f holyclaude.yaml restart
docker compose -f holyclaude.yaml pull && docker compose -f holyclaude.yaml up -d
# Tear down (keep data):
docker compose -f holyclaude.yaml down
# Tear down + wipe volumes:
docker compose -f holyclaude.yaml down -v
```
## Security Notes
- Bound to Tailscale IP only — no public exposure.
- Third-party community image; pinned to `:latest` for now since this is testing. Pin to a digest before treating as production.
- Container runs privileged-as-root internally; any project code mounted into `/workspace` is readable/writable by the container.
- The bundled UI accepts arbitrary shell commands — treat access to the UI the same as SSH to the host.
## Troubleshooting
| Issue | Check |
|-------|-------|
| UI unreachable | `docker ps --filter name=holyclaude` — container healthy? |
| Port conflict | `ss -tlnp \| grep 3059` — anything else bound to 3059? |
| Can't reach over Tailscale | `tailscale status` on client; confirm seattle is online |
| Stuck at login | First-run creates the account; if forgotten, `docker compose down -v` resets everything |