Skip to content

examples: run ecluse inside a Daytona sandbox - #36

Open
hefgi wants to merge 4 commits into
mainfrom
examples/daytona
Open

hefgi wants to merge 4 commits into
mainfrom
examples/daytona

Conversation

@hefgi

@hefgi hefgi commented Nov 3, 2026 •

Copy link
Copy Markdown
Owner

Summary

Adds examples/daytona/, which shows how to run ecluse (hybrid mode) inside a Daytona sandbox instead of on a laptop.

  • .ecluse.toml: Express + Vite with Postgres/Redis. pre_spawn writes .env.local, waits on pg_isready, and migrates. The browser-facing API URL comes from PUBLIC_URL_TEMPLATE, so the same config works with SSH forwarding (localhost) or Daytona preview URLs.
  • Dockerfile: docker:28-dind plus git, tmux, lsof, jq, Node, postgresql16-client, and the ecluse musl release binary.
  • bootstrap.sh: starts dockerd, checks required binaries, sets PUBLIC_URL_TEMPLATE, and warns about missing untracked files (.ecluse.toml, .env).
  • forward-ports.sh: runs on the laptop, reads a session's ports via ecluse env over SSH, and forwards all of them.
  • README.md: setup steps, the two browser-access options, and gotchas (no Docker daemon, hooks that reference laptop paths, sandbox restarts).

No code changes.

Test plan

  • ecluse validate passes on the example config
  • shellcheck is clean on both scripts
  • docker build works; all required binaries are present and ecluse --version reports 0.3.1
  • ecluse-bootstrap in a --privileged container starts dockerd
  • End-to-end ecluse up in a real Daytona sandbox, including whether Daytona sandboxes allow DinD

hefgi added 4 commits November 3, 2026 15:47
pre_spawn derives the browser-facing API URL from PUBLIC_URL_TEMPLATE so
the same config works with SSH port forwarding or Daytona preview URLs.
Docker-in-Docker base with every binary ecluse and the hooks shell out to;
bootstrap starts dockerd, checks dependencies and untracked files.
Reads a session's ports from ecluse env over SSH and forwards them all.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant