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.

Any Linux host with Docker
curl -fsSL https://raw.githubusercontent.com/normalframework/nf-sdk/master/install.sh | sh

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.

Unedited: a new account to a licensed, remotely-accessible site in 82 seconds.
  1. 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.

  2. 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.

  3. 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.

  4. 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 then Normal Framework is running! with your console URL, your remote URL, and where everything lives on disk.

  5. 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.

Book a demo