Skip to content

kernelkit/infix

License Badge Release Badge GitHub Status Discord

Infix — Immutable.Friendly.Secure

Infix turns an ARM or x86 device into a managed network appliance. The same OS runs on a $35 Raspberry Pi and on enterprise switching hardware, so you can build a router, an IoT gateway, or an edge device on whatever you have on hand.

More in-depth material is available in our blog and User Guide:

See it in action

The CLI is generated from the YANG models, so it guides you with built-in help. Here's setting an IP address on an interface:

admin@infix-12-34-56:/> configure
admin@infix-12-34-56:/config/> edit interface eth0
admin@infix-12-34-56:/config/interface/eth0/> set ipv4 TAB
      address     autoconf      bind-ni-name     dhcp 
      enabled     forwarding    mtu              neighbor
admin@infix-12-34-56:/config/interface/eth0/> set ipv4 address 192.168.2.200 prefix-length 24
admin@infix-12-34-56:/config/interface/eth0/> show
type ethernet;
ipv4 {
  address 192.168.2.200 {
    prefix-length 24;
  }
}
admin@infix-12-34-56:/config/interface/eth0/> diff
interfaces {
  interface eth0 {
+    ipv4 {
+      address 192.168.2.200 {
+        prefix-length 24;
+      }
+    }
  }
}
admin@infix-12-34-56:/config/interface/eth0/> leave
admin@infix-12-34-56:/> show interfaces
INTERFACE       PROTOCOL   STATE       DATA                                  
lo              ethernet   UP          00:00:00:00:00:00
                ipv4                   127.0.0.1/8 (static)
                ipv6                   ::1/128 (static)
eth0            ethernet   UP          52:54:00:12:34:56
                ipv4                   192.168.2.200/24 (static)
                ipv6                   fe80::5054:ff:fe12:3456/64 (link-layer)
admin@infix-12-34-56:/> copy running startup

TAB completes available options and ? shows online help for each option and argument. show displays the current config, and diff shows exactly what changed before you commit it with leave. See the CLI documentation for more.

Web interface

If the CLI isn't your style, the same configuration is available through the web interface. Log in from a browser, keep an eye on your device from the Status dashboard and use the Configure > Interface setup wizard to create more advanced setups, or just fold out an interface to add an IP address.

Login Dashboard Setup wizard

The web interface is built on the same concepts as the CLI, so operational status and state are kept separate from configuration and commands.

Try it in 5 minutes

You don't need hardware to get started:

  • In a virtual lab — run a full topology in GNS3 and test networks entirely in software.
  • From sourcebuild it and make run to boot Infix in QEMU, from git clone to pinging the internet.
  • On real hardware — grab a pre-built image for your board, or run the x86_64 image in any VM.

Log in with admin / admin on the virtual and pre-built images. On shipped products the factory-reset credentials are customizable — we typically provision a unique per-device password stored in EEPROM/VPD.

Supported hardware

  • Raspberry Pi 2B/3B/4B/CM4 - a good starting point; built-in WiFi and Ethernet
  • Banana Pi-R64/R3/R3 Mini/R4 - multi-port routers and gateways
  • NanoPi R2S - compact dual-port router
  • x86_64 - VMs and mini PCs, for development or production
  • Marvell CN9130 CRB, EspressoBIN - ARM64 development boards
  • Microchip SparX-5i - enterprise switching
  • Microchip SAMA7G54-EK - ARM Cortex-A7 evaluation kit
  • NXP i.MX8MP EVK - ARM64 SoC evaluation kit
  • StarFive VisionFive2 - RISC-V board

Why start with Raspberry Pi? It's cheap, easy to get hold of, has built-in WiFi and Ethernet, and runs the same Infix you'd deploy in production — so what you learn on it carries straight over.

Why Infix

🔒 Immutable
Read-only filesystem with atomic upgrades. An update either applies cleanly or rolls back, so a failed upgrade or a power cut midway through won't leave you with a half-broken system.

🤝 Friendly
The CLI is generated from the YANG models, so every command carries its own help — hit ? or TAB to see what's available. The same models are reachable over NETCONF and RESTCONF, with documentation for when you get stuck.

🛡️ Secure
A small attack surface, separation between system and data, and container isolation. Since the system partition is read-only, a compromised service or container can't rewrite the OS underneath it.

Use cases

  1. Home labs & hobbyists:
    Turn a Raspberry Pi into a router with WiFi
  2. IoT & edge:
    Build gateways you can update in the field
  3. Small business networks:
    Routing, firewalling, and VLANs on affordable hardware
  4. Developers & makers:
    Prototype networking ideas, or build a custom appliance with containers
  5. Network professionals:
    The same tooling from lab to production — spin up a digital twin in raw Qemu or GNS3

Under the hood

bitSign - Code Signing

Built on Linux, Buildroot, and sysrepo:

  • Immutable OS: read-only filesystem, atomic updates, rollback on failure
  • YANG configuration: standard models with an auto-generated CLI and APIs
  • Hardware acceleration: switchdev offload for wire-speed forwarding
  • Container integration: Docker, with access to host network and hardware
  • Memory efficient: runs on devices with as little as 256 MB RAM
  • Code signing: releases are cryptographically signed

Because the whole system is modeled in YANG, every setting is reachable the same way: from the CLI over console or SSH, or remotely over the native NETCONF and RESTCONF APIs. The same models drive development, testing, and day-to-day monitoring.

Check the Latest Build for bleeding-edge features.

Contributing

Bug reports, ideas, and pull requests are welcome. Start with CONTRIBUTING and the code of conduct. Found a security issue? Follow the security policy. Need a hand? See support options or join us on Discord.



Infix development is sponsored by Wires

Alt