Files
app/README.md
T
stroblme fbd886f7a7 make test-frontend runs against a stack of its own
The suite creates and deletes flows, dashboards and users, and ran against
whatever stack was up, which is the dev instance's data. make test-stack starts
the compose project fluksio-test (compose.test.yml over the local stack's
files) with its own containers, volumes and image tags, served by the local
Traefik on app.test.localhost and api.test.localhost, and leaves it running.
The hostname is fixed, so it no longer comes off the running dev stack, and a
LAN stack makes no difference. The suite's default origin is the test stack.
2026-10-15 16:15:32 +02:00

93 lines
2.7 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. It is served on
`app.${DOMAIN}` (SPA) and `api.${DOMAIN}` (API)
## 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}
docker/ 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, `make` and `openssl`. Port 80 must be free.
```sh
make init # once: .env with generated secrets, `proxy` network, prints the admin login
make dev-local # full stack at http://app.localhost (API at http://api.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).