Sanitized mirror from private repository - 2026-04-19 08:46:29 UTC
This commit is contained in:
86
docs/services/individual/holyclaude.md
Normal file
86
docs/services/individual/holyclaude.md
Normal file
@@ -0,0 +1,86 @@
|
||||
# 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 |
|
||||
Reference in New Issue
Block a user