mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-22 01:13:00 +02:00
doc: lead README with the product, tidy prose
Reorder the README so newcomers see the product before the philosophy: CLI demo and web UI up top, a "Try it in 5 minutes" section linking the GNS3 and build-from-source guides, then hardware and the rest. Tone down the remaining marketing prose in the hardware and use-case lists. Rename CODE-OF-CONDUCT.md to CODE_OF_CONDUCT.md so GitHub recognises it as the community code of conduct, and link the .github/ health files from the README. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
@@ -272,7 +272,7 @@ other contributions that are not aligned to this Code of Conduct."*
|
||||
[PEP-8]: https://peps.python.org/pep-0008/
|
||||
[RDD]: https://tom.preston-werner.com/2010/08/23/readme-driven-development
|
||||
[cbeams]: https://cbea.ms/git-commit/#seven-rules
|
||||
[conduct]: CODE-OF-CONDUCT.md
|
||||
[conduct]: CODE_OF_CONDUCT.md
|
||||
[DCO]: https://developercertificate.org/
|
||||
[closing]: https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests
|
||||
[gpg-verify]: https://docs.github.com/en/authentication/managing-commit-signature-verification
|
||||
|
||||
@@ -1,63 +1,21 @@
|
||||
[![License Badge][]][License] [![Release Badge][]][Release] [![GitHub Status][]][GitHub] [![Coverity Status][]][Coverity Scan] [![Discord][discord-badge]][discord-url]
|
||||
[![License Badge][]][License] [![Release Badge][]][Release] [![GitHub Status][]][GitHub] [![Discord][discord-badge]][discord-url]
|
||||
|
||||
<img align="right" src="doc/logo.png" alt="Infix — Immutable.Friendly.Secure" width=480 padding=10>
|
||||
<img align="right" src="doc/logo.png" alt="Infix — Immutable.Friendly.Secure" width=380 padding=10>
|
||||
|
||||
Turn any ARM or x86 device into a powerful, manageable network appliance
|
||||
in minutes. From $35 Raspberry Pi boards to enterprise switches — deploy
|
||||
routers, IoT gateways, edge devices, or custom network solutions that
|
||||
just work.
|
||||
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.
|
||||
|
||||
## Our Values
|
||||
More in-depth material is available in our blog and User Guide:
|
||||
|
||||
**🔒 Immutable**
|
||||
Your system never breaks. Read-only filesystem with atomic upgrades
|
||||
means no configuration drift, no corrupted updates, and instant rollback
|
||||
if something goes wrong. Deploy once, trust forever.
|
||||
- <https://www.kernelkit.org/>
|
||||
- <https://www.kernelkit.org/infix/>
|
||||
|
||||
**🤝 Friendly**
|
||||
Actually easy to use. Auto-generated CLI from standard YANG models comes
|
||||
with built-in help for every command — just hit <kbd>?</kbd> or
|
||||
<kbd>TAB</kbd> for context-aware assistance.
|
||||
## See it in action
|
||||
|
||||
Familiar NETCONF & RESTCONF APIs and [comprehensive documentation][4]
|
||||
mean you're never stuck. Whether you're learning networking or managing
|
||||
enterprise infrastructure.
|
||||
|
||||
**🛡️ Secure**
|
||||
Built with security as a foundation, not an afterthought. Minimal
|
||||
attack surface, separation between system and data, and container
|
||||
isolation. Sleep better knowing your infrastructure is protected.
|
||||
|
||||
## Why Choose Infix
|
||||
|
||||
**Hardware Flexibility**: Start with a $35 Raspberry Pi, scale to
|
||||
enterprise switching hardware. Same OS, same tools, same reliability.
|
||||
|
||||
**Standards-Based**: Built around YANG models and IETF standards. Learn
|
||||
once, use everywhere - no vendor lock-in.
|
||||
|
||||
**Container Ready**: Run your applications alongside networking
|
||||
functions. GPIO access, dedicated Ethernet ports, custom protocols —
|
||||
your device, your rules.
|
||||
|
||||
## Use Cases
|
||||
|
||||
1. **Home Labs & Hobbyists**:
|
||||
Transform a Raspberry Pi into a full-featured router with WiFi
|
||||
1. **IoT & Edge Computing**:
|
||||
Bridge devices to the cloud with reliable, updatable gateways
|
||||
1. **Small Business Networks**:
|
||||
Enterprise-grade features without the complexity or cost
|
||||
1. **Developers & Makers**:
|
||||
Test networking concepts, prototype IoT solutions, or build custom
|
||||
appliances
|
||||
1. **Network Professionals**:
|
||||
Consistent tooling from development to production deployment.
|
||||
How about a digital twin using raw Qemu or [GNS3](https://gns3.com/infix)!
|
||||
|
||||
## Quick Example
|
||||
|
||||
Configure an interface in seconds - the CLI guides you with built-in help:
|
||||
The CLI is generated from the [YANG models][inside], so it guides you with
|
||||
built-in help. Here's setting an IP address on an interface:
|
||||
|
||||
<pre><code>admin@infix-12-34-56:/> <b>configure</b>
|
||||
admin@infix-12-34-56:/config/> <b>edit interface eth0</b>
|
||||
@@ -94,38 +52,94 @@ eth0 ethernet UP 52:54:00:12:34:56
|
||||
admin@infix-12-34-56:/> <b>copy running startup</b>
|
||||
</code></pre>
|
||||
|
||||
Notice how <kbd>TAB</kbd> completion shows available options, `show`
|
||||
displays current config, and `diff` shows exactly what changed before
|
||||
you commit your changes with the `leave` command.
|
||||
<kbd>TAB</kbd> completes available options and <kbd>?</kbd> 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][3] for more.
|
||||
|
||||
For more information, see [CLI documentation][3].
|
||||
## Web interface
|
||||
|
||||
## Get Started
|
||||
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.
|
||||
|
||||
Get [pre-built images][5] for your hardware. Use the CLI, web
|
||||
interface, or standard NETCONF/RESTCONF tools, e.g., `curl`. Add
|
||||
containers for any custom functionality you need.
|
||||
<p>
|
||||
<a href="doc/img/webui-login.png"><img src="doc/img/webui-login.png" alt="Login" align="top" width=220></a>
|
||||
<a href="doc/img/webui-dashboard.png"><img src="doc/img/webui-dashboard.png" alt="Dashboard" width=290></a>
|
||||
<a href="doc/img/webui-wizard.png"><img src="doc/img/webui-wizard.png" alt="Setup wizard" width=260></a>
|
||||
</p>
|
||||
|
||||
### Supported Platforms
|
||||
The web interface is built on the same concepts as the CLI, so operational
|
||||
status and state are kept separate from configuration and commands.
|
||||
|
||||
- **Raspberry Pi 2B/3B/4B/CM4** - Perfect for home labs, learning, and prototyping
|
||||
- **Banana Pi-R3** - Your next home router and gateway
|
||||
- **NanoPi R2S** - Compact dual-port router in a tiny package
|
||||
- **x86_64** - Run in VMs or on mini PCs for development and testing
|
||||
- **Marvell CN9130 CRB, EspressoBIN** - High-performance ARM64 platforms
|
||||
- **Microchip SparX-5i** - Enterprise switching capabilities
|
||||
- **Microchip SAMA7G54-EK** - ARM Cortex-A7
|
||||
- **NXP i.MX8MP EVK** - Highly capable ARM64 SoC
|
||||
- **StarFive VisionFive2** - RISC-V architecture support
|
||||
## Try it in 5 minutes
|
||||
|
||||
*Why start with Raspberry Pi?* It's affordable, widely available, has
|
||||
built-in WiFi + Ethernet, and runs the exact same Infix OS you'd deploy
|
||||
in production. Perfect for learning, prototyping, or even small-scale
|
||||
deployments.
|
||||
You don't need hardware to get started:
|
||||
|
||||
- **In a virtual lab** — run a full topology in [GNS3][gns3-post] and test
|
||||
networks entirely in software.
|
||||
- **From source** — [build it and `make run`][build-post] to boot Infix in
|
||||
QEMU, from `git clone` to pinging the internet.
|
||||
- **On real hardware** — grab a [pre-built image][5] 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.
|
||||
|
||||
> [!TIP]
|
||||
> 📖 **[Complete documentation][4]** • 💬 **[Join our Discord][discord-url]**
|
||||
|
||||
## Technical Details
|
||||
## 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 <kbd>?</kbd> or <kbd>TAB</kbd> to see what's available.
|
||||
The same models are reachable over NETCONF and RESTCONF, with
|
||||
[documentation][4] 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
|
||||
1. **IoT & edge**:
|
||||
Build gateways you can update in the field
|
||||
1. **Small business networks**:
|
||||
Routing, firewalling, and VLANs on affordable hardware
|
||||
1. **Developers & makers**:
|
||||
Prototype networking ideas, or build a custom appliance with containers
|
||||
1. **Network professionals**:
|
||||
The same tooling from lab to production — spin up a digital twin in raw
|
||||
Qemu or [GNS3](https://gns3.com/infix)
|
||||
|
||||
## Under the hood
|
||||
|
||||
<a href="https://bitsign.se">
|
||||
<picture>
|
||||
@@ -135,27 +149,29 @@ deployments.
|
||||
</picture>
|
||||
</a>
|
||||
|
||||
Built on proven open-source foundations: [Linux][0], [Buildroot][1], and
|
||||
[sysrepo][2] — for reliability you can trust:
|
||||
Built on [Linux][0], [Buildroot][1], and [sysrepo][2]:
|
||||
|
||||
- **Immutable OS**: Read-only filesystem, atomic updates, instant rollback
|
||||
- **YANG Configuration**: Industry-standard models with auto-generated tooling
|
||||
- **Hardware Acceleration**: Linux switchdev support for wire-speed packet processing
|
||||
- **Container Integration**: Docker support with flexible network and hardware access
|
||||
- **Memory Efficient**: Runs comfortably on devices with as little as 256 MB RAM
|
||||
- **Code Signing**: Releases are cryptographically signed for integrity verification
|
||||
- **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
|
||||
|
||||
Perfect for everything from resource-constrained edge devices to
|
||||
high-throughput network appliances.
|
||||
|
||||
With the entire system modeled in YANG, scalability is no longer an
|
||||
issue, be it in development, testing, or end users deploying and
|
||||
monitoring their devices. All knobs and dials are accessible from the
|
||||
CLI (console/SSH), or remotely using the native NETCONF or RESTCONF
|
||||
APIs.
|
||||
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][contributing] and the [code of conduct][coc]. Found a
|
||||
security issue? Follow the [security policy][security]. Need a hand?
|
||||
See [support options][support] or [join us on Discord][discord-url].
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
@@ -171,6 +187,13 @@ APIs.
|
||||
[3]: https://www.kernelkit.org/infix/latest/cli/introduction/
|
||||
[4]: https://www.kernelkit.org/infix/
|
||||
[5]: https://github.com/kernelkit/infix/releases/latest
|
||||
[inside]: https://www.kernelkit.org/posts/inside-infix/
|
||||
[gns3-post]: https://www.kernelkit.org/posts/infix-in-gns3/
|
||||
[build-post]: https://www.kernelkit.org/posts/building-infix-from-source/
|
||||
[contributing]: .github/CONTRIBUTING.md
|
||||
[coc]: .github/CODE_OF_CONDUCT.md
|
||||
[security]: .github/SECURITY.md
|
||||
[support]: .github/SUPPORT.md
|
||||
[Latest Build]: https://github.com/kernelkit/infix/releases/tag/latest "Latest build"
|
||||
[License]: https://en.wikipedia.org/wiki/GPL_license
|
||||
[License Badge]: https://img.shields.io/badge/License-GPL%20v2-blue.svg
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 107 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 71 KiB |
Reference in New Issue
Block a user