Commit graph

62 commits

Author SHA1 Message Date
docker-claude
12d75b0dc2 fix(docker): patch picomatch 4.0.3 → 4.0.4 (CVE-2026-33671)
Some checks failed
Build images / check-docker (push) Successful in 0s
Build images / scan (push) Failing after 2m18s
Build images / build-and-push (push) Has been skipped
npm@11.12.1 still bundles picomatch@4.0.3. Add a find-loop after the npm
upgrade to patch every occurrence in node_modules in place. Also restore
and clean up the MCP server install and CVE patch blocks that were
accidentally commented out.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 16:05:05 +02:00
docker-claude
a79aad9fc8 fix(security): remove MCP credentials from managed-settings.json; bump Trivy to 0.70.0
Some checks failed
Build images / check-docker (push) Successful in 1s
Build images / scan (push) Failing after 50s
Build images / build-and-push (push) Has been skipped
settings.json is COPY-ed into the image at build time. Putting MCP server
config with credential env references there risks baking tokens into the
image if placeholders are ever replaced with real values. Move MCP server
config to ~/.claude/settings.json (runtime volume mount) instead.
Managed settings now contains policy only: models, permissions, telemetry.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 16:00:37 +02:00
docker-claude
9b931bcfd7 temporarily remove mcp servers
Some checks failed
Build images / check-docker (push) Successful in 1s
Build images / scan (push) Failing after 30s
Build images / build-and-push (push) Has been skipped
2026-04-20 15:54:15 +02:00
docker-claude
526ff6dc2e Revert "feat: remove MCP servers"
Some checks failed
Build images / check-docker (push) Successful in 1s
Build images / scan (push) Failing after 1m42s
Build images / build-and-push (push) Has been skipped
This reverts commit a9ff78b494.
2026-04-20 15:32:29 +02:00
docker-claude
a9ff78b494 feat: remove MCP servers
Remove all four MCP server packages from the Dockerfile along with their
associated env vars (docker-compose.yml, .env.example) and egress allowlist
entries (squid.conf).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 15:32:05 +02:00
docker-claude
eb5f240d3e fix(docker): patch transitive CVEs in MCP server dependencies
MCP servers bundle their own copies of vulnerable packages. After global
install, patch nested node_modules in each server directly:
- @modelcontextprotocol/sdk 1.0.1 → 1.25.2 (CVE-2025-66414, CVE-2026-0621)
- picomatch 4.0.3 → 4.0.4 (CVE-2026-33671)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 15:28:20 +02:00
docker-claude
53325c4fcd stuff
Some checks failed
Build images / check-docker (push) Successful in 1s
Build images / scan (push) Failing after 55s
Build images / build-and-push (push) Has been skipped
2026-04-20 15:17:58 +02:00
docker-claude
a566b463a9 docs: update node:20-alpine references to node:24-alpine
Some checks failed
Build images / build-and-push (push) Blocked by required conditions
Build images / check-docker (push) Successful in 1s
Build images / scan (push) Has been cancelled
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 15:17:15 +02:00
docker-claude
ec329ca616 chore(docker): upgrade base image to node:24-alpine (LTS)
Node 24 (Krypton) is the current LTS release.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 15:16:52 +02:00
docker-claude
e056e5c006 chore(docker): pin npm to 11.12.1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 15:15:51 +02:00
docker-claude
19c59a2fb3 fix(docker): upgrade npm to remediate 11 HIGH CVEs in bundled dependencies
All findings are in npm's own bundled packages (cross-spawn, glob,
minimatch, tar). Upgrading npm to latest pulls in the patched versions:
- cross-spawn ≥7.0.5 (CVE-2024-21538)
- glob ≥10.5.0 (CVE-2025-64756)
- minimatch ≥9.0.6 (CVE-2026-26996, CVE-2026-27903, CVE-2026-27904)
- tar ≥7.5.11 (CVE-2026-23745, CVE-2026-23950, CVE-2026-24842,
               CVE-2026-26960, CVE-2026-29786, CVE-2026-31802)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 15:14:58 +02:00
docker-claude
484e0fecb8 revert(docker): switch back to node:20-alpine base image
Some checks failed
Build images / check-docker (push) Successful in 0s
Build images / scan (push) Failing after 57s
Build images / build-and-push (push) Has been skipped
dhi.io is unreachable on the company network, blocking apk during build.
Trivy scanning in CI provides vulnerability coverage in the meantime.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 14:28:45 +02:00
docker-claude
89a3d3dae5 security: use dhi image for the proxy as well
Some checks failed
Build images / check-docker (push) Successful in 3s
Build images / scan (push) Failing after 1m26s
Build images / build-and-push (push) Has been skipped
2026-04-16 22:52:33 +02:00
docker-claude
edeae9dc4b security: use dhi image for nodejs
Some checks failed
Build images / check-docker (push) Successful in 4s
Build images / scan (push) Failing after 27s
Build images / build-and-push (push) Has been skipped
2026-04-16 22:46:52 +02:00
docker-claude
94dadbbe8e chore(ci): pull trivy from registry mirror
Some checks failed
Build images / check-docker (push) Successful in 3s
Build images / scan (push) Failing after 31s
Build images / build-and-push (push) Has been skipped
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 12:04:24 +02:00
docker-claude
4a0f2e90fc fix(ci): replace trivy-action with docker run to fix missing binary
trivy-action@v0.35.0 expects trivy pre-installed in the runner environment.
Switch to docker run aquasec/trivy:0.69.3 which uses the Docker daemon
already available in the pipeline. Pin version via TRIVY_IMAGE env var.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 12:03:17 +02:00
docker-claude
e6b46087b3 feat(ci): generate SBOMs in scan job and attach attestations on push
Some checks failed
Build images / check-docker (push) Successful in 3s
Build images / scan (push) Failing after 46s
Build images / build-and-push (push) Has been skipped
Scan job: run Trivy before the security gate to emit a CycloneDX SBOM
for each image (exit-code 0), then run the HIGH/CRITICAL gate as before.
SBOMs are uploaded as a pipeline artifact (90-day retention) with
if: always() so they're available even when the security gate fails.

Build job: add sbom: true and provenance: true to both build-push steps
so BuildKit attaches SBOM and provenance attestations to the image
manifest in the registry.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 11:59:24 +02:00
docker-claude
530def213b feat(ci): add Trivy container security scanning before push
Some checks failed
Build images / check-docker (push) Successful in 3s
Build images / scan (push) Failing after 1m28s
Build images / build-and-push (push) Has been skipped
Add a scan job between check-docker and build-and-push. Builds each image
locally (no push, current platform only), runs Trivy v0.35.0 against it,
and fails on unfixed HIGH/CRITICAL CVEs. build-and-push only runs if both
scans pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 11:53:16 +02:00
docker-claude
cf50570733 docs(claude.md): sync with current project state
All checks were successful
Build images / check-docker (push) Successful in 3s
Build images / build-and-push (push) Successful in 5m4s
Update architecture (remove webui reference), file structure (add setup.sh,
launch.sh, launch.bat, hooks/), auth (credentials now in ~/.claude), and
development workflow (use setup.sh instead of manual .env copy).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 10:17:49 +02:00
docker-claude
3aff92bd41 chore: replace Docker Desktop references with open-source alternatives
Docker Desktop requires a commercial licence for business use. Replace all
references with free alternatives:
- macOS: Rancher Desktop (GUI) or Colima (CLI)
- Linux: Docker Engine CE (no Desktop needed at all)
- Windows: Rancher Desktop or WSL2 + Docker Engine

setup.sh detects the OS and shows platform-specific install instructions.
claude.sh defers to setup.sh for install hints to avoid duplication.
README documents all options including a WSL2 setup walkthrough.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 10:16:23 +02:00
docker-claude
f68ed674d0 feat: add non-technical user onboarding
- setup.sh: interactive wizard for Docker check and auth configuration
- launch.sh: folder-picker launcher (macOS native dialog, zenity/kdialog on Linux, text fallback)
- launch.bat: Windows launcher using PowerShell folder browser + Git Bash
- claude.sh: friendlier error messages with actionable links; prompt setup.sh if .env missing
- hooks/pre-commit: add setup.sh and launch.sh to executable enforcement
- README: add Quick Start section aimed at non-technical users

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 10:13:34 +02:00
docker-claude
51e7ab2b08 fix(proxy): close port-6443 allowlist bypass in squid ACLs
All checks were successful
Build images / check-docker (push) Successful in 3s
Build images / build-and-push (push) Successful in 5m16s
The kubectl_api ACL allowed CONNECT tunnels to any host on port 6443,
bypassing the domain allowlist entirely. Remove it and require cluster
hostnames to be added explicitly to allowed_sites instead.

Also remove the localhost and .local entries — these aren't needed for
Claude Code or the configured MCP servers.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 10:07:22 +02:00
docker-claude
698b06aafd fix: ash doesn't seem to work with the claude script
All checks were successful
Build images / check-docker (push) Successful in 3s
Build images / build-and-push (push) Successful in 5m4s
2026-04-16 09:48:42 +02:00
docker-claude
6e5744b456 fix claude install
Some checks failed
Build images / check-docker (push) Successful in 2s
Build images / build-and-push (push) Failing after 1m0s
2026-04-16 09:38:46 +02:00
docker-claude
0fa411a178 docs: updated inline docs
Some checks failed
Build images / check-docker (push) Successful in 3s
Build images / build-and-push (push) Failing after 1m5s
2026-04-15 22:43:00 +02:00
docker-claude
f4cf8056e9 docs(readme): sync with current state after webui removal
Remove webui from architecture, commands, and security table.
Update auth option 3 to reference ~/.claude instead of claude-config volume.
Drop stale registry path comment and web interface section.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 22:41:28 +02:00
docker-claude
b76d1e5e2a chore(docker): pin Claude Code install to stable release channel
Some checks failed
Build images / check-docker (push) Successful in 3s
Build images / build-and-push (push) Failing after 58s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 22:40:01 +02:00
docker-claude
27feedf65e chore(hooks): restore executable bit on hooks/pre-commit
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 22:02:15 +02:00
docker-claude
e78a302cb9 feat: remove webui
All checks were successful
Build images / check-docker (push) Successful in 3s
Build images / build-and-push (push) Successful in 5m15s
2026-04-15 21:59:08 +02:00
docker-claude
1dee611fb3 fix repository path
All checks were successful
Build images / check-docker (push) Successful in 3s
Build images / build-and-push (push) Successful in 5m46s
2026-04-15 21:39:10 +02:00
docker-claude
8b4f08e68c chore(hooks): fix executable bit on build.sh and hooks/pre-commit
All checks were successful
Build images / check-docker (push) Successful in 3s
Build images / build-and-push (push) Successful in 5m5s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 21:19:46 +02:00
docker-claude
2002ea7b32 chore(registry): use docker-public registry path
Update image references from registry.zeidler.dev/docker/playground to
registry.zeidler.dev/docker-public/playground in docker-compose.yml and build.sh.
Also bind-mount ${HOME}/.claude instead of using the claude-config named volume.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 21:19:33 +02:00
docker-claude
4edef5ac1a fix stuff finally?
All checks were successful
Build images / check-docker (push) Successful in 2s
Build images / build-and-push (push) Successful in 5m27s
2026-04-15 19:18:48 +02:00
docker-claude
1b141b200c use new native install 2026-04-15 19:18:39 +02:00
docker-claude
ab7e909c3c make sure that files are executable
All checks were successful
Build images / check-docker (push) Successful in 3s
Build images / build-and-push (push) Successful in 4m19s
2026-04-15 17:55:01 +02:00
docker-claude
c328427517 feat(proxy): allow platform.claude.com in egress allowlist 2026-04-15 17:53:26 +02:00
docker-claude
f07a30bd0b chore(hooks): enforce executable bit on claude.sh and build.sh via pre-commit hook 2026-04-15 17:16:58 +02:00
docker-claude
6a060aa8ab fix(workflow): remove build contexts from compose; build.sh uses docker build directly 2026-04-15 17:15:51 +02:00
docker-claude
3f91b27c94 refactor(claude.sh): use array for volume args, merge run into start, tighten helpers 2026-04-15 17:14:37 +02:00
docker-claude
a5af0a5427 ci: also tag builds as latest
All checks were successful
Build images / check-docker (push) Successful in 2s
Build images / build-and-push (push) Successful in 4m53s
2026-04-15 17:06:53 +02:00
docker-claude
f4a6bc0a99 fix(claude.sh): add --no-build to prevent fallback to local build 2026-04-15 17:05:44 +02:00
docker-claude
2d822305d1 refactor(images): pull from registry instead of building; add build.sh for local dev 2026-04-15 17:02:43 +02:00
docker-claude
ff9ed447c0 update workflow
All checks were successful
Build images / check-docker (push) Successful in 3s
Build images / build-and-push (push) Successful in 4m30s
2026-04-15 16:52:40 +02:00
docker-claude
50cfa9da4e fix workflow
Some checks failed
Build images / check-docker (push) Successful in 3s
Build images / build-and-push (push) Failing after 52s
2026-04-15 16:49:55 +02:00
docker-claude
1dbbbc840d ci: add Forgejo action to build and push Docker images to registry
Some checks failed
Build and push Docker images / build (./claude, claude) (push) Failing after 33s
Build and push Docker images / build (./proxy, proxy) (push) Failing after 11s
2026-04-15 08:56:25 +02:00
docker-claude
659fb3f339 feat(proxy): allow CONNECT tunnels to Kubernetes API server port 6443 2026-04-15 08:49:11 +02:00
docker-claude
1c01d49f51 feat(claude): install kubectl into container image 2026-04-15 08:47:32 +02:00
docker-claude
c3c3fcd099 feat(workspace): add --kube flag to mount $HOME/.kube read-only into container 2026-04-15 08:45:05 +02:00
docker-claude
c3875397b0 feat(security): block user home dirs and SSH/PGP key directories from workspace mount 2026-04-15 08:43:09 +02:00
docker-claude
65ac4c7011 feat(security): block mounting home and system directories as workspace 2026-04-15 08:40:50 +02:00