* 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
36 lines
1.2 KiB
Markdown
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
|