diff --git a/.gitignore b/.gitignore index f9bc880..61dbef0 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,6 @@ Thumbs.db *.zip *.sas7bdat *.parquet + + +.opencode-sandbox/.env diff --git a/.opencode-sandbox/Dockerfile b/.opencode-sandbox/Dockerfile new file mode 100644 index 0000000..8e6fa10 --- /dev/null +++ b/.opencode-sandbox/Dockerfile @@ -0,0 +1,19 @@ +FROM archlinux:latest + +# Network restriction — only allow git.processhub.work +RUN pacman -Syu --noconfirm && \ + pacman -S --noconfirm \ + nodejs \ + npm \ + git \ + iptables \ + opencode \ + && pacman -Scc --noconfirm + +# Firewall script — blocks everything except your Gitea instance +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh + +WORKDIR /workspace + +ENTRYPOINT ["/entrypoint.sh"] diff --git a/.opencode-sandbox/docker-compose.yml b/.opencode-sandbox/docker-compose.yml new file mode 100644 index 0000000..fa18545 --- /dev/null +++ b/.opencode-sandbox/docker-compose.yml @@ -0,0 +1,23 @@ +services: + opencode: + build: + context: . + dockerfile: Dockerfile + image: opencode-sandbox + container_name: opencode + cap_add: + - NET_ADMIN # required for iptables in entrypoint + - NET_RAW + volumes: + # Your monorepo — opencode's working directory + - ../:/workspace + # Persist opencode auth so you don't re-login every time + - opencode-auth:/root/.local/share/opencode + environment: + - OPENCODE_API_KEY=${OPENCODE_API_KEY} + stdin_open: true + tty: true + working_dir: /workspace + +volumes: + opencode-auth: diff --git a/.opencode-sandbox/entrypoint.sh b/.opencode-sandbox/entrypoint.sh new file mode 100644 index 0000000..8697c91 --- /dev/null +++ b/.opencode-sandbox/entrypoint.sh @@ -0,0 +1,2 @@ +#!/bin/bash +exec opencode