Files
app/README.md
T
stroblmeandClaude Opus 5.5 01495aed25
Docs / docs (push) Successful in 23s
pre-commit / pre-commit (push) Failing after 2m28s
Test Backend / test-backend (3.12) (push) Successful in 4m51s
Test Backend / test-backend (3.14) (push) Successful in 4m49s
Docs: x86 and arm64, Raspberry Pi included; one container in the start pages
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:56:08 +02:00

104 lines
3.0 KiB
Markdown

# Fluksio App
Fluksio is a node-based automation software that brings trust and reliability to your flow.
It just works and looks good.
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, built into one
image that serves all three on one port.
## Layout
```text
backend/ FastAPI + SQLModel + Alembic + SQLite
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}
compose.yml the single container, as the getting-started guide runs it
docker/ the operator stack: compose.yml → compose.dev.yml → compose.local.yml (+ compose.traefik.yml)
scripts/ generate-client.sh, test.sh
```
## Install without Docker
Get started quickly by running
```sh
pip install fluksio
fluksio serve
```
Then, head over to [fluksio.com](https://fluksio.com), sign up and add a new instance.
Using the code provided, run
```sh
fluksio enroll <code>
```
and you're ready to rock.
Fluksio is distributed at it's heart.
A machine that should only *run nodes* for an engine elsewhere installs less:
```sh
pip install fluksio-worker
FLUKSIO_WORKER_TOKEN=… fluksio-worker --url wss://api.fluksio.com/api/v1/workers/attach --labels gpu
```
## Getting started
Needs Docker with Compose v2, on x86-64 or arm64 such as a Raspberry Pi 4 or 5.
```sh
docker compose up -d # http://localhost:8080
docker compose logs fluksio # the admin password, printed once
```
Optional features (MQTT, InfluxDB, mail, …) are build-time extras; see `EXTRAS` in
`compose.yml`.
For development, with hot reload behind Traefik on port 80 (also needs `make` and `openssl`):
```sh
make init # once: .env with generated secrets, `proxy` network, prints the admin login
make dev-local # full stack at http://app.localhost
make down # stop it
```
Without Docker:
```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 on its own stack, behind make dev's Traefik)
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.
## License
Copyright (C) 2026 Melvin Strobl - GNU Affero General Public License v3.0 or
later. See [LICENSE](LICENSE).