{"id":46821592,"url":"https://github.com/beevelop/docker-claude","last_synced_at":"2026-03-10T09:12:17.937Z","repository":{"id":341811107,"uuid":"1171568260","full_name":"beevelop/docker-claude","owner":"beevelop","description":"Remote Claude Code container image for 24/7 headless operation. Based on node:22-bookworm-slim with Claude Code CLI pre-installed. Supports remote control via Claude mobile/web app, env-based auth (API key or OAuth token), one-time init commands, and persistent config volumes. Multi-arch (amd64/arm64).","archived":false,"fork":false,"pushed_at":"2026-03-03T14:29:25.000Z","size":9,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"latest","last_synced_at":"2026-03-03T14:43:19.323Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/beevelop.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-03T11:24:38.000Z","updated_at":"2026-03-03T14:29:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/beevelop/docker-claude","commit_stats":null,"previous_names":["beevelop/docker-claude"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/beevelop/docker-claude","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beevelop%2Fdocker-claude","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beevelop%2Fdocker-claude/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beevelop%2Fdocker-claude/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beevelop%2Fdocker-claude/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/beevelop","download_url":"https://codeload.github.com/beevelop/docker-claude/tar.gz/refs/heads/latest","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beevelop%2Fdocker-claude/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30328336,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-10T09:12:17.298Z","updated_at":"2026-03-10T09:12:17.929Z","avatar_url":"https://github.com/beevelop.png","language":"Shell","readme":"# beevelop/claude\n\nDocker image for [Claude Code](https://code.claude.com/) with remote control support. Designed for 24/7 headless operation on a remote server, accessible via the Claude mobile/web app.\n\nBased on `ubuntu:24.04` with a full developer toolchain (Node.js 22, Python 3, build-essential, ripgrep, fzf, etc.) and Claude Code CLI pre-installed via the official installer.\n\n## Quick Start\n\n```bash\ndocker run -d \\\n  --name claude \\\n  --restart unless-stopped \\\n  -e DEPLOY_KEY_B64=\"$(base64 \u003c deploy_key | tr -d '\\n')\" \\\n  -e GIT_REPO=git@github.com:your-org/your-repo.git \\\n  -e GIT_USER_NAME=\"Claude Code\" \\\n  -e GIT_USER_EMAIL=\"claude@example.com\" \\\n  -v claude_config:/home/developer/.claude \\\n  -v claude_workspace:/workspace \\\n  --tty --interactive \\\n  beevelop/claude:latest\n```\n\n## First Launch — Interactive Login\n\nRemote control mode requires an OAuth login (API keys are **not** supported). On first launch, you must attach to the container and complete the login flow:\n\n1. **Start the container** (see Quick Start above).\n\n2. **Attach to the running container:**\n   ```bash\n   docker attach claude\n   ```\n\n3. **Complete the OAuth login** — the entrypoint will automatically run `claude login`. Follow the URL printed in the terminal to authenticate in your browser.\n\n4. **After login succeeds**, press `Ctrl+C` to continue. The entrypoint will then launch `claude remote-control`.\n\n5. **Detach from the container** with `Ctrl+P` then `Ctrl+Q` (Docker's detach sequence). The container continues running in the background.\n\nSubsequent container restarts will use the persisted credentials and skip the login step entirely.\n\n## Credential Storage \u0026 Persistence\n\nClaude Code stores its credentials in these locations inside the container:\n\n| Path | Purpose |\n|------|---------|\n| `/home/developer/.claude/.credentials.json` | OAuth tokens (access + refresh) |\n| `/home/developer/.claude.json` | Account metadata and onboarding state |\n| `/home/developer/.claude/` | Full config directory (credentials, settings, history) |\n\nTo persist credentials across container restarts, mount a volume at `/home/developer/.claude`:\n\n```yaml\nvolumes:\n  - claude_config:/home/developer/.claude\n```\n\nThe image pre-seeds `/home/developer/.claude.json` with onboarding state so Claude Code does not prompt for initial setup.\n\n## Environment Variables\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `DEPLOY_KEY_B64` | No | Base64-encoded SSH private key for git authentication |\n| `GIT_REPO` | No | SSH clone URL (e.g., `git@github.com:org/repo.git`) |\n| `GIT_BRANCH` | No | Branch to clone (defaults to repo default) |\n| `GIT_USER_NAME` | No | Git commit author name |\n| `GIT_USER_EMAIL` | No | Git commit author email |\n| `CLAUDE_PERMISSION_MODE` | No | Permission mode for `remote-control`: `default`, `acceptEdits` (default), `bypassPermissions`, `dontAsk`, `plan` |\n| `CLAUDE_SESSION_NAME` | No | Custom session title visible in claude.ai/code (e.g., `\"My Project\"`) |\n| `INIT_COMMAND` | No | One-time setup command (runs once on first launch, tracked via stamp file) |\n| `CLAUDE_EXTRA_ARGS` | No | Extra flags passed to `claude remote-control` |\n\n## Git Authentication\n\nThe image supports SSH deploy keys for git clone/push. GitHub host keys are baked into the image at build time, so there is no interactive prompt.\n\n1. Generate a deploy key:\n   ```bash\n   ssh-keygen -t ed25519 -f deploy_key -N \"\"\n   ```\n\n2. Add `deploy_key.pub` as a deploy key to your GitHub repo (with write access).\n\n3. Base64-encode the private key and pass it via the `DEPLOY_KEY_B64` environment variable:\n   ```bash\n   base64 \u003c deploy_key | tr -d '\\n'\n   ```\n\nOn first start, if `GIT_REPO` is set and `/workspace` is empty, the entrypoint clones the repository automatically.\n\n## Volumes\n\n| Path | Purpose |\n|------|---------|\n| `/home/developer/.claude` | Claude credentials, config, and history (persists login across restarts) |\n| `/workspace` | Project files (auto-cloned from `GIT_REPO`) |\n\n## BeeCompose Deployment\n\nSee the [BeeCompose claude-code service](https://github.com/beevelop/beecompose/tree/main/services/claude-code) for a production-ready Docker Compose setup with health checks, logging, and secrets management.\n\n## Versioning\n\nThis image uses [CalVer](https://calver.org/) (`YYYY.MM.MICRO`).\n\n## License\n\nCopyright (c) 2025-2026 [Maik Hummel](https://www.beevelop.com). Licensed under the [MIT License](LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeevelop%2Fdocker-claude","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbeevelop%2Fdocker-claude","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeevelop%2Fdocker-claude/lists"}