Connect your first building
One command, a browser sign-in, and you have a licensed building integration platform with a remote access URL. No license key. No registry token. No sales call.
Run this
You need a Linux host with Docker or Podman installed — Ubuntu 22.04+, Fedora 42+, or anything equivalent — and network access to your BACnet, Modbus, or Fox devices. That's the whole prerequisite list.
The installer prints a sign-in link before it downloads anything. Sign in, name your site, and it licenses itself — no license key, no registry token.
What happens next
The installer walks you through it. Here is the whole thing, start to finish, on a machine that had never heard of us.
-
The installer prints a sign-in link — first
Before it downloads anything, the installer shows you a link and a short code. Nothing has been pulled to your machine yet, and you have not typed a credential.
-
Sign in and choose how to license the site
Open the link in any browser and sign in with Google, Microsoft, or an email address. Pick Free demo for a free site, or activate a license you already own.
-
Name the site and accept the terms
Give the building a name, drop a pin on the map, and add any tags you want to filter by later. Review the terms and click Accept and activate.
-
Back in your shell, it finishes on its own
The images pull with no registry login, the containers start, and the box requests its license. You'll see
licensed!and thenNormal Framework is running!with your console URL, your remote URL, and where everything lives on disk. -
Scan the building
Open the console, run a discovery scan, and watch points populate. Data quality flagging is on by default, so stale and dead points are marked for you as the data arrives.
Other ways to deploy
The one-liner is the fastest path, but it is not the only one.
Manual install
Prefer to do it by hand, or need to activate against a license you already own? The step-by-step guide walks through Compose and activation codes.
Docker Compose
What the installer sets up for you. The compose file lands in /opt/nf and is yours to edit, version, and redeploy.
Azure IoT Edge
Run Normal as an IoT Edge module and manage it alongside the rest of your Azure edge estate.
Fedora IoT on bare metal
For gateways where you want an immutable OS underneath the container runtime.
Balena
Fleet-managed devices with over-the-air updates, for deployments where physical access is expensive.
Zero-touch provisioning
Enterprise deployments set AUTO_PROVISION_KEY and devices license themselves on first boot — no sign-in, no activation step.
Air-gapped and CI
Pass credentials to the installer to skip the browser entirely. The box comes up unlicensed and you activate it separately.
Stuck, or want a second pair of eyes?
If you've already installed it and want help pointing it at a real building — or you want to talk about the second, tenth, or five hundredth site — we're happy to get on a call.