foldrun 2.9.0 → 2.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/agents.md +4 -0
- package/docs/api.md +1 -1
- package/docs/self-hosting.md +48 -3
- package/package.json +1 -1
package/docs/agents.md
CHANGED
|
@@ -370,6 +370,10 @@ All three are **hard ceilings**:
|
|
|
370
370
|
whole machine from the steps beside it. When every core is busy, a bigger
|
|
371
371
|
class gets a bigger share.
|
|
372
372
|
- **Disk:** a step over it is evicted rather than the node filling up.
|
|
373
|
+
This is the step's scratch space, not the account's storage: the
|
|
374
|
+
sandbox's copy of the workspace and whatever the step writes while it
|
|
375
|
+
runs. When the step ends, the files it changed are copied back to the
|
|
376
|
+
workspace and the sandbox, scratch space included, is deleted.
|
|
373
377
|
|
|
374
378
|
Pick `small` for an agent that mostly waits on an API, `heavy` for one that
|
|
375
379
|
renders a browser or holds real data. The step's `resources:` line reports CPU
|
package/docs/api.md
CHANGED
|
@@ -428,7 +428,7 @@ X-Foldrun-Cli: 0.6.0 # the CLI released with this version (absent
|
|
|
428
428
|
|
|
429
429
|
| Route | Methods | |
|
|
430
430
|
|---|---|---|
|
|
431
|
-
| `/api/auth/signup` | POST | `email`, `password`, `account`, `invite`. Rate limited per address and per caller. With signups closed every address gets the same refusal, so the form cannot be used to discover which addresses are registered |
|
|
431
|
+
| `/api/auth/signup` | POST | `email`, `password`, `account`, `invite`, `setup`. An install with `FOLDRUN_SETUP_TOKEN` set creates its first account only with `setup` equal to it (403 otherwise); once an account exists the token does nothing. Rate limited per address and per caller. With signups closed every address gets the same refusal, so the form cannot be used to discover which addresses are registered |
|
|
432
432
|
| `/api/auth/login` | POST | `email`, `password` |
|
|
433
433
|
| `/api/auth/logout` | POST | ends the session |
|
|
434
434
|
| `/api/auth/session` | GET | who am I |
|
package/docs/self-hosting.md
CHANGED
|
@@ -32,9 +32,52 @@ curl -fsSL https://foldrun.io/install.sh | sh
|
|
|
32
32
|
|
|
33
33
|
It checks Docker, puts `docker-compose.yml` in `~/foldrun`, writes `.env`
|
|
34
34
|
there once (a fresh secret key, the address, the version), pulls the
|
|
35
|
-
ready-made images and starts foldrun on port 3900.
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
ready-made images for your machine's chip and starts foldrun on port 3900.
|
|
36
|
+
|
|
37
|
+
**No Docker yet?** The installer offers to set it up, and asks before each
|
|
38
|
+
step (`[y/N]`):
|
|
39
|
+
|
|
40
|
+
| on | Docker missing | Docker stopped | Docker not reachable by you |
|
|
41
|
+
|---|---|---|---|
|
|
42
|
+
| **macOS** | installs Colima (a small Linux VM), `docker` and `docker-compose` with [Homebrew](https://brew.sh), then starts Colima with up to 4 CPUs and 8 GiB — enough for a `heavy` step | starts Colima, or opens Docker Desktop | — |
|
|
43
|
+
| **Linux** | runs Docker's official script ([get.docker.com](https://get.docker.com): the engine and the Compose plugin) as root, through `sudo` | `sudo systemctl start docker` | adds you to the `docker` group (root-equivalent), and uses `sudo` for the rest of that run; the group applies from your next login |
|
|
44
|
+
|
|
45
|
+
Answer after each question appears: anything typed ahead is lost while
|
|
46
|
+
Docker installs.
|
|
47
|
+
|
|
48
|
+
**What it checks first.** The install folder and every file Compose reads
|
|
49
|
+
there (`.env`, `docker-compose.yml`, `docker-compose.override.yml`) must be
|
|
50
|
+
yours alone — owned by you, writable by nobody else, no access control list,
|
|
51
|
+
no symlinks — because Docker runs what they say with root's reach. The
|
|
52
|
+
override must stand alone: no `include` or `extends`, and no `env_file` —
|
|
53
|
+
put settings in `.env` or in the override's own `environment:`. Anything
|
|
54
|
+
else it names, such as a secret's file, is your own configuration to
|
|
55
|
+
protect, as is a key written to slip past these checks.
|
|
56
|
+
|
|
57
|
+
`FOLDRUN_DATA_DIR` (a host folder instead of the data volume) holds the
|
|
58
|
+
accounts and the vault, so it must be private: the installer makes it
|
|
59
|
+
owner-only when it does not exist, refuses one that others can read or
|
|
60
|
+
write, and keeps its real path (symlinks resolved) in `.env`.
|
|
61
|
+
|
|
62
|
+
The installer sets foldrun up on the machine it runs on, and refuses a
|
|
63
|
+
remote Docker (`DOCKER_HOST` or a context pointing at another machine): run
|
|
64
|
+
it on the Docker host itself.
|
|
65
|
+
Compose is always given these files by name, so a `compose.yaml` beside them
|
|
66
|
+
or a `COMPOSE_FILE` in `.env` cannot stand in. Before starting, it checks
|
|
67
|
+
that the Docker the platform will be given (`FOLDRUN_DOCKER_SOCK`) is the
|
|
68
|
+
same daemon it installed into. With no terminal (a provisioning script), nothing is
|
|
69
|
+
installed unless you say so in advance with `FOLDRUN_INSTALL_DOCKER=yes`;
|
|
70
|
+
`FOLDRUN_INSTALL_DOCKER=no` never asks. Without Homebrew on a Mac, install
|
|
71
|
+
it or [Docker Desktop](https://docs.docker.com/desktop/setup/install/mac-install/)
|
|
72
|
+
first. Then open the signup link it prints —
|
|
73
|
+
`http://127.0.0.1:3900/signup?setup=…` (127.0.0.1, not `localhost`, which a browser may send to IPv6 where another user could be listening) — in a browser. The first account
|
|
74
|
+
becomes the owner, and only that link can create it: anyone else using the
|
|
75
|
+
same machine can reach `localhost` too, so the installer ties the owner to
|
|
76
|
+
whoever ran it (the token is `FOLDRUN_SETUP_TOKEN` in `~/foldrun/.env`, and
|
|
77
|
+
does nothing once the owner exists). With `FOLDRUN_BIND` set to one address
|
|
78
|
+
the link uses that address; from another machine, open it through the
|
|
79
|
+
tunnel the installer prints (`ssh -o ExitOnForwardFailure=yes -L …`), never
|
|
80
|
+
over plain http. Then sign the CLI in and deploy:
|
|
38
81
|
|
|
39
82
|
```sh
|
|
40
83
|
npm install -g foldrun
|
|
@@ -67,6 +110,8 @@ edit `~/foldrun/.env` and run `docker compose up -d` there.
|
|
|
67
110
|
| `ANTHROPIC_API_KEY` | none | the install's model key. Without one, each account adds its own in Settings → Model; a step with neither is refused with what to set |
|
|
68
111
|
| `FOLDRUN_DIR` | `~/foldrun` | where the install lives (installer only) |
|
|
69
112
|
| `FOLDRUN_DOCKER_SOCK` | `/var/run/docker.sock` | the Docker socket; rootless Docker is found by the installer |
|
|
113
|
+
| `FOLDRUN_SETUP_TOKEN` | made once | the first account (the owner) is created only with this, through the printed `/signup?setup=…` link |
|
|
114
|
+
| `FOLDRUN_INSTALL_DOCKER` | ask | `yes` installs or starts Docker without asking (for a script with no terminal); `no` never offers to |
|
|
70
115
|
| `FOLDRUN_EGRESS_BIND` | `0.0.0.0` | the egress proxy's port 8090, which steps reach through `host.docker.internal`. On a server that faces a network, bind it to the Docker bridge (`172.17.0.1`); Docker-published ports skip host firewalls such as ufw |
|
|
71
116
|
| `FOLDRUN_DATA_DIR` | a named volume | a host path for the data instead |
|
|
72
117
|
|