A zensical site under docs/, served by a new `docs` compose service behind Traefik, built with --strict in CI. Same pattern the sibling n3xd workspace uses. Getting started splits the way the landing page does — one path is `pip install fluksio` and a training script, the other is a Docker stack and an afternoon in the browser — because the two audiences will not spend the same amount of time. Everything after that is shared: the concepts, the web interface (app and portal), the CLI and the API, and a reference for node types, payload types and configuration. The three flow guides move here from the docs submodule rather than being copied, so there is one version of them. Styling mirrors DESIGN-GUIDELINES.md: the app's token palette remapped onto Material's variables in both schemes, Inter, the 16px panel radius, and the one terracotta accent spent on the facility lane of the audience split. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01M7Xv3cJEW5c8AXxn2hoojV
84 lines
3.1 KiB
Markdown
84 lines
3.1 KiB
Markdown
# Fluksio App
|
|
|
|
Fluksio has the goal to build a revolutionary system to tackle any sort of automation challenge.
|
|
|
|
The core of Fluksio: a node-based, test-driven automation software built to scale. This
|
|
repo holds the FastAPI backend, the flow engine, and the dashboard SPA. It is served on
|
|
`app.${DOMAIN}` (SPA) and `api.${DOMAIN}` (API); the marketing site lives in the sibling
|
|
`index` repo.
|
|
|
|
## Layout
|
|
|
|
```text
|
|
backend/ FastAPI + SQLModel + Alembic + SQLite — the `fluksio` distribution
|
|
fluksio/flow/ the flow engine (nodes, pipeline, state backends, controller)
|
|
fluksio/cli.py `fluksio serve` / `enroll` / `worker`
|
|
worker/ the `fluksio-worker` distribution: the agent and the node runner
|
|
frontend/ React 19 + TanStack Router + Tailwind 4 + shadcn/ui
|
|
docs/ the public documentation site (zensical), served on docs.${DOMAIN}
|
|
docker/ compose.yml → compose.dev.yml → compose.local.yml (+ compose.traefik.yml)
|
|
scripts/ generate-client.sh, test.sh
|
|
```
|
|
|
|
## Install without Docker
|
|
|
|
```sh
|
|
pip install fluksio
|
|
fluksio serve # ~/.fluksio, SQLite, prints an admin password once
|
|
fluksio enroll <code> --portal https://hub.fluksio.com # watch it from the portal
|
|
```
|
|
|
|
Nothing else has to be running. `--data-dir` puts the installation somewhere else —
|
|
worth it on a cluster, where `$HOME` is often a network filesystem SQLite cannot use.
|
|
`git` is not required but is worth having: flows are files either way, and it is what
|
|
turns each save into a commit.
|
|
The dashboard is served by the portal, so a machine with no inbound route is reached
|
|
without opening a port: it dials out.
|
|
|
|
A machine that should only *run nodes* for an engine elsewhere installs less:
|
|
|
|
```sh
|
|
pip install fluksio-worker
|
|
fluksio-worker --url wss://api.example.com/api/v1/workers/attach --token "$TOKEN" --labels gpu
|
|
```
|
|
|
|
## Getting started
|
|
|
|
Normally driven from the workspace root (`make init` once, then `make dev`). Standalone:
|
|
|
|
```sh
|
|
make install # uv sync + bun install
|
|
make dev-utils # proxy and mailcatcher only
|
|
make dev-backend # FastAPI on :8000, hot reload
|
|
make dev-frontend # Vite on :5173
|
|
```
|
|
|
|
```sh
|
|
make test # pytest + Playwright (the e2e half needs the stack up)
|
|
make lint # ruff + mypy + biome
|
|
make generate-client # regenerate the frontend SDK from the OpenAPI schema
|
|
```
|
|
|
|
`make help` lists every target.
|
|
|
|
## Documentation
|
|
|
|
The public site lives in [`docs/`](docs/) and is built with zensical:
|
|
|
|
```sh
|
|
make docs-serve # live preview on :8000
|
|
make docs # static build into ./site
|
|
```
|
|
|
|
It is served at `docs.${DOMAIN}` by the `docs` service in `docker/compose.yml`,
|
|
and `.gitea/workflows/docs.yml` builds it with `--strict` on every push. Style
|
|
follows the root `DESIGN-GUIDELINES.md`; the tokens are mirrored in
|
|
`docs/stylesheets/extra.css`.
|
|
|
|
Repo-only material:
|
|
|
|
- [`ROADMAP.md`](ROADMAP.md) — strategy and feature record
|
|
- [`NOTEPAD.md`](NOTEPAD.md) — deferred work and findings
|
|
- [`DESIGN.md`](DESIGN.md) — points at the workspace root's `DESIGN-GUIDELINES.md`
|
|
- `docs/architecture/` in the sibling `docs` repo — the requirement sources
|