Skip to content

Commit d2eb7a4

Browse files
committed
doc: the README reads like the other two now
'Revolutionary', five emoji sub-headings and a section on what the letters stand for, none of it checkable. Replaced with what CuOS does and why that shape is worth it - the Dockerfile is the definition, the registry is the update server, a failed update leaves the old slot intact. 'Thousands of nodes' is gone with it: nothing in the project backs a number. The platform table is unchanged; it was the one part already saying something.
1 parent 73f9355 commit d2eb7a4

1 file changed

Lines changed: 50 additions & 73 deletions

File tree

‎README.md‎

Lines changed: 50 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -2,82 +2,50 @@
22

33
[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE.txt)
44

5-
**CuOS** (short for **Container Update OS**) is a revolutionary operating system built entirely from Docker container images. It brings the power, flexibility, and familiarity of container development to the world of operating systems.
5+
🚀 **An operating system that is a container image.** You build it with a
6+
Dockerfile, ship it through a registry, and update it by replacing the image —
7+
the whole root filesystem at once, with an automatic rollback if the new one
8+
does not come up.
69

7-
---
10+
To turn one into a bootable system, start at
11+
[cuos-release](https://github.com/cuos-dev/cuos-release#readme).
812

9-
## 🚀 What is CuOS?
13+
## What it is
1014

11-
CuOS is a minimal, reliable, and automatically updating operating system that is **generated from a Docker container image**. This means:
15+
CuOS unpacks that image into one of two BTRFS subvolumes. An update pulls the
16+
new image, materialises it into the inactive slot, flips the boot configuration
17+
and reboots; if the system does not reach a running state, it goes back to the
18+
slot it came from. Data lives in a subvolume of its own that updates never
19+
touch.
1220

13-
- You define your OS as a container.
14-
- You deploy it like a container.
15-
- You update it like a container.
21+
What makes it worth doing this way is that none of it is a new skill:
1622

17-
If you know how to build and manage Docker containers, you already know how to manage CuOS.
23+
- **Your Dockerfile is the OS definition.** Add a package, rebuild, ship.
24+
- **Your registry is the update server.** No separate update infrastructure,
25+
no package repository to run.
26+
- **Your CI already builds it.** It is a container build like any other.
27+
- **A failed update is not a dead device.** The previous slot is untouched
28+
until the new one has proven it boots.
29+
- **One file configures a system.** `system.json` carries hostname, network,
30+
images and their digests — the same file that built the artefact.
1831

19-
---
32+
Built for devices you do not stand in front of: edge, kiosks, embedded products
33+
and VMs, one machine or a fleet.
2034

21-
## ✅ Why CuOS?
35+
## Where to start
2236

23-
### 🔄 Familiar Workflow
37+
| You want to… | Go to |
38+
|---|---|
39+
| build a bootable system — disk image, ISO installer or LXC container | [cuos-release](https://github.com/cuos-dev/cuos-release#readme) |
40+
| deploy and manage services on one | [cuos-iac](https://github.com/cuos-dev/cuos-iac#readme) |
41+
| build your own OS or init app on CuOS | [Development Guide](docs/development-guide.md) |
42+
| see the pieces working end to end | [Quickstart](docs/quickstart.md) |
2443

25-
CuOS uses the same tools and workflows you already use for container development. No need to learn a new packaging system or configuration language.
44+
The name is the description: **C**ontainer **U**pdate **OS** — built from a
45+
container, updates itself, and is a whole operating system rather than a runtime
46+
on top of one.
2647

27-
### 🧰 All Your Tools, All Your Knowledge
28-
29-
Since CuOS is built from a container image, **everything you know about Docker applies**:
30-
31-
- Use your existing Dockerfiles.
32-
- Reuse your CI/CD pipelines.
33-
- Leverage your container registries.
34-
35-
### 🔧 Automatic Updates & Rollbacks
36-
37-
CuOS includes a built-in update container that:
38-
39-
- Automatically checks for updates.
40-
- Applies them safely.
41-
- Rolls back if something goes wrong.
42-
43-
### 🧪 Repeatable & Reliable
44-
45-
Every CuOS system is built from a versioned container image, ensuring:
46-
47-
- High reproducibility.
48-
- Easy testing and validation.
49-
- Consistent deployments across fleets.
50-
51-
### 🛳️ Fleet-Ready
52-
53-
CuOS is designed for **mass deployment**:
54-
55-
- Perfect for edge devices, kiosks, and embedded systems.
56-
- Easy to manage across thousands of nodes.
57-
58-
---
59-
60-
## 📛 Why the Name "CuOS"?
61-
62-
**CuOS** stands for **Container Update OS**:
63-
64-
- **Container**: The OS is built from a container image.
65-
- **Update**: It updates itself automatically and safely.
66-
- **OS**: It’s a full operating system, ready to boot and run.
67-
68-
---
69-
70-
## 📦 Getting Started
71-
72-
To build a bootable system — a disk image, an ISO installer or an LXC container — start at [cuos-release](https://github.com/cuos-dev/cuos-release/), the build tooling. You describe the system in a `system.json` and `./cuos-release/tool.sh image` produces it.
73-
74-
For system administrators looking to deploy services using CuOS, please visit [cuos-iac](https://github.com/cuos-dev/cuos-iac/), our Infrastructure as Code repository. It provides tools and templates for deploying and managing services on CuOS.
75-
76-
For developers looking to create custom CuOS-based systems, check out our [CuOS Development Guide](docs/development-guide.md), and the [Quickstart](docs/quickstart.md) to see the pieces working end to end.
77-
78-
---
79-
80-
## 🧭 Supported Platforms
48+
## Supported platforms
8149

8250
| Platform | Boards / form factor | Docker platform | Support level |
8351
|---|---|---|---|
@@ -87,13 +55,22 @@ For developers looking to create custom CuOS-based systems, check out our [CuOS
8755
| Raspberry Pi 32-bit | Pi 1, Pi 2, Zero | `linux/arm/v6` | Legacy — may be removed |
8856
| Orange Pi Zero 3 | Orange Pi Zero 3 only | `linux/arm64` | Example — that board only |
8957

90-
**32-bit Raspberry Pi** is a legacy compatibility target. The image is built for `linux/arm/v6`, so a single image covers Pi 1, Pi 2 and Zero. Debian provides no usable ARMv6 base for these boards, so this target is built from the Raspberry Pi OS repositories instead. Note that most upstream projects no longer publish 32-bit ARM images at all — CuOS may boot while the application containers you want do not exist for the board. This support may be removed in a future release.
91-
92-
**Orange Pi Zero 3** is kept as a worked example of a board-specific boot chain — kernel, device tree blob (DTB) and U-Boot at fixed image offsets — rather than as a ready-made target. An image is published as `cuos-system-orangepi-zero3`, but it is tuned for that exact board and will not boot on anything else.
93-
94-
See [Platform and Architecture Support](docs/common/platform-support.md) for the boot chains, the constraints behind these levels, and what adding a new board involves.
95-
96-
---
58+
**32-bit Raspberry Pi** is a legacy compatibility target. The image is built for
59+
`linux/arm/v6`, so a single image covers Pi 1, Pi 2 and Zero. Debian provides no
60+
usable ARMv6 base for these boards, so this target is built from the Raspberry
61+
Pi OS repositories instead. Note that most upstream projects no longer publish
62+
32-bit ARM images at all — CuOS may boot while the application containers you
63+
want do not exist for the board. This support may be removed in a future
64+
release.
65+
66+
**Orange Pi Zero 3** is kept as a worked example of a board-specific boot chain
67+
— kernel, device tree blob (DTB) and U-Boot at fixed image offsets — rather than
68+
as a ready-made target. An image is published as `cuos-system-orangepi-zero3`,
69+
but it is tuned for that exact board and will not boot on anything else.
70+
71+
See [Platform and Architecture Support](docs/common/platform-support.md) for the
72+
boot chains, the constraints behind these levels, and what adding a new board
73+
involves.
9774

9875
## Contributing
9976

0 commit comments

Comments
 (0)