Skip to content

Commit d66a03a

Browse files
committed
doc: slight refresh
As curiOS matures it is quickly becoming more and more useful for actual use-cases. The README should reflect this. Signed-off-by: Joachim Wiberg <[email protected]>
1 parent 9a2de36 commit d66a03a

File tree

1 file changed

+79
-45
lines changed

1 file changed

+79
-45
lines changed

README.md

Lines changed: 79 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,111 @@
11
<a href="https://www.flaticon.com/free-icons/docker"><img align="right" src="doc/container.png" width="200px" alt="Docker icons created by pocike - Flaticon"></a>
22

3-
# curiOS — a slim curated container OS
3+
# curiOS — Production-Ready Container Images for Embedded Systems
44

5-
curiOS, pronounced curious, is a project by the [same team][8] of developers
6-
that created and maintain the [Infix operating system][7]. If you like the
7-
idea of modeling an entire OS with YANG, have a look at Infix.
5+
**Lightweight • Secure • Purpose-Built**
86

9-
This project provides a set of *defconfigs* for 64-bit ARM and x86 systems
10-
that can be used with Infix or any other [OCI](https://opencontainers.org/)
11-
compatible runtime.
7+
curiOS delivers ultra-slim, curated container images optimized for
8+
embedded and edge computing. Built on battle-tested [Buildroot][0],
9+
each image is stripped of unnecessary components while maintaining full
10+
functionality.
1211

13-
> [!NOTE]
14-
> The system container is very useful for staging/development before deploying
15-
> any of the slim application containers, because they can be very difficult
16-
> to debug (none or little tooling in image).
12+
## Why curiOS?
1713

18-
## AppStore
14+
**Ultra-minimal footprint** - Images as small as 270KB
15+
🔒 **Security-first** - No unnecessary packages or attack surface
16+
**Fast deployment** - Lightning-quick startup times for edge applications
17+
🎯 **Purpose-built** - Each container does one thing exceptionally well
18+
🔧 **Developer-friendly** - Easy integration with existing workflows
1919

20-
The [KernelKit AppStore][2] on GHCR provides the following pre-built images.
20+
## Perfect For
2121

22-
### [curiOS system][3]
22+
- **IoT Gateways** - Lightweight network services and protocols
23+
- **Edge Computing** - Minimal resource consumption at the edge
24+
- **Container Orchestration** - Kubernetes, Docker Swarm, and more
25+
- **Development Staging** - Debug and test before production deployment
26+
- **Embedded Firewalls** - Advanced netfilter configurations in containers
2327

24-
An example system container, shows how to run multiple services. Comes with
25-
the following services and tools:
28+
> [!TIP]
29+
> The system container includes full BusyBox tooling, making it perfect
30+
> for staging and development before deploying the ultra-slim
31+
> application containers.
2632
27-
- BusyBox (full configuration)
28-
- Dropbear SSH daemon
29-
- mini-snmpd
30-
- netopeer-cli
31-
- nftables
32-
- ntpd
33+
---
34+
35+
*curiOS is brought to you by the [same team][8] that created and
36+
maintains the [Infix operating system][7]. If you like the idea of
37+
modeling an entire OS with YANG, check out Infix!*
38+
39+
## Ready-to-Use Images
40+
41+
Get started instantly with our pre-built images available on the
42+
[KernelKit Container Registry][2]. Each image is continuously built and
43+
tested for ARM64 and x86-64 architectures.
44+
45+
### [curiOS system][3] 🖥️
46+
47+
**Full-featured development and staging environment** - Perfect for
48+
prototyping and debugging before deploying specialized
49+
containers. Includes everything you need:
50+
51+
- **BusyBox** (complete toolset) - Full UNIX utilities
52+
- **Dropbear SSH** - Secure remote access
53+
- **mini-snmpd** - Network monitoring
54+
- **netopeer-cli** - NETCONF client
55+
- **nftables** - Advanced firewall
56+
- **ntpd** - Network time synchronization
3357

3458
See this blog post on how to use this container with Infix:
3559

3660
- [Infix Advanced Container Networking](https://kernelkit.org/posts/advanced-containers/)
3761

38-
### [curiOS ntpd][4]
62+
### [curiOS ntpd][4]
63+
64+
**Precision time synchronization** (~400KB) - Ultra-lightweight NTP
65+
daemon for accurate timekeeping across your infrastructure. Features:
66+
67+
- **ISC ntpd** with `-n -g` flags for quick sync
68+
- **Multicast NTP** support for subnet-wide time distribution
69+
- **Persistent drift** data via `/var/lib` volume mount
70+
- **Custom config** support - mount your own `/etc/ntp.conf`
3971

40-
This container is only `ntpd`, started by `tini` with `-n -g` flags. The
41-
default configuration file is `/etc/ntp.conf`, see `doc/` for a sample. To
42-
override use a mount or volume, and remember to also set up a volume for the
43-
`/var` or `/var/lib` directory to let the daemon save drift data.
72+
Perfect for IoT devices and distributed systems requiring precise
73+
time. See the [official ntpd documentation](https://www.ntp.org/) for
74+
advanced configuration.
4475

45-
ISC ntpd supports [multicasting NTP][10] to a subnet. For more information
46-
see the [official ntpd site](https://www.ntp.org/).
76+
### [curiOS nftables][5] 🔥
4777

48-
### [curiOS nftables][5]
78+
**Advanced containerized firewall** (~670KB) - Production-ready
79+
netfilter management with zero-downtime rule updates. Features:
4980

50-
Useful for advanced netfilter setups when the container runs in host network
51-
mode. At startup it loads `/etc/nftables.conf` and then waits for a signal.
52-
At shutdown `nft flush ruleset` is called.
81+
- **Host network mode** support for transparent firewalling
82+
- **Graceful startup/shutdown** - Loads rules on start, flushes on stop
83+
- **Live configuration** - Built-in vi editor for rule modifications
84+
- **Mount-friendly** - Use host-based config files via volumes
85+
- **Sample configurations** included for end-devices and routers
5386

54-
This container comes with a minimal set of BusyBox tools, including a shell,
55-
so the `nftables.conf` file can be modified from inside the container (vi).
56-
Although the most common use-case is to mount a file from the host system.
57-
See `doc/` for two samples: end-device and home router.
87+
Ideal for edge devices, containers-as-firewalls, and advanced network policies.
5888

5989
See this blog post on how to use this container with Infix:
6090

6191
- [Infix w/ WAN+LAN firewall setup](https://kernelkit.org/posts/firewall-container/)
6292

63-
### [curiOS httpd][6]
93+
### [curiOS httpd][6] 🌐
6494

65-
Tiny web server container based on BusyBox httpd, suitable for embedding in a
66-
firmware image as an example container.
95+
**Ultra-lightweight web server** (~270KB) - The smallest possible HTTP
96+
server for embedded applications and IoT devices. Features:
6797

68-
The server looks for `/var/www/index.html`, so use a volume on `/var/www` to
69-
change the default web page.
98+
- **Minimal footprint** - Perfect for resource-constrained environments
99+
- **Volume support** - Mount your content to `/var/www/`
100+
- **Flexible configuration** - Customizable ports, logging, and behavior
101+
- **Firmware-ready** - Ideal for embedding in device firmware
70102

71-
With a custom command you can also change the default command line, e.g, to
72-
run in foreground, with verbose mode, on port 8080:
103+
**Example usage:**
73104

74-
- `/usr/sbin/httpd -f -v -p 8080`
105+
```bash
106+
# Custom port and verbose logging
107+
docker run -p 8080:8080 ghcr.io/kernelkit/curios-httpd /usr/sbin/httpd -f -v -p 8080
108+
```
75109

76110
For more help, see the [BusyBox docs](https://busybox.net/downloads/BusyBox.html#httpd)
77111

0 commit comments

Comments
 (0)