> ## Content Index
> Fetch the complete content index at: https://www.workroom-productions.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Ephemeral Environments
- URL: https://www.workroom-productions.com/ephemeral-environments/
- Published: 2025-06-11T10:43:38.000Z
- Updated: 2025-06-11T19:58:19.000Z
- Author: James Lyndsay

I've been working on something for people who teach testing in public. I want to share this, as I think it's useful. Shortly, I'll clean it up to make it open-source, and I'll teach people how to use it and set it up.

In order to provide these environments, you'll need: A DigitalOcean account (for the server), a Cloudflare account (for DNS), Ansible on your local machine, a public/private key pair, a github repo or two, and a sense of what's possible.

---

It's important to me that people can work in a real development environment. That means, to me, that they should:

- Have a file system that they can use as they wish
- Have a command line with no restrictions to let them take action
- Have a file editor to let them make changes
- Have a web server to let them see output in a 'nice' way (especially coverage)

We can't expect people to use their own machines – their work machine is locked down, or they don't feel happy about installing novel tools. Or they've left it behind. Or it's a tablet.

We can't expect them to install a load of tools or to rely on temporary licenses.

We can't expect them to download loads of stuff over conference / hotel wifi – let alone install it in the first 30 minutes of a 45-minute talk.

We can't expect *everyone* to download and install the tools beforehand.

We can't do tech support, in the workshop, for all the kit in the room.

---

Clearly, this is idealistic – there is *no* solution.

Buut....

As a tester, I know something about orchestration. I can leverage that, and with the help of several LLMs and standing on the shoulders of vast and competent open-source projects, I have leveraged it into something I've used at conference scale. I'd like to share it with you.

- It runs in a browser, needs no downloads, is conference wifi-friendly, offers everyone their own VSCode in the browser.
- Through the relatively-familiar world of VSCode, it offers access to a user on a DigitalOcean server. That means that people get a browsable file system and a proper commandline.
- The scripts set up whatever is wanted on the server. Currently, I've got bits to set up the comandline tool `llm` with plugins and keys to access various models, Python dev env with Pytest tests (and coverage) serving human-readable stuff over Flask, a Javascript dev env with Jest tests (and coverage) serving stuff over Nginx.
- To make the environments accessible, each server has useful URL working over https with a viable certificate, a cover web page linking to 10 user pages, and each user page links to the VSCode browser and to a few web-served endpoints.
- The scripts 1) set up a droplet image to be reused 2) make copies of that and configure them. Once you've got a droplet image from script (1), you can run (2) several times in parallel – they take 20-30 minutes to stand up an environment.

---

Alternatives

[GitHub CodespacesGitHub Codespaces gets you up and coding faster with fully configured, secure cloud development environments native to GitHub.![](https://storage.ghost.io/c/7e/30/7e30843b-2abb-494a-ab80-0e931d8ae9a9/content/images/icon/pinned-octocat-093da3e6fa40-4.svg)GitHub![](https://storage.ghost.io/c/7e/30/7e30843b-2abb-494a-ab80-0e931d8ae9a9/content/images/thumbnail/features-codespaces-social.jpg)](https://github.com/features/codespaces)

[CodeSandbox: Instant Cloud Development EnvironmentsCodeSandbox is a cloud development platform that empowers developers to code, collaborate and ship projects of any size from any device in record time.![](https://storage.ghost.io/c/7e/30/7e30843b-2abb-494a-ab80-0e931d8ae9a9/content/images/icon/favicon-6.ico)CodeSandbox![](https://storage.ghost.io/c/7e/30/7e30843b-2abb-494a-ab80-0e931d8ae9a9/content/images/thumbnail/og.jpg)](https://codesandbox.io)