grow-box pages
- grow-box
- Grow Box
Grow Box
Shell tools that prepare a sandbox machine, clone your repositories into it, and run one command there in isolation.
Grow Box prepares a sandbox: a machine where a project's code is cloned, installed and checked away from your own. It keeps the sandbox ready for the next run.
Status
Grow Box is an early version. It is a set of shell scripts you run from a clone of its repository, and it is not on npm. Use it on machines made for it: it installs packages and changes the host it runs on.
Today it covers the bottom of the stack: it makes or reaches the machine, installs the system tools and Bun, clones your repositories with read-only keys, and runs one command. A sandbox can be one of three kinds:
| Kind | What it is |
|---|---|
| A local virtual machine | an Ubuntu 24.04 VM made with multipass, a tool that runs Ubuntu VMs on your computer |
| A remote host | a machine you already have and reach over SSH |
| A container | an Ubuntu image with the tools, the Grow Box clone mounted, and a throwaway Docker daemon beside it; it clones nothing |
Every launcher can run again after a failure, and it picks up where it stopped.
Who it is for
| Step | Your situation | Where |
|---|---|---|
| One person | You want a loop or a test suite to run in a VM you can throw away | Getting started |
| One person, no VM | You want a quick check in a container | Getting started |
| A machine you already have | You want the same setup on a host you reach over SSH, with a way to reset it | Getting started |
| A team, a project with its own needs, a shared box | layered recipes, size presets and a shared seed | coming, below |
| A project that uses rafa | rafa checks that the services a run needs are there | With rafa (coming) |
Coming: layers, sizes and a seed
Two open specs describe what comes next. Neither is built, and neither names a date.
- Layered recipes (grow-box#14). A sandbox would be built in eight layers, from the machine itself up to the project's command, each a recipe with a check that says it is done.
grow-box upwould build every layer;grow-box layer <n>would build one layer on a machine that has the ones below it. A team could then use layers 3 to 5 to prepare a CI runner someone else owns, and a project could add its own prerequisites as layer 6. - Size presets and a seed (grow-box#15). Five presets,
xstoxl, each named by the machine it matches:xsfor one loop on a small Raspberry Pi,lgfor visual and browser checks. A seed would be a stopped box already built to layer 5, copied for each new sandbox (seed: clone) or shared by every project (seed: reuse).
How it connects to rafa
Grow Box stays its own repository. A planned rafa add-on, rafa-sandbox, would get the services a run needs from a Grow Box sandbox, among other sources. rafa's add-ons are modules rafa does not bundle, each published on its own. With rafa says what is planned.