* update cf worker hostname
* set remote_url cookie from param
* ephemeral backends v1
* nit
* Run queue server
* ntis
* timeout
* better db process management
* commit hash and worktree
* nit use map
* nit
* err handling
* Revert "err handling"
This reverts commit 19de00c0c0.
* nits
* auto cleanup
* Ephemeral backend command action
* remove checkout
* checkout ee repo
* nits
* process.env.GIT_EE_DEPLOY_KEY_FILE
* resumeURLs logic
* nit
* use windmill flow for ephemeral backend action
* fixes
* new token
* worktree pools
* Delete GH secret on cleanup
* linux deploy
* nit
* nit
* unhandled promises
* nit
* fix docker bridge IP on linux
* pass cf_frontend_url to wmill flow
* git fetch
* release worktree when binary started
* send error
* logger
* logging
* logging 2
* delete log files periodically
* redirect to raw app with logs
* CORS
* MANAGER_AUTH_TOKEN
* Check organization membership
* nit
* bwrap
* nit
* return timeoutAt in resumeUrl
* nit
* Change password
* nit remove https
1.2 KiB
1.2 KiB
Deploying the Ephemeral Backend Manager
This guide explains how to deploy the Windmill Ephemeral Backend Manager as a systemd service on a Linux machine.
Prerequisites
Before running the installation script, ensure you have:
- Linux machine with systemd (Ubuntu 20.04+, Debian 11+, etc.)
- User
sandboxcreated with appropriate permissions - Repository cloned to
/home/sandbox/ephemeral-backend/windmill - Required tools installed:
- Git
- Docker (with
sandboxuser having access) - Bun (installed for the
sandboxuser) - Rust/Cargo (for building backends)
- Bubblewrap (will be installed by the script if missing)
- Cloudflared (will be installed by the script if missing)
Architecture
The service runs as user sandbox and:
- Listens on port 8001 for HTTP requests
- Creates a Cloudflare tunnel for external access
- Updates GitHub Actions secrets with the tunnel URL
- Manages a pool of git worktrees for ephemeral backends
- Spawns ephemeral backends on-demand
- Automatically cleans up resources on shutdown
The worktree pool enables:
- Fast incremental compilation (reuses target directories)
- Efficient resource usage (no constant creation/deletion)
- Automatic discovery of existing worktrees on restart