This page takes a datacenter operator from nothing to a running, branded, multi-tenant GPU cloud — including where every byte of your data lives. Choose a deployment model, create your operator account, and bring your fleet online.
Step 0 · Choose your deployment model
Fastest launch · Rackify operates
Rackify deploys, hosts, and operates the full stack. You get an operator invite and start enrolling servers the same day.
Your cloud account · your jurisdiction
The entire platform deploys into your own cloud account and region from Terraform and documented setup — control data, metrics, and logs never leave your account or chosen jurisdiction.
Your metal · no public cloud
The architecture is built for it: agents speak plain HTTPS to one ingest API that owns all store access, so the managed metric and log backends swap for self-hosted equivalents behind the same contract — agents never change.
Honest labeling, as everywhere: LIVE means running in production today and documented on this page; ROADMAP means the architecture supports it and it is being scheduled with design partners — never a silent gap.
Steps 1–12 · From invite to live fleet
An operator is one independent datacenter — yours. It owns its own admin accounts, its own customer tenants, its own servers and its own capacity pool, and no other operator on the deployment can see any of it. Operator accounts are code-gated: Rackify issues your first admin invite code during onboarding, and that code names your operator, so redeeming it creates your datacenter and makes you its first admin. Single-use, valid 14 days, shown exactly once.
/register on your console URL./admin), scoped to your operator.Security model: passwords are argon2id-hashed; sessions are opaque 30-day tokens stored only as hashes; every agent, operator, and customer holds its own revocable identity. There are no shared credentials anywhere in the platform — and in sovereign deployments, no long-lived cloud keys either (the console reaches your cloud through short-lived, identity-federated credentials).
More seats at your operator come from Rackify: ask for another operator invite naming your datacenter, and whoever redeems it at /register becomes an admin alongside you — same tenants, same fleet, same pool. Codes are single-use, valid 14 days, and shown exactly once.
/admin/onboard (it names who issued each one). The servers they installed keep running either way: each node holds its own credential, not theirs.Inside your datacenter, an operator account is root. Anyone you add sees every one of your tenants’ machines and telemetry, your whole capacity pool, and can reassign nodes, issue and revoke the operator’s enrollment tokens (yours included) and create tenants. What they cannot see, ever, is another operator — that boundary is enforced on the server from the session and proven by an automated cross-operator test on every release. There is no narrower role within an operator yet, so keep your own list short.
Signing in as an admin lands on Fleet — every machine in your datacenter, and only yours:
Everything refreshes on a 15-second cadence without page reloads. Sidebar items marked SOON (Launch AI Factory, Workloads, Incidents, Tickets, Revenue) are roadmap previews.
Launch NeoCloud in the sidebar is a real page and an honest one: four sample storefront designs for renting out your GPUs — bare-metal benchmark, enterprise, price-transparent marketplace, developer-console — so you can pick a direction. Every preview is a mockup: figures are masked, regions are lettered, nothing is wired to your fleet or your rates, and the choice is not saved anywhere. Launching a storefront is not available yet and the button says so — what ships today is the decision, not the store.
Your console can carry your identity LIVE. Open Manage profile (/profile): a Custom product name field and a Console logo upload sit there, and saving either changes the name and mark in the top-left of your console on your next page load. Scope, precisely: this dresses your operator console (/admin and everything under it) and nothing else — your customers’ console, the master console and this website are untouched, because one datacenter putting its mark on its own console must never repaint another’s.
The name your customers see is a different setting, and it is not yours to change. Your custom product name dresses your console; the platform brand is what their console and every page title says. It is data, not code, so a rename takes effect everywhere immediately — but it is one row for the whole deployment: the separate Branding card (on /admin/tenants, not your profile) renders only for the deployment’s super admin, and the API answers an operator account a plain 403, because a rename by one operator would rebrand every other operator’s customers.
Per-operator branding of your customers’ console — your name and mark where they sign in, rather than only where you work — is SOON. Until that row is per-operator, one deployment carries one customer-facing name; that is the honest limit, not a setting we have hidden from you.
Add GPU servers on your fleet page opens /admin/onboard — the guided walkthrough, and the place tokens live. Step 1 there is Get an enrollment token: switch to Create new token, give it a name (and a description if it helps), press Create token, and the token is revealed exactly once, at that moment — together with the install command to paste. Only its hash is stored, so reopening the page never reveals it again.
Hold as many as you find useful — one per datacenter, one per bootstrap script, one for a contractor you revoke afterwards. They belong to your operator, not to your seat: every admin on your team sees the same list, with each token’s name, who issued it and when it last enrolled a machine, and can revoke any of them. Revoking deletes it — the token stops enrolling immediately, and every server already installed with it keeps running, because each machine holds its own credential rather than yours.
Where servers land: every server enrolled with one of your tokens joins your operator’s capacity pool — yours alone, never visible to customers and never to another operator. Your customers rent whole nodes out of your pool from their own console (next steps), and you can reassign any node manually at any time.
Per box: Ubuntu 22.04 or 24.04+, an installed NVIDIA driver (nvidia-smi works), outbound HTTPS to your console URL (port 443 — no inbound access is ever needed), and a sane clock.
curl -sSL https://<your-console-url>/install.sh | sudo bash -s -- --token <TOKEN>
A token is reusable, so this exact line rolls out a whole rack (add --site <name> per site, e.g. dal-01). The installer preflights the OS, driver, connectivity, and clock with loud, actionable failures; downloads the checksum-verified agent; installs a hardened systemd unit; enrolls; and starts streaming. Each node and its GPUs appear in Fleet — in your capacity pool — within two minutes. The token resolves to your operator server-side, so a server can only ever enroll into the datacenter whose token installed it.
On a shared box, hand the token over in the environment instead — arguments are world-readable through ps: export CHAMBERD_ENROLL_TOKEN with a leading space (keeps it out of shell history), then pipe to sudo -E bash with no --token. The installer forwards it to the agent the same way, so the secret never reaches any process’s argv.
systemctl status chamberd # active (running), Restart=always + watchdog journalctl -u chamberd -f # live agent log
Removal: curl -sSL https://<your-console-url>/install.sh | sudo bash -s -- --uninstall. The installer is idempotent — re-running it is safe. Agents buffer 24 hours of telemetry on disk and backfill with original timestamps after outages (up to a 55-minute replay cap; older gaps are shown honestly).
Every node reports the --site label it was installed with, and the fleet map turns those into markers sized by GPU count and coloured by health. The card is the map: a title, one sentence, the markers and a compact legend. Everything about a site — its nodes, GPU models, aggregate GPU memory, newest heartbeat, online/offline split, open conditions, its coordinates and the button that changes them — is in the box that opens when you hover a marker. Tab to a marker for the same box, press E on a focused one to open its editor, and the box stays open while your pointer or focus is inside it.
A marker comes from one of two places, and the map always says which.
PUT /api/ops/sites/<site>). Solid marker. Yours always win: a position you typed is never replaced or moved by anything below, and clearing it is one click.≈, and the hover box says the position came from the agents rather than from your team.Nothing is guessed from the name. dal-01 is a string you typed, not a claim about Dallas — there is no geocoder and no name-to-city table anywhere in the product. And a derived marker is always one real machine’s location, never a point averaged between machines: averaging two nodes on different continents would draw a marker in open water, where no hardware is.
What we record, plainly: every request an agent makes reaches us with an approximate location for that connection, and we keep the latest one per node (city-level at best) so the map can place a site you have not placed yourself. It is the location of the machine’s network egress — for a datacenter usually the building; behind a VPN, corporate tunnel or cloud NAT it can be another country — which is exactly why your own coordinates outrank it and why the two never look alike. It is visible only to your operator, and only rolled up to the site; simulated demo nodes and anything running off our platform get no position at all.
A tenant is the isolation boundary inside your datacenter — one per customer company, and every tenant you create belongs to your operator. Use Create tenant on /admin/tenants. Your pooled servers reach a tenant two ways: the customer rents whole nodes themselves from your live availability (by GPU model), or you reassign a node from its detail page. The per-tenant logs visible to members toggle (default on) controls whether that customer’s users can read their own machines’ logs.
Isolation is enforced server-side at both levels, always. Every metric and log line is attributed to its tenant and its operator by the platform — never by anything the agent or browser sends — and every query has its scope injected from the session: a customer’s to their tenant, yours to your operator. Nobody, including you, can hand the platform a raw query to widen it. Two automated leak tests run in CI on every change: one proves a customer cannot read another customer, the other that an operator cannot read another operator.
Invite member on a customer’s tenant mints their user accounts — send the single-use code; they follow the customer guide and can start renting your pool capacity the moment they sign in. Operator seats for your own team are a different door: ask Rackify for an invite naming your operator (above). The operator console mints member invites only, deliberately — an account that decides which datacenter a new operator joins is a decision that belongs one level up.
Click any node cell to open its detail page:
gpu_missing event; a new UUID is flagged for your explicit swap acknowledgment.Data residency
In a sovereign deployment every component below runs inside your cloud account, pinned to your chosen region. Nothing is shared with other operators; there is no cross-operator control plane.
| Component | What it holds | Where it runs |
|---|---|---|
| Console & APIs | The operator and customer consoles, ingest and query APIs | Your deployment, as code |
| Metrics store | All GPU/node telemetry, 15s resolution | Your account, your region |
| Log store | Per-node driver/dmesg/agent logs (30-day retention) | Your account, your region |
| Control data | Tenants, users, nodes, tokens (hashed), events, audit | Your account, your region — point-in-time recovery on, nightly exports to your own bucket |
| Agent binaries | Signed, checksum-verified releases | Your account’s artifact bucket |
| GPU servers | Your metal — agents connect outbound-443 only | Your datacenters |
Self-hosting walkthrough: the platform is designed so a competent stranger can stand the whole thing up from the repository docs in about an hour — all cloud resources as Terraform, the console as code, CI with a required cross-tenant test, and a rehearsed backup/restore path. Ask us for it, or for the on-prem design-partner program.