the universal sandbox runtime for agents and humans. pocketenv.io
sandbox openclaw agent claude-code vercel-sandbox deno-sandbox cloudflare-sandbox atproto sprites daytona
7
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add CF sandbox deployments and workflow matrix

+1536
+16
.github/workflows/deploy.yml
··· 10 10 jobs: 11 11 deploy: 12 12 runs-on: ubuntu-latest 13 + strategy: 14 + matrix: 15 + sandbox: 16 + [ 17 + amp, 18 + claude, 19 + codex, 20 + copilot, 21 + crush, 22 + gemini, 23 + kilo, 24 + kiro, 25 + openclaw, 26 + opencode, 27 + ] 13 28 steps: 14 29 - name: Checkout repository 15 30 uses: actions/checkout@v4 ··· 29 44 env: 30 45 CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} 31 46 run: | 47 + cp -r deploy/${{ matrix.sandbox }}/* . 32 48 bunx wrangler deploy
+48
apps/cf-sandbox/deploy/amp/Dockerfile
··· 1 + FROM node:24-slim 2 + 3 + COPY --from=docker.io/cloudflare/sandbox:0.7.5 /container-server/sandbox /sandbox 4 + 5 + RUN echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list 6 + 7 + RUN apt-get update && apt-get install -y --no-install-recommends \ 8 + openssh-client \ 9 + git \ 10 + curl \ 11 + ca-certificates \ 12 + gnupg \ 13 + unzip \ 14 + python3 \ 15 + build-essential 16 + 17 + RUN curl -sLf --retry 3 --tlsv1.2 --proto "=https" 'https://packages.doppler.com/public/cli/gpg.DE2A7741A397C129.key' | gpg --dearmor | tee /etc/apt/keyrings/doppler.gpg >/dev/null \ 18 + && echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list \ 19 + && apt-get update && apt-get install -y doppler && doppler --version 20 + 21 + RUN curl -fsSL https://tailscale.com/install.sh | sh 22 + 23 + RUN mkdir -p /root/.npm-global && npm config set prefix "/root/.npm-global" 24 + 25 + ENV PATH="/root/.npm-global/bin:${PATH}" 26 + 27 + RUN npm install -g \ 28 + @sourcegraph/amp \ 29 + pm2 30 + 31 + RUN curl -fsSL https://deno.land/install.sh | sh 32 + 33 + RUN curl -fsSL https://bun.sh/install | bash 34 + 35 + ENV PATH="/root/.deno/bin:/root/.local/bin:${PATH}" 36 + 37 + RUN echo 'PATH="$HOME/.deno/bin:$HOME/.local/bin:$PATH"' >> ~/.bashrc 38 + 39 + WORKDIR /workspace 40 + 41 + ENV COMMAND_TIMEOUT_MS=300000 42 + 43 + # Required during local development to access exposed ports 44 + EXPOSE 8080 45 + EXPOSE 18789 46 + EXPOSE 3000/tcp 47 + 48 + ENTRYPOINT ["/sandbox"]
+104
apps/cf-sandbox/deploy/amp/wrangler.jsonc
··· 1 + /** 2 + * For more details on how to configure Wrangler, refer to: 3 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 4 + */ 5 + /** 6 + * For more details on how to configure Wrangler, refer to: 7 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 8 + */ 9 + { 10 + "$schema": "node_modules/wrangler/config-schema.json", 11 + "name": "amp", 12 + "main": "src/index.ts", 13 + "compatibility_date": "2025-05-06", 14 + "compatibility_flags": ["nodejs_compat"], 15 + "observability": { 16 + "enabled": true, 17 + }, 18 + /** 19 + * Smart Placement 20 + * Docs: https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 21 + */ 22 + // "placement": { "mode": "smart" } 23 + /** 24 + * Bindings 25 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 26 + * databases, object storage, AI inference, real-time communication and more. 27 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 28 + */ 29 + /** 30 + * Environment Variables 31 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 32 + */ 33 + // "vars": { "MY_VARIABLE": "production_value" } 34 + "vars": { "SANDBOX_TRANSPORT": "websocket" }, 35 + /** 36 + * Note: Use secrets to store sensitive data. 37 + * https://developers.cloudflare.com/workers/configuration/secrets/ 38 + */ 39 + /** 40 + * Static Assets 41 + * https://developers.cloudflare.com/workers/static-assets/binding/ 42 + */ 43 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 44 + /** 45 + * Service Bindings (communicate between multiple Workers) 46 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 47 + */ 48 + // "services": [{ "binding": "MY_SERVICE", "service": "my-service" }] 49 + "containers": [ 50 + { 51 + "class_name": "Sandbox", 52 + "image": "./Dockerfile", 53 + "instance_type": "standard-1", 54 + }, 55 + ], 56 + "durable_objects": { 57 + "bindings": [ 58 + { 59 + "class_name": "Sandbox", 60 + "name": "Sandbox", 61 + }, 62 + ], 63 + }, 64 + "migrations": [ 65 + { 66 + "new_sqlite_classes": ["Sandbox"], 67 + "tag": "v1", 68 + }, 69 + ], 70 + "hyperdrive": [ 71 + { 72 + "binding": "HYPERDRIVE", 73 + "id": "45a57339b01e45559b753ffcacbc20e4", 74 + }, 75 + ], 76 + /** 77 + * Smart Placement 78 + * https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 79 + */ 80 + // "placement": { "mode": "smart" } 81 + /** 82 + * Bindings 83 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 84 + * databases, object storage, AI inference, real-time communication and more. 85 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 86 + */ 87 + /** 88 + * Environment Variables 89 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 90 + * Note: Use secrets to store sensitive data. 91 + * https://developers.cloudflare.com/workers/configuration/secrets/ 92 + */ 93 + // "vars": { "MY_VARIABLE": "production_value" } 94 + /** 95 + * Static Assets 96 + * https://developers.cloudflare.com/workers/static-assets/binding/ 97 + */ 98 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 99 + /** 100 + * Service Bindings (communicate between multiple Workers) 101 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 102 + */ 103 + // "services": [ { "binding": "MY_SERVICE", "service": "my-service" } ] 104 + }
+48
apps/cf-sandbox/deploy/claude/Dockerfile
··· 1 + FROM node:24-slim 2 + 3 + COPY --from=docker.io/cloudflare/sandbox:0.7.5 /container-server/sandbox /sandbox 4 + 5 + RUN echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list 6 + 7 + RUN apt-get update && apt-get install -y --no-install-recommends \ 8 + openssh-client \ 9 + git \ 10 + curl \ 11 + ca-certificates \ 12 + gnupg \ 13 + unzip \ 14 + python3 \ 15 + build-essential 16 + 17 + RUN curl -sLf --retry 3 --tlsv1.2 --proto "=https" 'https://packages.doppler.com/public/cli/gpg.DE2A7741A397C129.key' | gpg --dearmor | tee /etc/apt/keyrings/doppler.gpg >/dev/null \ 18 + && echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list \ 19 + && apt-get update && apt-get install -y doppler && doppler --version 20 + 21 + RUN curl -fsSL https://tailscale.com/install.sh | sh 22 + 23 + RUN mkdir -p /root/.npm-global && npm config set prefix "/root/.npm-global" 24 + 25 + ENV PATH="/root/.npm-global/bin:${PATH}" 26 + 27 + RUN npm install -g \ 28 + @anthropic-ai/claude-code \ 29 + pm2 30 + 31 + RUN curl -fsSL https://deno.land/install.sh | sh 32 + 33 + RUN curl -fsSL https://bun.sh/install | bash 34 + 35 + ENV PATH="/root/.deno/bin:/root/.local/bin:${PATH}" 36 + 37 + RUN echo 'PATH="$HOME/.deno/bin:$HOME/.local/bin:$PATH"' >> ~/.bashrc 38 + 39 + WORKDIR /workspace 40 + 41 + ENV COMMAND_TIMEOUT_MS=300000 42 + 43 + # Required during local development to access exposed ports 44 + EXPOSE 8080 45 + EXPOSE 18789 46 + EXPOSE 3000/tcp 47 + 48 + ENTRYPOINT ["/sandbox"]
+104
apps/cf-sandbox/deploy/claude/wrangler.jsonc
··· 1 + /** 2 + * For more details on how to configure Wrangler, refer to: 3 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 4 + */ 5 + /** 6 + * For more details on how to configure Wrangler, refer to: 7 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 8 + */ 9 + { 10 + "$schema": "node_modules/wrangler/config-schema.json", 11 + "name": "claude", 12 + "main": "src/index.ts", 13 + "compatibility_date": "2025-05-06", 14 + "compatibility_flags": ["nodejs_compat"], 15 + "observability": { 16 + "enabled": true, 17 + }, 18 + /** 19 + * Smart Placement 20 + * Docs: https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 21 + */ 22 + // "placement": { "mode": "smart" } 23 + /** 24 + * Bindings 25 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 26 + * databases, object storage, AI inference, real-time communication and more. 27 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 28 + */ 29 + /** 30 + * Environment Variables 31 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 32 + */ 33 + // "vars": { "MY_VARIABLE": "production_value" } 34 + "vars": { "SANDBOX_TRANSPORT": "websocket" }, 35 + /** 36 + * Note: Use secrets to store sensitive data. 37 + * https://developers.cloudflare.com/workers/configuration/secrets/ 38 + */ 39 + /** 40 + * Static Assets 41 + * https://developers.cloudflare.com/workers/static-assets/binding/ 42 + */ 43 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 44 + /** 45 + * Service Bindings (communicate between multiple Workers) 46 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 47 + */ 48 + // "services": [{ "binding": "MY_SERVICE", "service": "my-service" }] 49 + "containers": [ 50 + { 51 + "class_name": "Sandbox", 52 + "image": "./Dockerfile", 53 + "instance_type": "standard-1", 54 + }, 55 + ], 56 + "durable_objects": { 57 + "bindings": [ 58 + { 59 + "class_name": "Sandbox", 60 + "name": "Sandbox", 61 + }, 62 + ], 63 + }, 64 + "migrations": [ 65 + { 66 + "new_sqlite_classes": ["Sandbox"], 67 + "tag": "v1", 68 + }, 69 + ], 70 + "hyperdrive": [ 71 + { 72 + "binding": "HYPERDRIVE", 73 + "id": "45a57339b01e45559b753ffcacbc20e4", 74 + }, 75 + ], 76 + /** 77 + * Smart Placement 78 + * https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 79 + */ 80 + // "placement": { "mode": "smart" } 81 + /** 82 + * Bindings 83 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 84 + * databases, object storage, AI inference, real-time communication and more. 85 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 86 + */ 87 + /** 88 + * Environment Variables 89 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 90 + * Note: Use secrets to store sensitive data. 91 + * https://developers.cloudflare.com/workers/configuration/secrets/ 92 + */ 93 + // "vars": { "MY_VARIABLE": "production_value" } 94 + /** 95 + * Static Assets 96 + * https://developers.cloudflare.com/workers/static-assets/binding/ 97 + */ 98 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 99 + /** 100 + * Service Bindings (communicate between multiple Workers) 101 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 102 + */ 103 + // "services": [ { "binding": "MY_SERVICE", "service": "my-service" } ] 104 + }
+48
apps/cf-sandbox/deploy/codex/Dockerfile
··· 1 + FROM node:24-slim 2 + 3 + COPY --from=docker.io/cloudflare/sandbox:0.7.5 /container-server/sandbox /sandbox 4 + 5 + RUN echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list 6 + 7 + RUN apt-get update && apt-get install -y --no-install-recommends \ 8 + openssh-client \ 9 + git \ 10 + curl \ 11 + ca-certificates \ 12 + gnupg \ 13 + unzip \ 14 + python3 \ 15 + build-essential 16 + 17 + RUN curl -sLf --retry 3 --tlsv1.2 --proto "=https" 'https://packages.doppler.com/public/cli/gpg.DE2A7741A397C129.key' | gpg --dearmor | tee /etc/apt/keyrings/doppler.gpg >/dev/null \ 18 + && echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list \ 19 + && apt-get update && apt-get install -y doppler && doppler --version 20 + 21 + RUN curl -fsSL https://tailscale.com/install.sh | sh 22 + 23 + RUN mkdir -p /root/.npm-global && npm config set prefix "/root/.npm-global" 24 + 25 + ENV PATH="/root/.npm-global/bin:${PATH}" 26 + 27 + RUN npm install -g \ 28 + @openai/codex \ 29 + pm2 30 + 31 + RUN curl -fsSL https://deno.land/install.sh | sh 32 + 33 + RUN curl -fsSL https://bun.sh/install | bash 34 + 35 + ENV PATH="/root/.deno/bin:/root/.local/bin:${PATH}" 36 + 37 + RUN echo 'PATH="$HOME/.deno/bin:$HOME/.local/bin:$PATH"' >> ~/.bashrc 38 + 39 + WORKDIR /workspace 40 + 41 + ENV COMMAND_TIMEOUT_MS=300000 42 + 43 + # Required during local development to access exposed ports 44 + EXPOSE 8080 45 + EXPOSE 18789 46 + EXPOSE 3000/tcp 47 + 48 + ENTRYPOINT ["/sandbox"]
+104
apps/cf-sandbox/deploy/codex/wrangler.jsonc
··· 1 + /** 2 + * For more details on how to configure Wrangler, refer to: 3 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 4 + */ 5 + /** 6 + * For more details on how to configure Wrangler, refer to: 7 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 8 + */ 9 + { 10 + "$schema": "node_modules/wrangler/config-schema.json", 11 + "name": "codex", 12 + "main": "src/index.ts", 13 + "compatibility_date": "2025-05-06", 14 + "compatibility_flags": ["nodejs_compat"], 15 + "observability": { 16 + "enabled": true, 17 + }, 18 + /** 19 + * Smart Placement 20 + * Docs: https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 21 + */ 22 + // "placement": { "mode": "smart" } 23 + /** 24 + * Bindings 25 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 26 + * databases, object storage, AI inference, real-time communication and more. 27 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 28 + */ 29 + /** 30 + * Environment Variables 31 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 32 + */ 33 + // "vars": { "MY_VARIABLE": "production_value" } 34 + "vars": { "SANDBOX_TRANSPORT": "websocket" }, 35 + /** 36 + * Note: Use secrets to store sensitive data. 37 + * https://developers.cloudflare.com/workers/configuration/secrets/ 38 + */ 39 + /** 40 + * Static Assets 41 + * https://developers.cloudflare.com/workers/static-assets/binding/ 42 + */ 43 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 44 + /** 45 + * Service Bindings (communicate between multiple Workers) 46 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 47 + */ 48 + // "services": [{ "binding": "MY_SERVICE", "service": "my-service" }] 49 + "containers": [ 50 + { 51 + "class_name": "Sandbox", 52 + "image": "./Dockerfile", 53 + "instance_type": "standard-1", 54 + }, 55 + ], 56 + "durable_objects": { 57 + "bindings": [ 58 + { 59 + "class_name": "Sandbox", 60 + "name": "Sandbox", 61 + }, 62 + ], 63 + }, 64 + "migrations": [ 65 + { 66 + "new_sqlite_classes": ["Sandbox"], 67 + "tag": "v1", 68 + }, 69 + ], 70 + "hyperdrive": [ 71 + { 72 + "binding": "HYPERDRIVE", 73 + "id": "45a57339b01e45559b753ffcacbc20e4", 74 + }, 75 + ], 76 + /** 77 + * Smart Placement 78 + * https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 79 + */ 80 + // "placement": { "mode": "smart" } 81 + /** 82 + * Bindings 83 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 84 + * databases, object storage, AI inference, real-time communication and more. 85 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 86 + */ 87 + /** 88 + * Environment Variables 89 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 90 + * Note: Use secrets to store sensitive data. 91 + * https://developers.cloudflare.com/workers/configuration/secrets/ 92 + */ 93 + // "vars": { "MY_VARIABLE": "production_value" } 94 + /** 95 + * Static Assets 96 + * https://developers.cloudflare.com/workers/static-assets/binding/ 97 + */ 98 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 99 + /** 100 + * Service Bindings (communicate between multiple Workers) 101 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 102 + */ 103 + // "services": [ { "binding": "MY_SERVICE", "service": "my-service" } ] 104 + }
+48
apps/cf-sandbox/deploy/copilot/Dockerfile
··· 1 + FROM node:24-slim 2 + 3 + COPY --from=docker.io/cloudflare/sandbox:0.7.5 /container-server/sandbox /sandbox 4 + 5 + RUN echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list 6 + 7 + RUN apt-get update && apt-get install -y --no-install-recommends \ 8 + openssh-client \ 9 + git \ 10 + curl \ 11 + ca-certificates \ 12 + gnupg \ 13 + unzip \ 14 + python3 \ 15 + build-essential 16 + 17 + RUN curl -sLf --retry 3 --tlsv1.2 --proto "=https" 'https://packages.doppler.com/public/cli/gpg.DE2A7741A397C129.key' | gpg --dearmor | tee /etc/apt/keyrings/doppler.gpg >/dev/null \ 18 + && echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list \ 19 + && apt-get update && apt-get install -y doppler && doppler --version 20 + 21 + RUN curl -fsSL https://tailscale.com/install.sh | sh 22 + 23 + RUN mkdir -p /root/.npm-global && npm config set prefix "/root/.npm-global" 24 + 25 + ENV PATH="/root/.npm-global/bin:${PATH}" 26 + 27 + RUN npm install -g \ 28 + @github/copilot \ 29 + pm2 30 + 31 + RUN curl -fsSL https://deno.land/install.sh | sh 32 + 33 + RUN curl -fsSL https://bun.sh/install | bash 34 + 35 + ENV PATH="/root/.deno/bin:/root/.local/bin:${PATH}" 36 + 37 + RUN echo 'PATH="$HOME/.deno/bin:$HOME/.local/bin:$PATH"' >> ~/.bashrc 38 + 39 + WORKDIR /workspace 40 + 41 + ENV COMMAND_TIMEOUT_MS=300000 42 + 43 + # Required during local development to access exposed ports 44 + EXPOSE 8080 45 + EXPOSE 18789 46 + EXPOSE 3000/tcp 47 + 48 + ENTRYPOINT ["/sandbox"]
+104
apps/cf-sandbox/deploy/copilot/wrangler.jsonc
··· 1 + /** 2 + * For more details on how to configure Wrangler, refer to: 3 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 4 + */ 5 + /** 6 + * For more details on how to configure Wrangler, refer to: 7 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 8 + */ 9 + { 10 + "$schema": "node_modules/wrangler/config-schema.json", 11 + "name": "copilot", 12 + "main": "src/index.ts", 13 + "compatibility_date": "2025-05-06", 14 + "compatibility_flags": ["nodejs_compat"], 15 + "observability": { 16 + "enabled": true, 17 + }, 18 + /** 19 + * Smart Placement 20 + * Docs: https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 21 + */ 22 + // "placement": { "mode": "smart" } 23 + /** 24 + * Bindings 25 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 26 + * databases, object storage, AI inference, real-time communication and more. 27 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 28 + */ 29 + /** 30 + * Environment Variables 31 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 32 + */ 33 + // "vars": { "MY_VARIABLE": "production_value" } 34 + "vars": { "SANDBOX_TRANSPORT": "websocket" }, 35 + /** 36 + * Note: Use secrets to store sensitive data. 37 + * https://developers.cloudflare.com/workers/configuration/secrets/ 38 + */ 39 + /** 40 + * Static Assets 41 + * https://developers.cloudflare.com/workers/static-assets/binding/ 42 + */ 43 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 44 + /** 45 + * Service Bindings (communicate between multiple Workers) 46 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 47 + */ 48 + // "services": [{ "binding": "MY_SERVICE", "service": "my-service" }] 49 + "containers": [ 50 + { 51 + "class_name": "Sandbox", 52 + "image": "./Dockerfile", 53 + "instance_type": "standard-1", 54 + }, 55 + ], 56 + "durable_objects": { 57 + "bindings": [ 58 + { 59 + "class_name": "Sandbox", 60 + "name": "Sandbox", 61 + }, 62 + ], 63 + }, 64 + "migrations": [ 65 + { 66 + "new_sqlite_classes": ["Sandbox"], 67 + "tag": "v1", 68 + }, 69 + ], 70 + "hyperdrive": [ 71 + { 72 + "binding": "HYPERDRIVE", 73 + "id": "45a57339b01e45559b753ffcacbc20e4", 74 + }, 75 + ], 76 + /** 77 + * Smart Placement 78 + * https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 79 + */ 80 + // "placement": { "mode": "smart" } 81 + /** 82 + * Bindings 83 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 84 + * databases, object storage, AI inference, real-time communication and more. 85 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 86 + */ 87 + /** 88 + * Environment Variables 89 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 90 + * Note: Use secrets to store sensitive data. 91 + * https://developers.cloudflare.com/workers/configuration/secrets/ 92 + */ 93 + // "vars": { "MY_VARIABLE": "production_value" } 94 + /** 95 + * Static Assets 96 + * https://developers.cloudflare.com/workers/static-assets/binding/ 97 + */ 98 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 99 + /** 100 + * Service Bindings (communicate between multiple Workers) 101 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 102 + */ 103 + // "services": [ { "binding": "MY_SERVICE", "service": "my-service" } ] 104 + }
+48
apps/cf-sandbox/deploy/crush/Dockerfile
··· 1 + FROM node:24-slim 2 + 3 + COPY --from=docker.io/cloudflare/sandbox:0.7.5 /container-server/sandbox /sandbox 4 + 5 + RUN echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list 6 + 7 + RUN apt-get update && apt-get install -y --no-install-recommends \ 8 + openssh-client \ 9 + git \ 10 + curl \ 11 + ca-certificates \ 12 + gnupg \ 13 + unzip \ 14 + python3 \ 15 + build-essential 16 + 17 + RUN curl -sLf --retry 3 --tlsv1.2 --proto "=https" 'https://packages.doppler.com/public/cli/gpg.DE2A7741A397C129.key' | gpg --dearmor | tee /etc/apt/keyrings/doppler.gpg >/dev/null \ 18 + && echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list \ 19 + && apt-get update && apt-get install -y doppler && doppler --version 20 + 21 + RUN curl -fsSL https://tailscale.com/install.sh | sh 22 + 23 + RUN mkdir -p /root/.npm-global && npm config set prefix "/root/.npm-global" 24 + 25 + ENV PATH="/root/.npm-global/bin:${PATH}" 26 + 27 + RUN npm install -g \ 28 + @charmland/crush \ 29 + pm2 30 + 31 + RUN curl -fsSL https://deno.land/install.sh | sh 32 + 33 + RUN curl -fsSL https://bun.sh/install | bash 34 + 35 + ENV PATH="/root/.deno/bin:/root/.local/bin:${PATH}" 36 + 37 + RUN echo 'PATH="$HOME/.deno/bin:$HOME/.local/bin:$PATH"' >> ~/.bashrc 38 + 39 + WORKDIR /workspace 40 + 41 + ENV COMMAND_TIMEOUT_MS=300000 42 + 43 + # Required during local development to access exposed ports 44 + EXPOSE 8080 45 + EXPOSE 18789 46 + EXPOSE 3000/tcp 47 + 48 + ENTRYPOINT ["/sandbox"]
+104
apps/cf-sandbox/deploy/crush/wrangler.jsonc
··· 1 + /** 2 + * For more details on how to configure Wrangler, refer to: 3 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 4 + */ 5 + /** 6 + * For more details on how to configure Wrangler, refer to: 7 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 8 + */ 9 + { 10 + "$schema": "node_modules/wrangler/config-schema.json", 11 + "name": "crush", 12 + "main": "src/index.ts", 13 + "compatibility_date": "2025-05-06", 14 + "compatibility_flags": ["nodejs_compat"], 15 + "observability": { 16 + "enabled": true, 17 + }, 18 + /** 19 + * Smart Placement 20 + * Docs: https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 21 + */ 22 + // "placement": { "mode": "smart" } 23 + /** 24 + * Bindings 25 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 26 + * databases, object storage, AI inference, real-time communication and more. 27 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 28 + */ 29 + /** 30 + * Environment Variables 31 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 32 + */ 33 + // "vars": { "MY_VARIABLE": "production_value" } 34 + "vars": { "SANDBOX_TRANSPORT": "websocket" }, 35 + /** 36 + * Note: Use secrets to store sensitive data. 37 + * https://developers.cloudflare.com/workers/configuration/secrets/ 38 + */ 39 + /** 40 + * Static Assets 41 + * https://developers.cloudflare.com/workers/static-assets/binding/ 42 + */ 43 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 44 + /** 45 + * Service Bindings (communicate between multiple Workers) 46 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 47 + */ 48 + // "services": [{ "binding": "MY_SERVICE", "service": "my-service" }] 49 + "containers": [ 50 + { 51 + "class_name": "Sandbox", 52 + "image": "./Dockerfile", 53 + "instance_type": "standard-1", 54 + }, 55 + ], 56 + "durable_objects": { 57 + "bindings": [ 58 + { 59 + "class_name": "Sandbox", 60 + "name": "Sandbox", 61 + }, 62 + ], 63 + }, 64 + "migrations": [ 65 + { 66 + "new_sqlite_classes": ["Sandbox"], 67 + "tag": "v1", 68 + }, 69 + ], 70 + "hyperdrive": [ 71 + { 72 + "binding": "HYPERDRIVE", 73 + "id": "45a57339b01e45559b753ffcacbc20e4", 74 + }, 75 + ], 76 + /** 77 + * Smart Placement 78 + * https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 79 + */ 80 + // "placement": { "mode": "smart" } 81 + /** 82 + * Bindings 83 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 84 + * databases, object storage, AI inference, real-time communication and more. 85 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 86 + */ 87 + /** 88 + * Environment Variables 89 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 90 + * Note: Use secrets to store sensitive data. 91 + * https://developers.cloudflare.com/workers/configuration/secrets/ 92 + */ 93 + // "vars": { "MY_VARIABLE": "production_value" } 94 + /** 95 + * Static Assets 96 + * https://developers.cloudflare.com/workers/static-assets/binding/ 97 + */ 98 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 99 + /** 100 + * Service Bindings (communicate between multiple Workers) 101 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 102 + */ 103 + // "services": [ { "binding": "MY_SERVICE", "service": "my-service" } ] 104 + }
+48
apps/cf-sandbox/deploy/gemini/Dockerfile
··· 1 + FROM node:24-slim 2 + 3 + COPY --from=docker.io/cloudflare/sandbox:0.7.5 /container-server/sandbox /sandbox 4 + 5 + RUN echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list 6 + 7 + RUN apt-get update && apt-get install -y --no-install-recommends \ 8 + openssh-client \ 9 + git \ 10 + curl \ 11 + ca-certificates \ 12 + gnupg \ 13 + unzip \ 14 + python3 \ 15 + build-essential 16 + 17 + RUN curl -sLf --retry 3 --tlsv1.2 --proto "=https" 'https://packages.doppler.com/public/cli/gpg.DE2A7741A397C129.key' | gpg --dearmor | tee /etc/apt/keyrings/doppler.gpg >/dev/null \ 18 + && echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list \ 19 + && apt-get update && apt-get install -y doppler && doppler --version 20 + 21 + RUN curl -fsSL https://tailscale.com/install.sh | sh 22 + 23 + RUN mkdir -p /root/.npm-global && npm config set prefix "/root/.npm-global" 24 + 25 + ENV PATH="/root/.npm-global/bin:${PATH}" 26 + 27 + RUN npm install -g \ 28 + @google/gemini-cli \ 29 + pm2 30 + 31 + RUN curl -fsSL https://deno.land/install.sh | sh 32 + 33 + RUN curl -fsSL https://bun.sh/install | bash 34 + 35 + ENV PATH="/root/.deno/bin:/root/.local/bin:${PATH}" 36 + 37 + RUN echo 'PATH="$HOME/.deno/bin:$HOME/.local/bin:$PATH"' >> ~/.bashrc 38 + 39 + WORKDIR /workspace 40 + 41 + ENV COMMAND_TIMEOUT_MS=300000 42 + 43 + # Required during local development to access exposed ports 44 + EXPOSE 8080 45 + EXPOSE 18789 46 + EXPOSE 3000/tcp 47 + 48 + ENTRYPOINT ["/sandbox"]
+104
apps/cf-sandbox/deploy/gemini/wrangler.jsonc
··· 1 + /** 2 + * For more details on how to configure Wrangler, refer to: 3 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 4 + */ 5 + /** 6 + * For more details on how to configure Wrangler, refer to: 7 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 8 + */ 9 + { 10 + "$schema": "node_modules/wrangler/config-schema.json", 11 + "name": "gemini", 12 + "main": "src/index.ts", 13 + "compatibility_date": "2025-05-06", 14 + "compatibility_flags": ["nodejs_compat"], 15 + "observability": { 16 + "enabled": true, 17 + }, 18 + /** 19 + * Smart Placement 20 + * Docs: https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 21 + */ 22 + // "placement": { "mode": "smart" } 23 + /** 24 + * Bindings 25 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 26 + * databases, object storage, AI inference, real-time communication and more. 27 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 28 + */ 29 + /** 30 + * Environment Variables 31 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 32 + */ 33 + // "vars": { "MY_VARIABLE": "production_value" } 34 + "vars": { "SANDBOX_TRANSPORT": "websocket" }, 35 + /** 36 + * Note: Use secrets to store sensitive data. 37 + * https://developers.cloudflare.com/workers/configuration/secrets/ 38 + */ 39 + /** 40 + * Static Assets 41 + * https://developers.cloudflare.com/workers/static-assets/binding/ 42 + */ 43 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 44 + /** 45 + * Service Bindings (communicate between multiple Workers) 46 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 47 + */ 48 + // "services": [{ "binding": "MY_SERVICE", "service": "my-service" }] 49 + "containers": [ 50 + { 51 + "class_name": "Sandbox", 52 + "image": "./Dockerfile", 53 + "instance_type": "standard-1", 54 + }, 55 + ], 56 + "durable_objects": { 57 + "bindings": [ 58 + { 59 + "class_name": "Sandbox", 60 + "name": "Sandbox", 61 + }, 62 + ], 63 + }, 64 + "migrations": [ 65 + { 66 + "new_sqlite_classes": ["Sandbox"], 67 + "tag": "v1", 68 + }, 69 + ], 70 + "hyperdrive": [ 71 + { 72 + "binding": "HYPERDRIVE", 73 + "id": "45a57339b01e45559b753ffcacbc20e4", 74 + }, 75 + ], 76 + /** 77 + * Smart Placement 78 + * https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 79 + */ 80 + // "placement": { "mode": "smart" } 81 + /** 82 + * Bindings 83 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 84 + * databases, object storage, AI inference, real-time communication and more. 85 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 86 + */ 87 + /** 88 + * Environment Variables 89 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 90 + * Note: Use secrets to store sensitive data. 91 + * https://developers.cloudflare.com/workers/configuration/secrets/ 92 + */ 93 + // "vars": { "MY_VARIABLE": "production_value" } 94 + /** 95 + * Static Assets 96 + * https://developers.cloudflare.com/workers/static-assets/binding/ 97 + */ 98 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 99 + /** 100 + * Service Bindings (communicate between multiple Workers) 101 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 102 + */ 103 + // "services": [ { "binding": "MY_SERVICE", "service": "my-service" } ] 104 + }
+48
apps/cf-sandbox/deploy/kilo/Dockerfile
··· 1 + FROM node:24-slim 2 + 3 + COPY --from=docker.io/cloudflare/sandbox:0.7.5 /container-server/sandbox /sandbox 4 + 5 + RUN echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list 6 + 7 + RUN apt-get update && apt-get install -y --no-install-recommends \ 8 + openssh-client \ 9 + git \ 10 + curl \ 11 + ca-certificates \ 12 + gnupg \ 13 + unzip \ 14 + python3 \ 15 + build-essential 16 + 17 + RUN curl -sLf --retry 3 --tlsv1.2 --proto "=https" 'https://packages.doppler.com/public/cli/gpg.DE2A7741A397C129.key' | gpg --dearmor | tee /etc/apt/keyrings/doppler.gpg >/dev/null \ 18 + && echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list \ 19 + && apt-get update && apt-get install -y doppler && doppler --version 20 + 21 + RUN curl -fsSL https://tailscale.com/install.sh | sh 22 + 23 + RUN mkdir -p /root/.npm-global && npm config set prefix "/root/.npm-global" 24 + 25 + ENV PATH="/root/.npm-global/bin:${PATH}" 26 + 27 + RUN npm install -g \ 28 + @kilocode/cli \ 29 + pm2 30 + 31 + RUN curl -fsSL https://deno.land/install.sh | sh 32 + 33 + RUN curl -fsSL https://bun.sh/install | bash 34 + 35 + ENV PATH="/root/.deno/bin:/root/.local/bin:${PATH}" 36 + 37 + RUN echo 'PATH="$HOME/.deno/bin:$HOME/.local/bin:$PATH"' >> ~/.bashrc 38 + 39 + WORKDIR /workspace 40 + 41 + ENV COMMAND_TIMEOUT_MS=300000 42 + 43 + # Required during local development to access exposed ports 44 + EXPOSE 8080 45 + EXPOSE 18789 46 + EXPOSE 3000/tcp 47 + 48 + ENTRYPOINT ["/sandbox"]
+104
apps/cf-sandbox/deploy/kilo/wrangler.jsonc
··· 1 + /** 2 + * For more details on how to configure Wrangler, refer to: 3 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 4 + */ 5 + /** 6 + * For more details on how to configure Wrangler, refer to: 7 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 8 + */ 9 + { 10 + "$schema": "node_modules/wrangler/config-schema.json", 11 + "name": "kilo", 12 + "main": "src/index.ts", 13 + "compatibility_date": "2025-05-06", 14 + "compatibility_flags": ["nodejs_compat"], 15 + "observability": { 16 + "enabled": true, 17 + }, 18 + /** 19 + * Smart Placement 20 + * Docs: https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 21 + */ 22 + // "placement": { "mode": "smart" } 23 + /** 24 + * Bindings 25 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 26 + * databases, object storage, AI inference, real-time communication and more. 27 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 28 + */ 29 + /** 30 + * Environment Variables 31 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 32 + */ 33 + // "vars": { "MY_VARIABLE": "production_value" } 34 + "vars": { "SANDBOX_TRANSPORT": "websocket" }, 35 + /** 36 + * Note: Use secrets to store sensitive data. 37 + * https://developers.cloudflare.com/workers/configuration/secrets/ 38 + */ 39 + /** 40 + * Static Assets 41 + * https://developers.cloudflare.com/workers/static-assets/binding/ 42 + */ 43 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 44 + /** 45 + * Service Bindings (communicate between multiple Workers) 46 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 47 + */ 48 + // "services": [{ "binding": "MY_SERVICE", "service": "my-service" }] 49 + "containers": [ 50 + { 51 + "class_name": "Sandbox", 52 + "image": "./Dockerfile", 53 + "instance_type": "standard-1", 54 + }, 55 + ], 56 + "durable_objects": { 57 + "bindings": [ 58 + { 59 + "class_name": "Sandbox", 60 + "name": "Sandbox", 61 + }, 62 + ], 63 + }, 64 + "migrations": [ 65 + { 66 + "new_sqlite_classes": ["Sandbox"], 67 + "tag": "v1", 68 + }, 69 + ], 70 + "hyperdrive": [ 71 + { 72 + "binding": "HYPERDRIVE", 73 + "id": "45a57339b01e45559b753ffcacbc20e4", 74 + }, 75 + ], 76 + /** 77 + * Smart Placement 78 + * https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 79 + */ 80 + // "placement": { "mode": "smart" } 81 + /** 82 + * Bindings 83 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 84 + * databases, object storage, AI inference, real-time communication and more. 85 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 86 + */ 87 + /** 88 + * Environment Variables 89 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 90 + * Note: Use secrets to store sensitive data. 91 + * https://developers.cloudflare.com/workers/configuration/secrets/ 92 + */ 93 + // "vars": { "MY_VARIABLE": "production_value" } 94 + /** 95 + * Static Assets 96 + * https://developers.cloudflare.com/workers/static-assets/binding/ 97 + */ 98 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 99 + /** 100 + * Service Bindings (communicate between multiple Workers) 101 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 102 + */ 103 + // "services": [ { "binding": "MY_SERVICE", "service": "my-service" } ] 104 + }
+48
apps/cf-sandbox/deploy/kiro/Dockerfile
··· 1 + FROM node:24-slim 2 + 3 + COPY --from=docker.io/cloudflare/sandbox:0.7.5 /container-server/sandbox /sandbox 4 + 5 + RUN echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list 6 + 7 + RUN apt-get update && apt-get install -y --no-install-recommends \ 8 + openssh-client \ 9 + git \ 10 + curl \ 11 + ca-certificates \ 12 + gnupg \ 13 + unzip \ 14 + python3 \ 15 + build-essential 16 + 17 + RUN curl -sLf --retry 3 --tlsv1.2 --proto "=https" 'https://packages.doppler.com/public/cli/gpg.DE2A7741A397C129.key' | gpg --dearmor | tee /etc/apt/keyrings/doppler.gpg >/dev/null \ 18 + && echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list \ 19 + && apt-get update && apt-get install -y doppler && doppler --version 20 + 21 + RUN curl -fsSL https://tailscale.com/install.sh | sh 22 + 23 + RUN curl -fsSL https://cli.kiro.dev/install | bash 24 + 25 + RUN mkdir -p /root/.npm-global && npm config set prefix "/root/.npm-global" 26 + 27 + ENV PATH="/root/.npm-global/bin:${PATH}" 28 + 29 + RUN npm install -g pm2 30 + 31 + RUN curl -fsSL https://deno.land/install.sh | sh 32 + 33 + RUN curl -fsSL https://bun.sh/install | bash 34 + 35 + ENV PATH="/root/.deno/bin:/root/.local/bin:${PATH}" 36 + 37 + RUN echo 'PATH="$HOME/.deno/bin:$HOME/.local/bin:$PATH"' >> ~/.bashrc 38 + 39 + WORKDIR /workspace 40 + 41 + ENV COMMAND_TIMEOUT_MS=300000 42 + 43 + # Required during local development to access exposed ports 44 + EXPOSE 8080 45 + EXPOSE 18789 46 + EXPOSE 3000/tcp 47 + 48 + ENTRYPOINT ["/sandbox"]
+104
apps/cf-sandbox/deploy/kiro/wrangler.jsonc
··· 1 + /** 2 + * For more details on how to configure Wrangler, refer to: 3 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 4 + */ 5 + /** 6 + * For more details on how to configure Wrangler, refer to: 7 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 8 + */ 9 + { 10 + "$schema": "node_modules/wrangler/config-schema.json", 11 + "name": "kiro", 12 + "main": "src/index.ts", 13 + "compatibility_date": "2025-05-06", 14 + "compatibility_flags": ["nodejs_compat"], 15 + "observability": { 16 + "enabled": true, 17 + }, 18 + /** 19 + * Smart Placement 20 + * Docs: https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 21 + */ 22 + // "placement": { "mode": "smart" } 23 + /** 24 + * Bindings 25 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 26 + * databases, object storage, AI inference, real-time communication and more. 27 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 28 + */ 29 + /** 30 + * Environment Variables 31 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 32 + */ 33 + // "vars": { "MY_VARIABLE": "production_value" } 34 + "vars": { "SANDBOX_TRANSPORT": "websocket" }, 35 + /** 36 + * Note: Use secrets to store sensitive data. 37 + * https://developers.cloudflare.com/workers/configuration/secrets/ 38 + */ 39 + /** 40 + * Static Assets 41 + * https://developers.cloudflare.com/workers/static-assets/binding/ 42 + */ 43 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 44 + /** 45 + * Service Bindings (communicate between multiple Workers) 46 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 47 + */ 48 + // "services": [{ "binding": "MY_SERVICE", "service": "my-service" }] 49 + "containers": [ 50 + { 51 + "class_name": "Sandbox", 52 + "image": "./Dockerfile", 53 + "instance_type": "standard-1", 54 + }, 55 + ], 56 + "durable_objects": { 57 + "bindings": [ 58 + { 59 + "class_name": "Sandbox", 60 + "name": "Sandbox", 61 + }, 62 + ], 63 + }, 64 + "migrations": [ 65 + { 66 + "new_sqlite_classes": ["Sandbox"], 67 + "tag": "v1", 68 + }, 69 + ], 70 + "hyperdrive": [ 71 + { 72 + "binding": "HYPERDRIVE", 73 + "id": "45a57339b01e45559b753ffcacbc20e4", 74 + }, 75 + ], 76 + /** 77 + * Smart Placement 78 + * https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 79 + */ 80 + // "placement": { "mode": "smart" } 81 + /** 82 + * Bindings 83 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 84 + * databases, object storage, AI inference, real-time communication and more. 85 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 86 + */ 87 + /** 88 + * Environment Variables 89 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 90 + * Note: Use secrets to store sensitive data. 91 + * https://developers.cloudflare.com/workers/configuration/secrets/ 92 + */ 93 + // "vars": { "MY_VARIABLE": "production_value" } 94 + /** 95 + * Static Assets 96 + * https://developers.cloudflare.com/workers/static-assets/binding/ 97 + */ 98 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 99 + /** 100 + * Service Bindings (communicate between multiple Workers) 101 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 102 + */ 103 + // "services": [ { "binding": "MY_SERVICE", "service": "my-service" } ] 104 + }
+48
apps/cf-sandbox/deploy/openclaw/Dockerfile
··· 1 + FROM node:24-slim 2 + 3 + COPY --from=docker.io/cloudflare/sandbox:0.7.5 /container-server/sandbox /sandbox 4 + 5 + RUN echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list 6 + 7 + RUN apt-get update && apt-get install -y --no-install-recommends \ 8 + openssh-client \ 9 + git \ 10 + curl \ 11 + ca-certificates \ 12 + gnupg \ 13 + unzip \ 14 + python3 \ 15 + build-essential 16 + 17 + RUN curl -sLf --retry 3 --tlsv1.2 --proto "=https" 'https://packages.doppler.com/public/cli/gpg.DE2A7741A397C129.key' | gpg --dearmor | tee /etc/apt/keyrings/doppler.gpg >/dev/null \ 18 + && echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list \ 19 + && apt-get update && apt-get install -y doppler && doppler --version 20 + 21 + RUN curl -fsSL https://tailscale.com/install.sh | sh 22 + 23 + RUN mkdir -p /root/.npm-global && npm config set prefix "/root/.npm-global" 24 + 25 + ENV PATH="/root/.npm-global/bin:${PATH}" 26 + 27 + RUN npm install -g \ 28 + openclaw \ 29 + pm2 30 + 31 + RUN curl -fsSL https://deno.land/install.sh | sh 32 + 33 + RUN curl -fsSL https://bun.sh/install | bash 34 + 35 + ENV PATH="/root/.deno/bin:/root/.local/bin:${PATH}" 36 + 37 + RUN echo 'PATH="$HOME/.deno/bin:$HOME/.local/bin:$PATH"' >> ~/.bashrc 38 + 39 + WORKDIR /workspace 40 + 41 + ENV COMMAND_TIMEOUT_MS=300000 42 + 43 + # Required during local development to access exposed ports 44 + EXPOSE 8080 45 + EXPOSE 18789 46 + EXPOSE 3000/tcp 47 + 48 + ENTRYPOINT ["/sandbox"]
+104
apps/cf-sandbox/deploy/openclaw/wrangler.jsonc
··· 1 + /** 2 + * For more details on how to configure Wrangler, refer to: 3 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 4 + */ 5 + /** 6 + * For more details on how to configure Wrangler, refer to: 7 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 8 + */ 9 + { 10 + "$schema": "node_modules/wrangler/config-schema.json", 11 + "name": "openclaw", 12 + "main": "src/index.ts", 13 + "compatibility_date": "2025-05-06", 14 + "compatibility_flags": ["nodejs_compat"], 15 + "observability": { 16 + "enabled": true, 17 + }, 18 + /** 19 + * Smart Placement 20 + * Docs: https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 21 + */ 22 + // "placement": { "mode": "smart" } 23 + /** 24 + * Bindings 25 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 26 + * databases, object storage, AI inference, real-time communication and more. 27 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 28 + */ 29 + /** 30 + * Environment Variables 31 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 32 + */ 33 + // "vars": { "MY_VARIABLE": "production_value" } 34 + "vars": { "SANDBOX_TRANSPORT": "websocket" }, 35 + /** 36 + * Note: Use secrets to store sensitive data. 37 + * https://developers.cloudflare.com/workers/configuration/secrets/ 38 + */ 39 + /** 40 + * Static Assets 41 + * https://developers.cloudflare.com/workers/static-assets/binding/ 42 + */ 43 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 44 + /** 45 + * Service Bindings (communicate between multiple Workers) 46 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 47 + */ 48 + // "services": [{ "binding": "MY_SERVICE", "service": "my-service" }] 49 + "containers": [ 50 + { 51 + "class_name": "Sandbox", 52 + "image": "./Dockerfile", 53 + "instance_type": "standard-1", 54 + }, 55 + ], 56 + "durable_objects": { 57 + "bindings": [ 58 + { 59 + "class_name": "Sandbox", 60 + "name": "Sandbox", 61 + }, 62 + ], 63 + }, 64 + "migrations": [ 65 + { 66 + "new_sqlite_classes": ["Sandbox"], 67 + "tag": "v1", 68 + }, 69 + ], 70 + "hyperdrive": [ 71 + { 72 + "binding": "HYPERDRIVE", 73 + "id": "45a57339b01e45559b753ffcacbc20e4", 74 + }, 75 + ], 76 + /** 77 + * Smart Placement 78 + * https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 79 + */ 80 + // "placement": { "mode": "smart" } 81 + /** 82 + * Bindings 83 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 84 + * databases, object storage, AI inference, real-time communication and more. 85 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 86 + */ 87 + /** 88 + * Environment Variables 89 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 90 + * Note: Use secrets to store sensitive data. 91 + * https://developers.cloudflare.com/workers/configuration/secrets/ 92 + */ 93 + // "vars": { "MY_VARIABLE": "production_value" } 94 + /** 95 + * Static Assets 96 + * https://developers.cloudflare.com/workers/static-assets/binding/ 97 + */ 98 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 99 + /** 100 + * Service Bindings (communicate between multiple Workers) 101 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 102 + */ 103 + // "services": [ { "binding": "MY_SERVICE", "service": "my-service" } ] 104 + }
+48
apps/cf-sandbox/deploy/opencode/Dockerfile
··· 1 + FROM node:24-slim 2 + 3 + COPY --from=docker.io/cloudflare/sandbox:0.7.5 /container-server/sandbox /sandbox 4 + 5 + RUN echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list 6 + 7 + RUN apt-get update && apt-get install -y --no-install-recommends \ 8 + openssh-client \ 9 + git \ 10 + curl \ 11 + ca-certificates \ 12 + gnupg \ 13 + unzip \ 14 + python3 \ 15 + build-essential 16 + 17 + RUN curl -sLf --retry 3 --tlsv1.2 --proto "=https" 'https://packages.doppler.com/public/cli/gpg.DE2A7741A397C129.key' | gpg --dearmor | tee /etc/apt/keyrings/doppler.gpg >/dev/null \ 18 + && echo "deb [signed-by=/etc/apt/keyrings/doppler.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | tee /etc/apt/sources.list.d/doppler-cli.list \ 19 + && apt-get update && apt-get install -y doppler && doppler --version 20 + 21 + RUN curl -fsSL https://tailscale.com/install.sh | sh 22 + 23 + RUN mkdir -p /root/.npm-global && npm config set prefix "/root/.npm-global" 24 + 25 + ENV PATH="/root/.npm-global/bin:${PATH}" 26 + 27 + RUN npm install -g \ 28 + opencode-ai \ 29 + pm2 30 + 31 + RUN curl -fsSL https://deno.land/install.sh | sh 32 + 33 + RUN curl -fsSL https://bun.sh/install | bash 34 + 35 + ENV PATH="/root/.deno/bin:/root/.local/bin:${PATH}" 36 + 37 + RUN echo 'PATH="$HOME/.deno/bin:$HOME/.local/bin:$PATH"' >> ~/.bashrc 38 + 39 + WORKDIR /workspace 40 + 41 + ENV COMMAND_TIMEOUT_MS=300000 42 + 43 + # Required during local development to access exposed ports 44 + EXPOSE 8080 45 + EXPOSE 18789 46 + EXPOSE 3000/tcp 47 + 48 + ENTRYPOINT ["/sandbox"]
+104
apps/cf-sandbox/deploy/opencode/wrangler.jsonc
··· 1 + /** 2 + * For more details on how to configure Wrangler, refer to: 3 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 4 + */ 5 + /** 6 + * For more details on how to configure Wrangler, refer to: 7 + * https://developers.cloudflare.com/workers/wrangler/configuration/ 8 + */ 9 + { 10 + "$schema": "node_modules/wrangler/config-schema.json", 11 + "name": "opencode", 12 + "main": "src/index.ts", 13 + "compatibility_date": "2025-05-06", 14 + "compatibility_flags": ["nodejs_compat"], 15 + "observability": { 16 + "enabled": true, 17 + }, 18 + /** 19 + * Smart Placement 20 + * Docs: https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 21 + */ 22 + // "placement": { "mode": "smart" } 23 + /** 24 + * Bindings 25 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 26 + * databases, object storage, AI inference, real-time communication and more. 27 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 28 + */ 29 + /** 30 + * Environment Variables 31 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 32 + */ 33 + // "vars": { "MY_VARIABLE": "production_value" } 34 + "vars": { "SANDBOX_TRANSPORT": "websocket" }, 35 + /** 36 + * Note: Use secrets to store sensitive data. 37 + * https://developers.cloudflare.com/workers/configuration/secrets/ 38 + */ 39 + /** 40 + * Static Assets 41 + * https://developers.cloudflare.com/workers/static-assets/binding/ 42 + */ 43 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 44 + /** 45 + * Service Bindings (communicate between multiple Workers) 46 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 47 + */ 48 + // "services": [{ "binding": "MY_SERVICE", "service": "my-service" }] 49 + "containers": [ 50 + { 51 + "class_name": "Sandbox", 52 + "image": "./Dockerfile", 53 + "instance_type": "standard-1", 54 + }, 55 + ], 56 + "durable_objects": { 57 + "bindings": [ 58 + { 59 + "class_name": "Sandbox", 60 + "name": "Sandbox", 61 + }, 62 + ], 63 + }, 64 + "migrations": [ 65 + { 66 + "new_sqlite_classes": ["Sandbox"], 67 + "tag": "v1", 68 + }, 69 + ], 70 + "hyperdrive": [ 71 + { 72 + "binding": "HYPERDRIVE", 73 + "id": "45a57339b01e45559b753ffcacbc20e4", 74 + }, 75 + ], 76 + /** 77 + * Smart Placement 78 + * https://developers.cloudflare.com/workers/configuration/smart-placement/#smart-placement 79 + */ 80 + // "placement": { "mode": "smart" } 81 + /** 82 + * Bindings 83 + * Bindings allow your Worker to interact with resources on the Cloudflare Developer Platform, including 84 + * databases, object storage, AI inference, real-time communication and more. 85 + * https://developers.cloudflare.com/workers/runtime-apis/bindings/ 86 + */ 87 + /** 88 + * Environment Variables 89 + * https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 90 + * Note: Use secrets to store sensitive data. 91 + * https://developers.cloudflare.com/workers/configuration/secrets/ 92 + */ 93 + // "vars": { "MY_VARIABLE": "production_value" } 94 + /** 95 + * Static Assets 96 + * https://developers.cloudflare.com/workers/static-assets/binding/ 97 + */ 98 + // "assets": { "directory": "./public/", "binding": "ASSETS" } 99 + /** 100 + * Service Bindings (communicate between multiple Workers) 101 + * https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 102 + */ 103 + // "services": [ { "binding": "MY_SERVICE", "service": "my-service" } ] 104 + }