OPEN-SOURCE CLOUD CONTROL PLANE

Build your cloud platform on European infrastructure

Flui turns regional cloud providers and servers you own into one platform — simple for teams, operable by agents, and owned by you. Run it yourself for free, or have us build it with you.

Need a platform built, migrated or run for you? Talk to us →

Runs on your own servers or on the supported providers.

control-cluster

0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d
Refresh Stop Delete
HEALTHY Avg CPU 8% Avg Memory 46% Monitoring
Nodes 2 View all nodes
NodeType · locationCPUMemoryStatus
control-cluster-mastermaster CX 33 · Falkenstein DC Park 1 12% 48% Running
control-cluster-worker-1worker CX 23 · Nuremberg DC Park 1 7% 36% Running
FirewallIN_SYNC
Desired rules
5
Applied rules
5
Last sync
3d ago
Manage firewall
BackupsActive
Policies
6
Schedule
0 3 * * *
Profile
Single
Manage backups
DNS zone
example.com
IN_SYNC
Issuers
4 ✓
Endpoints
12
Manage DNS
Variables0

No variable sets

Manage variables
Platform components
Healthy
17
Degraded
0
Missing
0
View all
NetworkAttached
VNet
5f4e3d2c-1b0a-4c9d-8e7f-6a5b4c3d2e1f
Provider
Hetzner
Region
fsn1
K3s version
v1.35.4+k3s1
Auto-scaling
Enabled
Created
1 month ago

Monitoring

Live values every 5 seconds · history over the last 3 hours

1h3h6h24h
Avg CPU
9.4%
+0.8%
threshold 70%
Avg Memory
43.8%
±0
5.0 GB / 11.3 GB
Avg Disk
51.2%
±0
57.7 GB / 112 GB
Load per core
0.16
no history yet 0.96 run queue · 6 cores
Network
362KB/s
+48 KB/s
180 KB/s in · 182 KB/s out
CPU per node9.4%
control-cluster-mastercontrol-cluster-worker-1
16:0016:2016:4017:0017:2017:4018:0018:2018:40
Memory per node43.8%
control-cluster-mastercontrol-cluster-worker-1
16:0016:2016:4017:0017:2017:4018:0018:2018:40
Disk per node51.2%
control-cluster-mastercontrol-cluster-worker-1
16:0016:2016:4017:0017:2017:4018:0018:2018:40
Network cluster total362 KB/s
InboundOutbound
16:0016:2016:4017:0017:2017:4018:0018:2018:40
Nodes2 nodes · 6 vCPU · 11.3 GB · 112.0 GB disk
NodeCPUMemoryDiskLoad 1 / 5 / 15Uptime
control-cluster-master
12.3% 4 vCPU
48.8% 3.7 GB / 7.6 GB
58.1% 43.2 GB / 74.8 GB
0.84 0.71 0.62 21d 4h
control-cluster-worker-1
7.3% 2 vCPU
36.8% 1.3 GB / 3.7 GB
39.1% 14.5 GB / 37.2 GB
0.12 0.10 0.08 1h 2m
What is using the clusterAll applications
ApplicationCPUMemoryReplicas
metrics
flui-control
0.03 cores3% of limit
540 MB53% of limit
1/1
postgres-main
production
0.04 cores6% of limit
312 MB41% of limit
1/1
demo-app
production
0.01 cores2% of limit
96 MB37% of limit
2/2
logs
flui-control
0.02 cores4% of limit
180 MB35% of limit
1/1
Manage VNets
VNet name
flui-env-vnet
IP range
10.10.0.0/16
Subnets
10.10.1.0/242 server(s) attached

Cluster storage

One disk on the master node, shared with every other node. This is where most of your apps' data lives.

Refresh
ReadyShared storage is healthy and serving volumes.
Backing volumeHETZNER
Volume ID100000042
Size20 GB
Mount path/var/lib/flui/storage
Filesystem labelflui-data
Volume usage
4bound volumes
Requested 6 GB of 20 GB30%
NFS configuration
Application snapshots in this cluster (3)
Where your apps store data

Flui picks the right one automatically based on the app. You almost never need to choose by hand.

Shared storageflui-sharedActive
The default. Disk lives on the master node and is shared with every other node.
Pinned storageflui-dedicatedActive
Disk lives on one specific node and the app stays on that node. Used by databases.
Local fallbackflui-localFallback
When shared storage is turned off, every app uses the local disk of the node it lands on.
2 of 2 node(s)Change nodes on the Scaling tab
control-cluster-master· ubuntu 24.04Details
hetzner 4C 8 GB 80 GB Falkenstein DC Park 1 203.0.113.24 Managed by Flui
control-cluster-worker-1· ubuntu 24.04Details
hetzner 2C 4 GB 40 GB Nuremberg DC Park 1 203.0.113.87 Managed by Flui

Scaling

control-cluster · hetzner
Nodes
−2+
floor 1 · target 2 · max 3
Pressure
49% memory
CPU 9% · worth watching at 75%
Waiting
0apps
everything is running
Spend
€11.20/mo
budget €13/mo · 2 nodes
How this cluster growsAutomatic — Flui buys

When an app has nowhere to run, Flui provisions the machine that fits, within the monthly budget you set, and removes it when it is no longer needed.

EditWhat it would buy
What Flui decidedFull history
WhenWhat Flui sawWhat happened
17:51 A worker joined and took the waiting app. node joinedcontrol-cluster-worker-1 is ready.
17:49 One app had nowhere to run: 512 MiB more than the fleet holds. node orderedProvisioned a CX 23 within the €13 monthly budget.
04:10 A third node had nothing left to run after the night drop. node removedDrained it and gave it back.
View & Manage Rules
Status
✓ In Sync
Last reconciled
3 days ago
In sync with provider
Applied Rules (5)
DescriptionDirectionProtocolPortIPs
SSH access for server management → In TCP 22 203.0.113.10/32
HTTPS Ingress (Traefik) → In TCP 443 ::/0, 0.0.0.0/0
HTTP Ingress (Traefik) → In TCP 80 ::/0, 0.0.0.0/0
Allow all outbound TCP traffic ← Out TCP any ::/0, 0.0.0.0/0
Allow all outbound UDP traffic ← Out UDP any ::/0, 0.0.0.0/0
DNS ZonesManage
example.comhetznerIn Sync
TLS: Let's Encrypt wildcard
DNS: <application>.control-cluster.example.com wildcard
Last reconciled: 2 days ago
Wildcard Certificate Issuers (DNS-01)
Manage certificates for wildcard domains.
DNS-01 Ready
letsencrypt-staging-wildcard
admin@example.com
Ready
letsencrypt-production-wildcard
admin@example.com
Ready
Standard Certificate Issuers (HTTP-01)
Manage certificates for standard domains.
letsencrypt-staging
admin@example.com
Ready
letsencrypt-production
admin@example.com
Ready
App EndpointsAdd Endpoint
shop.example.com
demo-app · production
Domain Valid Edit Sync
status.example.com
grafana · production
Domain Valid Edit Sync
api-7k2q.control-cluster.example.com
api · production
Domain · Wildcard Valid Edit Sync
NamespacedefaultLoad
No variable sets found in namespace default Variables are created when applications are deployed
Billing period
Oct 1, 2026 — Nov 1, 2026
112h / 744h elapsed
Spent so far
€1.84
incl. 22% VAT · €1.51 excl. VAT
Oct 1, 2026 to today, removed machines included
Machines€1.70
Storage€0.14
Expected by month end
€12.10
incl. 22% VAT · €9.92 excl. VAT
Spent so far, plus what runs now for the rest of the month
Machines€11.20
Storage€0.90
Monthly cost of this setup
€12.10
incl. 22% VAT
2 machines and 1 volume as they are now, over a whole month
Machines€11.20
Storage€0.90
Machines (2)All costs
control-cluster-master
mastercx33running
€1.68
112h billed
control-cluster-worker-1
workercx23running
€0.02
1h billed

A preview of the dashboard. Look around the real one, live →

One platform, on the infrastructure you choose.

Pick the European provider that fits each project, or use servers you already own. Flui turns them into one platform — clusters, networking, applications, databases and observability under a single operating model — so your team spends its time shipping, not assembling.

Without a platform layer
With Flui
A different API, console and vocabulary for each provider
One API, one CLI and one dashboard, on whichever provider you choose
Servers configured by hand and drifting apart
A cluster with a declared desired state, reconciled continuously
Networking and firewall rules rebuilt per environment
Private networks, firewall, DNS and TLS as part of the platform
Deployments that differ by who ran them
Applications described in flui.yaml, deployed and rolled back the same way
Logs and metrics added after the first incident
Observability installed with the platform, from minute zero

The provider you choose. A modern platform on top.

The parts a production platform needs, running on your own servers or on the supported providers — the same way on each, where each can support it.

Compute

Machines provisioned on your provider account, or servers you already own.

k3s / Kubernetes

A real cluster at its core, without asking your team to become Kubernetes operators.

Applications

Deploys, revisions, rollbacks and environment variables on one surface.

Databases

Created beside your apps, with access control, backups and a SQL console.

Private networking

Nodes talk on a private network; firewall, DNS and TLS come with it.

Observability

Logs, metrics and dashboards for your apps and for the platform itself.

Scaling groups

Workloads autoscale, and a cluster can add nodes when it runs out of room.

Provider abstraction

Each provider declares what it supports; Flui adapts instead of pretending.

What ships, how each part works, and what is not finished yet. See the platform →

You describe what you need. The provider is an implementation detail.

  1. Intent “Run this application with a Postgres database, reachable at app.example.eu.”
  2. Capabilities compute · database · private network · firewall · DNS · TLS
  3. Control plane Flui holds the desired state and reconciles it, continuously
  4. Implementation The supported providers · your own servers over SSH
  5. Infrastructure Machines on your provider accounts, billed to you

Portable, honestly

Providers are not identical, and Flui does not pretend they are. Each one declares what it supports, and where one falls short Flui says so and adapts.

Multi-provider when you need it

A capability, not a topology you are pushed into. One provider is a complete setup — and when requirements change, the platform does not have to be rebuilt.

Readable by people and agents

Intent and capabilities are concepts a person can review and an agent can act on, which is the difference between an API wrapper and a platform.

How providers and capabilities work
Agent-first

Built for people. Designed for agents.

Flui models infrastructure so that both a person and a coding agent can understand and operate it. Agents work with applications, databases and capabilities over MCP — not with raw provider APIs — and the result is state you can still read afterwards.

  • The agent gets its own scoped key. Never yours.
  • On more than forty write routes, a person answers first.
  • The desired state stays in flui.yaml — reviewable, diffable, revertable.
agent → flui /mcp
  1. › Deploy this repository.
    Maps the repository to a flui.yaml; a person approves the deploy.
  2. › Why did the last deploy fail?
    Reads the logs, events and release history, and explains.
  3. › It is slow under load — scale it.
    Raises the replica count and reports what changed.
  4. › What would another worker cost us?
    Previews the node the scaling group would add, with its price.
  5. › Move this application to the new cluster.
    Plans the migration; a person approves the cutover.
Open source

Run Flui yourself. Free.

Flui is open-source software, not a trial of a commercial product. Install it, connect your providers and run it with your own team — you never have to talk to us.

  • AGPL v3 — the control plane and the dashboard, complete
  • Self-hosted, on your provider accounts or on servers you own
  • Your credentials, your machines, your data. We keep nothing
  • No paid tier and no feature held back to sell a service
  1. 01 Install Flui
  2. 02 Connect a provider
  3. 03 Provision a cluster
  4. 04 Deploy applications
  5. 05 Operate from one platform
Install

Install Flui.

Pick where it runs. You get the commands to paste in your terminal: your keys stay on your machine. Read the guide

Nuremberg, Germany
Server size
Get a key in the Hetzner console ↗No account yet? Create one ↗One token. In a project made for Flui: Security → API tokens → Generate, name it flui, permission Read & Write.
Run on your machine
  1. Install the CLI (Node.js 18 or later; on a permission error, install Node with nvm)
    npm install -g @flui-cloud/cli
  2. Choose the passphrase that seals your keys on this machine
    flui vault init
  3. Paste your Hetzner key when asked. It never leaves this machine
    flui config set hetzner
  4. See the sizes Nuremberg sells right now that suit Flui
    flui server-types list --provider hetzner --region nbg1 --fits
  5. Build it. About seven minutes
    flui env create --provider hetzner --region nbg1 --node-size cx23
Stuck?Open an issue on GitHub ↗or from the terminal, with the GitHub CLI:
gh issue create --repo flui-cloud/flui-core --title "Install: hetzner nbg1 cx23" --body "$(flui version)"
Services

Need help building your platform?

We build Flui, and we design, migrate and operate platforms with it. It starts with a free first call, and every engagement is quoted for your case.

Book a free first call How we work Built with you, owned by you: the infrastructure runs in your accounts, and ending the engagement disables nothing.
Get started

Your cloud platform. Your control.

Choose how much help you want — including none.

For developers

Run it yourself.

Look around a real Flui, live, then install it on your own servers. Open source, and nothing to sign up for.

For companies

Build your platform with us.

Architecture, migration, a platform on European providers, or ongoing care. You keep the accounts, the infrastructure and the option to run it alone.