Files
windmill/ephemeral-backends/DEPLOYMENT.md
Diego Imbert 4f2f7356c0 Fullstack CI Preview (#7665)
* 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
2026-02-05 17:26:51 +00:00

36 lines
1.2 KiB
Markdown

# 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:
1. **Linux machine** with systemd (Ubuntu 20.04+, Debian 11+, etc.)
2. **User `sandbox`** created with appropriate permissions
3. **Repository cloned** to `/home/sandbox/ephemeral-backend/windmill`
4. **Required tools installed**:
- Git
- Docker (with `sandbox` user having access)
- Bun (installed for the `sandbox` user)
- 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