kernelkit/infix
kernelkit/infix has 102 GitHub stars and 24 forks. Star changes are not measured yet. Last checked 2026-11-09 23:07 UTC. Last push 2026-11-09.
Immutable.Friendly.Secure — Reliable embedded Linux for any device
Measured star growth
- in 24h
- Update delayed
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalInfix turns an ARM, RISC-V, or x86 device into a managed network appliance: a router, a switch, an IoT gateway, or the base of your own product. The same OS runs on a Raspberry Pi and on enterprise switching hardware.
Getting started:
- Pick a board from the supported boards post, updated as new ports land
- Get a pre-built image for your board, or the
x86_64image for any VM - Build from source and
make runto boot the result in QEMU - Run a whole network of Infix nodes in GNS3
- 📖 User Guide • 📝 Blog • 💬 Discord
[!TIP] The Latest Build has everything merged since the last release. Log in with
admin/adminon the virtual and pre-built images. Products built on Infix set their own password, usually unique per device.
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 and ? shows help for every option.
diff shows what changed before leave commits it. See the CLI
documentation for more.
The same configuration is available from a browser. The Status Overview dashboard keeps an eye on the device, the interface setup wizard under Configure builds the common setups, or fold out an interface and add an address.
The web interface follows the CLI: status and configuration are kept apart, and both come from the same YANG models.
Make it your own
Buildroot supplies the open source base, and Infix follows each patch release of its LTS series. The layer above adds the YANG models, the CLI and web interface, NETCONF and RESTCONF, container support, automated regression tests, and packages not yet in Buildroot.
A product is built on top of that as a spin: a small br2-external tree with Infix as a submodule, holding the board files, the vendor's own software and branding, and the vendor's own signing keys. The spin example is the skeleton the products built on Infix start from, and Branding & Releases walks through the settings.
The public images are the middle layer, built from this tree, and signed with a development key that is also in this tree. The signature says the image is intact, not who made it.
A spin replaces that key with its own and enables secure boot where the hardware supports it, see Signing Keys. All products built on Infix by Wires are signed through bitSign.
Our values
Immutable. Friendly. Secure. The tagline on the logo is also the design brief, and most of what is under the hood follows from it.
🔒 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. There are two system
partitions, and an upgrade only ever writes to the one not running.
🤝 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 web interface, NETCONF and RESTCONF come from the same models. The
User Guide ships inside the image, one click away in the web
interface, so help is there even when the Internet is not.
🛡️ 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.
A spin adds its own signing keys and secure boot, see above.
Built on Linux, Buildroot, and sysrepo. Switchdev offload gives wire-speed forwarding on switch hardware, and all of it runs on devices with 512 MB RAM. The Inside Infix post walks through how the pieces fit together.
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.
Wondering how long a given version keeps receiving updates, and what goes into a patch release? See releases & support.
Explore related projects
trimstray/the-book-of-secret-knowledge
A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools and more.
257,250 starsHack-with-Github/Awesome-Hacking
A collection of various awesome lists for hackers, pentesters and security researchers
125,103 starsswisskyrepo/PayloadsAllTheThings
A list of useful payloads and bypass for Web Application Security and Pentest/CTF
82,542 starscaddyserver/caddy
Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
78,935 stars


