OPEN SOURCE PLATFORM

Turn your servers into a developer-first cloud platform.

Flui is a self-hostable PaaS for real app stacks on infrastructure you control. Bring your own Ubuntu server, VPS, cloud account or European provider and get one clean interface for apps, databases, access, logs, metrics and scaling.

AppsDatabasesScalingBYOSAGPL v3
app.flui.cloud/clusters/control-cluster
1

control-cluster

b2a1a745
HEALTHY
Avg CPU
15%
Avg Memory
71%
Monitoring
NODES
2
+ control-cluster-1 running
+ control-cluster-2 running
NETWORK
Attached
VNet
ebe5cb3c
PLATFORM COMPONENTS
Healthy
16
Degraded
0
Missing
0
View all
FIREWALL
IN_SYNC
Desired rules
5
Applied rules
5
Last sync
3d ago
Manage firewall
BACKUPS

No backups configured for this cluster.

Enable backups
DATABASES
2
Primary
postgres-main
SQL editor and LLM query assistant ready.
Open database workspace
DNS ZONE

Not configured

Manage DNS
VARIABLES
0

No variable sets

Manage variables

Cluster Monitoring

Real-time metrics updated every 5 seconds
NETWORK I/O OVER TIME
last hour
Network InNetwork Out
04:4005:0005:2005:4006:0006:2006:4007:0007:20
SERVER: control-cluster-master
Instance: control-cluster-master
15.1%
CPU Usage
70.5%
Memory
28.6%
Disk Usage
VIRTUAL NETWORK
Manage VNets
VNet Name
flui-env-vnet
IP Range
10.10.0.0/16
Subnets
10.10.1.0/241 server(s) attached

Cluster storage

One disk on the master node, shared with every other node. This is where most of your apps and databases store state.
Disabled
Shared storage is disabled
This cluster uses flui-local as the fallback. PVCs land on each node's bundled disk and are not portable across nodes.
WHERE YOUR APPS STORE DATA
Flui picks 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. Good for everything: web apps, queues, file uploads, caches.
Pinned storageflui-dedicatedActive
Disk lives on one specific node and the app stays on that node. Used by databases that need real disk guarantees (Postgres, MariaDB, Valkey, PocketBase). The catalog picks this automatically when needed.
Local fallbackflui-localFallback
When shared storage is turned off, a per-app disk uses the local volume of whatever node it lands on. Data is not portable between nodes.
NODES
2
NameRoleCPUMemoryStatus
control-cluster-1 master 12.4% 65.2% running
control-cluster-2 worker 18.1% 71.8% running

Scaling

Add or remove workers manually, and configure the autoscaling intent and thresholds for when the auto loop ships.
Status
Disabled
Current Nodes
1
Memory
70.3%
CPU
15.2%
AUTOSCALING INTENT
Automatic scale-up is rolling out gradually. For now, when warnings appear, use the + control above to add a worker. The cluster needs a VNet attached to be eligible for autoscaling.
FIREWALL
View & Manage Rules
Status
In Sync
Last Reconciled
3d ago
In sync with provider
APPLIED RULES (5)
DescriptionDirectionProtocolPortIPs
SSH access for server management → In TCP 22 79.45.96.169/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 ZONE
Manage
No DNS zone assigned
+ Assign DNS Zone
STANDARD CERTIFICATE ISSUERS (HTTP-01)
Manage certificates for standard domains.
letsencrypt-production admin@flui.cloud Ready
Reconfigure standard issuersDelete standard issuers
APP ENDPOINTS
+ Add Endpoint
app.demo.com flui-docs · default Test address Valid Sync
CLUSTER VARIABLE SETS
+ New variable set
No variable sets
Create reusable sets of environment variables and secrets, and attach them to multiple applications at once.
BILLING PERIOD
May 1, 2026 — Jun 1, 2026
360h / 744h elapsed
SPENT THIS MONTH
EUR 0.69
Net: EUR 0.56
From May 1, 2026 to today — includes already-terminated nodes
ComputeEUR 0.69
StorageEUR 0.00
TrafficEUR 0.00
RUN RATE
EUR 4.87
Net: EUR 3.99
1 node + 0 volumes at the current rate, for a full month
ComputeEUR 4.87
StorageEUR 0.00
NODES (1)
control-cluster-master
mastercx23active
EUR 0.69
66h billed

What Flui turns your servers into.

Real app stacks, not single deploys

Run applications, databases, workers and services with the same operating model. Flui gives teams one platform surface for deploys, access, logs, metrics, resources and scaling.

BYOS: Bring Your Own Server

Install Flui on any Ubuntu machine you control: VPS, bare metal, on-prem server or cloud instance. Flui turns those machines into a cloud-like platform without taking ownership away from you.

Databases as platform components

Create and operate databases alongside your apps, with access control, backups, metrics and an integrated SQL editor instead of treating state as just another container.

LLM assistant for operations

Ask Flui what happened after a failed deploy, why logs changed, or how to tune resources. The assistant reads platform context and helps turn signals into next actions.

SQL editor with an LLM co-pilot

Explore database tables, write queries, explain slow statements and generate safer SQL with an assistant that understands the selected database context.

Observability is not an afterthought

Metrics, logs, and dashboards from minute zero, for your apps and for the platform itself. Not a stack you install later: a pillar the rest of Flui stands on.

App catalog

Apps and databases.
Hosted on your servers.

A curated set of open-source apps, databases and platform tools installed on your cluster, in your jurisdiction, with the operational pieces (TLS, backups, metrics) already taken care of.

The catalog is open by design. Any container can become a Flui app — the curated entries are simply reviewed contributions to the same open format.

Curated entries include Nextcloud, Immich, Gitea, n8n, Vaultwarden, WordPress, PostgreSQL, Valkey, RabbitMQ, Kafka, MinIO, OpenSearch and Meilisearch — all expressed through the same open format.

Curated entry
PostgreSQL
Relational database with backups, metrics and SQL workspace.
kind Database
engine postgresql:17
port 5432
storage 20Gi (pinned volume)
sql editor + LLM assistant
Packaged as a first-class database component.
Your application
billing-api
An internal service your team operates.
kind Application
image registry.acme.com/billing-api:1.4.2
port 3000
storage none
license proprietary
Wrapped in an Application manifest by your team.
It's the same format for apps, tools and databases, whether we wrote it or you did.
The dashboard

A control plane you'd actually want to use.

Inspect servers, manage networking, operate databases, scale workloads and ask the assistant what needs attention.

app.flui.cloud/clusters/control-cluster
1

control-cluster

b2a1a745
HEALTHY
Avg CPU
15%
Avg Memory
71%
Monitoring
NODES
2
+ control-cluster-1 running
+ control-cluster-2 running
NETWORK
Attached
VNet
ebe5cb3c
PLATFORM COMPONENTS
Healthy
16
Degraded
0
Missing
0
View all
FIREWALL
IN_SYNC
Desired rules
5
Applied rules
5
Last sync
3d ago
Manage firewall
BACKUPS

No backups configured for this cluster.

Enable backups
DATABASES
2
Primary
postgres-main
SQL editor and LLM query assistant ready.
Open database workspace
DNS ZONE

Not configured

Manage DNS
VARIABLES
0

No variable sets

Manage variables

Cluster Monitoring

Real-time metrics updated every 5 seconds
NETWORK I/O OVER TIME
last hour
Network InNetwork Out
04:4005:0005:2005:4006:0006:2006:4007:0007:20
SERVER: control-cluster-master
Instance: control-cluster-master
15.1%
CPU Usage
70.5%
Memory
28.6%
Disk Usage
VIRTUAL NETWORK
Manage VNets
VNet Name
flui-env-vnet
IP Range
10.10.0.0/16
Subnets
10.10.1.0/241 server(s) attached

Cluster storage

One disk on the master node, shared with every other node. This is where most of your apps and databases store state.
Disabled
Shared storage is disabled
This cluster uses flui-local as the fallback. PVCs land on each node's bundled disk and are not portable across nodes.
WHERE YOUR APPS STORE DATA
Flui picks 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. Good for everything: web apps, queues, file uploads, caches.
Pinned storageflui-dedicatedActive
Disk lives on one specific node and the app stays on that node. Used by databases that need real disk guarantees (Postgres, MariaDB, Valkey, PocketBase). The catalog picks this automatically when needed.
Local fallbackflui-localFallback
When shared storage is turned off, a per-app disk uses the local volume of whatever node it lands on. Data is not portable between nodes.
NODES
2
NameRoleCPUMemoryStatus
control-cluster-1 master 12.4% 65.2% running
control-cluster-2 worker 18.1% 71.8% running

Scaling

Add or remove workers manually, and configure the autoscaling intent and thresholds for when the auto loop ships.
Status
Disabled
Current Nodes
1
Memory
70.3%
CPU
15.2%
AUTOSCALING INTENT
Automatic scale-up is rolling out gradually. For now, when warnings appear, use the + control above to add a worker. The cluster needs a VNet attached to be eligible for autoscaling.
FIREWALL
View & Manage Rules
Status
In Sync
Last Reconciled
3d ago
In sync with provider
APPLIED RULES (5)
DescriptionDirectionProtocolPortIPs
SSH access for server management → In TCP 22 79.45.96.169/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 ZONE
Manage
No DNS zone assigned
+ Assign DNS Zone
STANDARD CERTIFICATE ISSUERS (HTTP-01)
Manage certificates for standard domains.
letsencrypt-production admin@flui.cloud Ready
Reconfigure standard issuersDelete standard issuers
APP ENDPOINTS
+ Add Endpoint
app.demo.com flui-docs · default Test address Valid Sync
CLUSTER VARIABLE SETS
+ New variable set
No variable sets
Create reusable sets of environment variables and secrets, and attach them to multiple applications at once.
BILLING PERIOD
May 1, 2026 — Jun 1, 2026
360h / 744h elapsed
SPENT THIS MONTH
EUR 0.69
Net: EUR 0.56
From May 1, 2026 to today — includes already-terminated nodes
ComputeEUR 0.69
StorageEUR 0.00
TrafficEUR 0.00
RUN RATE
EUR 4.87
Net: EUR 3.99
1 node + 0 volumes at the current rate, for a full month
ComputeEUR 4.87
StorageEUR 0.00
NODES (1)
control-cluster-master
mastercx23active
EUR 0.69
66h billed
Click any tab above to switch views
App workspace

Every app, one click away.

Logs, metrics, deployments, env vars, rollbacks and AI-assisted diagnostics in the same place. The dashboard never makes you guess what's running, where the last deploy went or what to inspect next.

See what your apps are doing, live
Follow and search the activity of every part of your app from the same screen. No extra tools to set up, no jumping between dashboards.
When something breaks, you get an answer
Flui uses an LLM assistant to read recent deploys, metrics and logs, then suggests the likely cause and the next fix.
Change settings without downtime
Update keys, passwords and configuration from the dashboard. Your app picks up the change on its own — no waiting, no redeploy.
app.flui.cloud/applications/demo-app
1

demo-app

User
Running
58222c40
REPLICAS
1/ 1
IMAGE
registry.example.com/demo-app:0b1e587
CPU / MEMORY
100m · 128Mi
limits: 500m · 256Mi
LAST DEPLOY
05/15/2026 18:46
LATEST RELEASE
Succeeded
05/15/2026 18:46
registry.example.com/demo-app:3ac8110 registry.example.com/demo-app:0b1e587
Release history
Healthy
CPU
0%
MEMORY
1%
0m · 3.0MiB
Monitoring
https://demo-app.flui.cloud
REPLICAS
1/ 1
ready / desired
CPU / MEMORY
CPU req100m
CPU lim500m
Mem req128Mi
Mem lim256Mi
Edit
CONFIGURATION
0
0 env vars · 0 secrets
Manage
DNS ENDPOINTS
11 sync
endpoint
demo-app.flui.cloud
Manage
RECENT ACTIVITY
View all
Deploy05/15 18:46
Build completed05/15 18:43
Build started05/15 18:40

Application Monitoring

Real-time metrics updated every 5 seconds
HEALTH
1/1 pods operational
Last check: May 16, 2026, 07:34 AM
15.1% CPU
Usage
15.1m
Limit
500m
1.2% MEMORY
Usage
3.0 MiB
Limit
256 MiB
REPLICAS
Ready:1/Desired:1
CONTAINER RESTARTS
Total
0
Last hour
0.0
NETWORK I/O
Receive
37 B/s
Transmit
1.1 KB/s
POD PHASES
Running1
Pending0
Failed0
HISTORICAL METRICS
1 Hour2 Hours3 Hours6 Hours1 Day
CPU Usage Over Time
CPU Usage History
0%25%50%75%100%
MEMORY USAGE OVER TIME
Memory Usage History
0%25%50%75%100%
NETWORK I/O OVER TIME
Receive Transmit
LOG VOLUME DISTRIBUTION
last 1h
ERROR 0 WARN 8 INFO 274 DEBUG 0 TRACE 0
ASSISTANT FINDING
Suggested
The recent warning is tied to a slow database query on /api/projects.list.
Next action
Open SQL editor and inspect the projects_owner_idx index before scaling the app.
TimestampLevelMessagePodStream
Timestamp
May 16, 07:41:13.412
Trace ID
a7d2f4c1
Pod
demo-app · pod 1
Container
web
Stream
stdout
Method
GET /
Status
200
Latency
18ms
Raw message
10.42.0.1 - - [16/May/2026:05:41:13 +0000] "GET /" 200 1568
Timestamp
May 16, 07:41:13.487
Trace ID
a7d2f4c2
Pod
demo-app · pod 1
Container
web
Stream
stdout
Method
GET /metrics
Status
200
Latency
4ms
Raw message
10.42.0.1 - - [16/May/2026:05:41:13 +0000] "GET /metrics" 200 412
Timestamp
May 16, 07:41:13.521
Trace ID
a7d2f4c3
Pod
demo-app · pod 1
Container
web
Stream
stderr
Method
GET /api/projects.list
Status
200
Latency
412ms
Raw message
slow query /api/projects.list returned in 412ms (threshold: 300ms)
Timestamp
May 16, 07:41:13.598
Trace ID
a7d2f4c4
Pod
demo-app · pod 1
Container
web
Stream
stdout
Method
GET /api/health
Status
200
Latency
2ms
Raw message
10.42.0.1 - - [16/May/2026:05:41:13 +0000] "GET /api/health" 200 19
Timestamp
May 16, 07:41:13.642
Trace ID
a7d2f4c5
Pod
demo-app · pod 1
Container
web
Stream
stdout
Method
GET /assets/app.js
Status
200
Latency
6ms
Raw message
10.42.0.1 - - [16/May/2026:05:41:13 +0000] "GET /assets/app.js" 200 32k
REVISION HISTORY
Every change to this application is tracked as a revision. Roll back to any prior revision in one click.
rev-7 05/15 18:46 Image updated to 0b1e587 Active Rollback
rev-6 05/15 18:30 CPU limit bumped to 500m Archived Rollback
rev-5 05/14 14:21 Env var WAS_DEBUG removed Archived Rollback
rev-4 05/13 09:02 Initial deploy Archived Rollback
PLAIN VARIABLES (ConfigMap)
JSONSave changes
KeyValue
test-env test-value
+ Add variable
SENSITIVE VARIABLES (Secrets)
JSONSave changes
KeyValue
test-secrete
+ Add variable
REPLICAS
● desired 1 · ● ready 1 · ● available 1Edit
1 + replica
demo-app · pod 1
registry.example.com/demo-app:0b1e587Edit
Usage: 0m (0.0%)
CPU Reserved100m
1m500m1,1k1.4
Usage: 3.0 MiB (1.2%)
Memory Reserved128Mi
1Mi500Mi1,4Gi3,8Gi
CPU requests higher than actual usage — wasting node resources
CPU Maximum500m
Memory Maximum256Mi
APP ENDPOINTS
+ Add Endpoint
demo-app.flui.cloud demo-app · default Valid Sync
Builds
RefreshForce new build
Build history for this application
ProviderStatusBranchCommitImageDurationStarted
CI pipeline Completed main 0b1e587 demo-app:0b1e587 57s 13h ago
CI pipeline Completed main 3ac8110 demo-app:3ac8110 59s 15h ago
CI pipeline Ready to release main 1f6053e demo-app:1f6053e 1m 41s 15h ago
CI pipeline Completed main 1e7ea2d demo-app:1e7ea2d 56s 16h ago
CI pipeline Ready to release main c3a7d09 demo-app:c3a7d09 2m 7s 17h ago
CI pipeline Failed main 4e47fc5 43s 17h ago
Releases · Git build
Refresh
Each version, which is currently deployed and the outcome of past releases.
Currently deployed0b1e587latest
registry.example.com/demo-app:0b1e587
05/15 18:46 · sha256:6839740f0a95
Last released 05/15 18:46 · deployed
Previously released3ac8110
registry.example.com/demo-app:3ac8110
05/15 16:07 · sha256:5117bcdef311
Last released 05/15 16:07 · 2 releases
Deploy
Previously released1f6053e
registry.example.com/demo-app:1f6053e
05/15 16:00 · sha256:3cf2533ca02e
Last released 05/15 16:00 · 2 releases
Deploy
Never releaseda74bdbf
registry.example.com/demo-app:a74bdbf
05/15 16:00 · sha256:a74bdbf
Deploy
Never released6ec7f47
registry.example.com/demo-app:6ec7f47
·
Deploy
Snapshots
All ▾Refresh+ Create snapshot
Point-in-time copies of this app's data. They live on the same real disk that hosts the app, so they take up space there.
No snapshots yet
Create a snapshot to capture the current state of this application's volume. Snapshots consume disk space inside the cluster's shared volume.
Click any tab above to switch views
CLI · API · Open spec

Or skip the UI entirely.

Everything in the dashboard is also a CLI command and a manifest you can version-control. The manifest format is an open spec — schema, validator, and types live in a separate repository and are published to npm. Flui consumes the spec like any other tool could.

flui.yaml is an open specification.

~/projects/marketing-site
$flui deploy
Deploy from manifest
Cluster:production
App:marketing-site
Manifest is valid
Submitted to flui.api
Building image…
Build completed
Rollout complete
"marketing-site" is live
URL:https://marketing-site.acme.flui.app
$

From clone to first deploy in about 5 minutes.

flui.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
apiVersion: flui.cloud/v1beta1
kind: Application
metadata:
name: marketing-site
build:
strategy: dockerfile
dockerfile: ./Dockerfile
deploy:
port: 3000
exposure: public
resources:
profile: small
scaling:
min: 1
max: 3
domain:
auto: true
tls: true
env:
- name: NODE_ENV
value: production

Spec repository: flui-cloud/flui-spec · npm package: @flui-cloud/spec · JSON Schemas

Where Flui runs

Portable across providers. Installable on your servers.

Same flui.yaml, same operating model, whether the machines come from an integrated provider, a VPS, bare metal or your own Ubuntu servers.

Hetzner Scaleway Contabo · planned

Need a different provider or BYOS path? Get in touch →

For partners

Build your cloud offering on Flui.

If you operate cloud infrastructure but lack a modern software layer, Flui is the platform your customers expect. Open source, customizable, and engineered for production.

White-label friendly

Brand the platform as your own. Flui is the engine, you're the offering.

Engineered for production

Tested, documented, and built on K3s, Postgres and the same battle-tested open-source stack you already trust to run real workloads.

Custom integrations

Need a specific provider, custom workflow, or tailored deployment? Let's design it together.

Talk about partnering
Built in public

Flui is alpha. Here's what's real today.

Functional, self-hostable, and actively developed. Not yet recommended for production while security hardening and the next provider integrations land.

Shipped live
  • Multi-provider deploy (Hetzner, Scaleway)
  • Cluster dashboard
  • App management
  • CLI & flui.yaml
  • Observability stack (Loki, Grafana, Prometheus)
  • App Catalog
  • Log Explorer
  • LLM assistant for deploy and log diagnostics
  • Database workspace with integrated SQL editor
  • LLM-assisted SQL query support
  • Pod autoscaling
  • Manual infrastructure scaling
  • Firewall management
  • DNS & SSL/TLS
  • VNet & private networking
  • SSO integration
In progress in progress
  • Open specification v1.0 (flui.yaml as a versioned, vendor-neutral standard)
  • Security hardening (key management, RBAC review, supply-chain integrity)
  • Bring your own server (Ubuntu machines via SSH)
  • Contabo & OVH support
  • Cross-provider backup & failover
  • Automated infrastructure scaling
  • Self-hosted Git repositories
  • Container registries — Docker Hub & Harbor

Follow along on GitHub or in the changelog.

Get started

Bring Flui to your servers.

Star the project to follow along, or turn your Ubuntu machines into a developer-first cloud platform.

Star on GitHub.

Follow the project as Flui grows into an ownable cloud platform for apps, databases and scaling.

Star on GitHub

Self-host the platform.

Install Flui on infrastructure you control and start operating real app stacks from one dashboard.

Get started