Files
app/worker/README.md
T
stroblmeandClaude Opus 5.5 cf5329e3a8 Harden the remote worker: TLS off loopback, full digests, filtered env
fluksio-worker now refuses ws:// and http:// engine and artifact URLs unless
they are loopback or --insecure is given; the engine still accepts both.
An artifact reference must be sha256: plus 64 hex digits before it is joined
into a path, and node code gets the host environment through the engine's
credential denylist instead of all of it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013GAeg4Jo6xjZzjwy9QDWMQ
2026-10-06 12:18:30 +02:00

33 lines
1.1 KiB
Markdown

# fluksio-worker
Runs [Fluksio](https://fluksio.com) nodes on a machine the engine cannot reach —
a GPU box, a cluster node, anything behind a NAT. It dials *out* to the engine
over one authenticated websocket, so nothing has to be exposed here.
```sh
pip install fluksio-worker
fluksio-worker \
--url wss://api.example.com/api/v1/workers/attach \
--token "$FLUKSIO_WORKER_TOKEN" \
--labels gpu,cuda12 \
--python /opt/torch-venv/bin/python
```
`--python` is the interpreter node code runs on, which is how this machine keeps
its own wheels without the engine ever installing them. Mint a token from the
engine with `POST /api/v1/workers/tokens`.
A plain `ws://` address is refused unless the engine is on this machine, since
the token and node secrets would cross the network in clear; `--insecure`
allows it on a network you trust.
Linux and macOS.
## License
Copyright (C) 2026 Melvin Strobl — [GNU Affero General Public License v3.0 or
later](https://www.gnu.org/licenses/agpl-3.0.en.html). Running a modified
version over a network obliges you to offer its users the corresponding source
(AGPL §13).