EmberFabric

Ember Fabric

Bring the metal. Get a cloud.

Got a beefy box in the office? A homelab? A rack in a colo? Pair it with Fabric and it becomes a node — with managed databases, app backplanes, builds, and public URLs on tap. We host the console and API, so there's no control plane for you to babysit.

Open the console → How this page got here ↓

POST /fabric/workloads
{
  "kind": "container",
  "name": "hello-api",
  "image": "ghcr.io/example/hello-api:latest",
  "ports": [{ "containerPort": 8080 }],
  "placement": { "nodeId": "metal-c259604c" }
}
requested dispatching applying running

Managed services. Your machines.

Fabric doesn't just run containers. It stands up the stuff your apps actually need — on hardware you already paid for.

Managed Databases

live

Ask for a Postgres. Get a database.

One API call and there's a Postgres on your node — databases created, credentials dropped straight into your app's secret store. One engine can feed every app you run. You will never paste a connection string again.

POST /fabric/instances
{ "kind": "postgres",
  "databases": [{ "name": "grid_reporting" }] }

requested → provisioning → ready
creds → vault://mango-grid-web/database/…

Stacklets

early

An entire infrastructure plane, per app.

A Stacklet is your app's entire backplane in a box — messaging, coordination, secrets, identity, service discovery. It needs a database? Fabric knows: it spins up the Postgres first, wires it in, then lights up the Stacklet. Dependency order is our job, not yours.

stacklet grid-backplane
 ├ broker · coordinator · vault · identity
 └ needs → postgres (stack db)

postgres ready → binding bound → stacklet up

Apps

early

Whole environments, one resource.

Bundle your software, its databases, its backplane, and its domains into an App. Fabric brings the whole graph up in the right order — and tears it down just as cleanly with one call. No orphaned containers, no mystery secrets left behind.

app grid
 ├ stacklet ready
 ├ postgres ready
 ├ workloads ×3 running
 └ ingress → grid.mangoignite.com

POST /fabric/apps/grid/deprovision

Builds

live

Git ref in. Immutable image out.

Point Fabric at a repo and your own machine does the build — logs streaming live, a commit-pinned image landing in your registry. The same boxes that run your apps build them. No build-minute meter, no surprise bill.

build EmberConsult/Grid @ dev
 → building on metal-0908f1ed…
 → push registry…/grid:sha-e9633b94

tag is commit-pinned · immutable · ready to run

The boring bits, included.

Under the hood it's all simple resources — one API, one console, no YAML archaeology.

Workloads

live

Processes, containers, process groups — lifecycle, health, and logs sorted.

build → run → route

Ingress & Domains

live

Every app gets a public URL instantly. Bring your own domain when you're ready — DNS and certs handled.

*.apps.emberfabric.com

Registry

live

A home for your fleet's images, wired straight into builds and workloads.

push · pull · run

Agent-first API

live

Everything is plain REST with desired and observed state. Your AI agents will feel right at home.

GET /fabric/instances

Next up: volumes & backups · secrets · logs · projects & quotas

How it works

01

Pair a node

Install Fabric Metal on any Linux box. It phones home — no open ports.

metal pairs outbound →
02

Ask for stuff

Databases, backplanes, builds, URLs — console, API, or your agent.

POST /fabric/instances
03

Watch it happen

Fabric makes it real and shows you what's actually running. No vibes — observed state.

desired == observed

We run the plane. You bring the metal.

Ours to run

The console, the API, DNS, certs, and public ingress under *.apps.emberfabric.com. Always on — and never your pager.

console.emberfabric.com

Yours to keep

The nodes. Any Linux machine — the PowerEdge in the office, a colo box, that NUC under the desk. Fabric Metal dials out to join your fleet: no inbound ports, nothing listening on the internet.

metal-0908f1ed…

This page is served by Fabric.

Not a metaphor — we eat the dog food. This site is a normal customer app: built from git by Fabric, shipped as an image, running on our own PowerEdge, routed by Fabric ingress. Same console you'd use.

sourcedev · github.com/EmberConsult/FabricWebsite
buildFabric build workload → commit-pinned OCI image
runtimeFabric container workload · app listens on :8080
serviceFabric Service selects the active deployment target
ingressFabric Ingress + hostname binding → www.emberfabric.com
status running — you're reading it