This release includes 3 breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+1 more
Affected surfaces
ReleasePort's take
Light signalStartOS v0.4.0 is a complete rewrite breaking backup compatibility—previous backups won't restore. Operators must follow the update guide precisely and create fresh backups before upgrading to prevent data loss.
Why it matters: Backup incompatibility blocks restore of pre-v0.4.0 backups. Operators must create fresh backups before upgrading; failure to follow the migration guide risks data loss. Test restore procedure in dev first.
Summary
AI summaryv0.4.0 is a complete rewrite requiring migration and fresh backups; follow the precise update guide to avoid data loss.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Breaking | Medium |
Previous backups incompatible with v0.4.0; create fresh backup after updating. Previous backups incompatible with v0.4.0; create fresh backup after updating. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
Redesigned UI — faster, more intuitive, mobile-friendly, real-time system metrics dashboard. Redesigned UI — faster, more intuitive, mobile-friendly, real-time system metrics dashboard. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Completely new networking stack with LAN port forwarding, Wireguard VPN gateways, private/public domains, Let's Encrypt, built-in DNS, optional Tor plugin. Completely new networking stack with LAN port forwarding, Wireguard VPN gateways, private/public domains, Let's Encrypt, built-in DNS, optional Tor plugin. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
StartTunnel — free, open-source reverse tunnel exposing services on public domain without revealing home IP. StartTunnel — free, open-source reverse tunnel exposing services on public domain without revealing home IP. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
LXC container runtime replaces Docker/Podman with nested architecture supporting hardware acceleration and multi-container setups. LXC container runtime replaces Docker/Podman with nested architecture supporting hardware acceleration and multi-container setups. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Improved backups — differential backups, cross-server restore, new FUSE module for cross-platform reliability. Improved backups — differential backups, cross-server restore, new FUSE module for cross-platform reliability. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Internationalization — multiple languages and keyboard layouts for StartOS and services. Internationalization — multiple languages and keyboard layouts for StartOS and services. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
New S9PK format includes signature verification, partial downloads, multi-architecture support. New S9PK format includes signature verification, partial downloads, multi-architecture support. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
SMTP notifications allow email alerts from StartOS and services via Gmail, SES, or any SMTP provider. SMTP notifications allow email alerts from StartOS and services via Gmail, SES, or any SMTP provider. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Required instructions.md per package and new Instructions tab. Required instructions.md per package and new Instructions tab. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
TypeScript SDK enables building and shipping a StartOS package in minutes. TypeScript SDK enables building and shipping a StartOS package in minutes. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
Manifest opt-in for nested OCI runtimes in LXC. Manifest opt-in for nested OCI runtimes in LXC. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
SDK notification.create() lets packages post notifications. SDK notification.create() lets packages post notifications. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
TypeScript SDK introduced to build and ship a StartOS package quickly. TypeScript SDK introduced to build and ship a StartOS package quickly. Source: granite4.1:30b@2026-05-23-audit Confidence: low |
— |
| Bugfix | Medium |
Mirror ExtendedVersion uninit-target cascade for range data versions. Mirror ExtendedVersion uninit-target cascade for range data versions. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Preserve rightmost free region before data partition during OS install. Preserve rightmost free region before data partition during OS install. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Bound idle proxy tasks via per-target cap, active cancel, and hyper header_read_timeout. Bound idle proxy tasks via per-target cap, active cancel, and hyper header_read_timeout. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Bump NVIDIA driver to 580.159.03 for kernel 7.0+. Bump NVIDIA driver to 580.159.03 for kernel 7.0+. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Raise TCP listen backlog from mio's hardcoded 128. Raise TCP listen backlog from mio's hardcoded 128. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Apply tuned TCP keepalive on every accepted listener socket. Apply tuned TCP keepalive on every accepted listener socket. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Respect dependency version range when navigating from a missing dep. Respect dependency version range when navigating from a missing dep. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Improve error message for e.code === 0 (transport failures). Improve error message for e.code === 0 (transport failures). Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Scope abort listener to one watch iteration in SDK fileHelper. Scope abort listener to one watch iteration in SDK fileHelper. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Derive URL plugin protocol label from address scheme in web UI. Derive URL plugin protocol label from address scheme in web UI. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Bound boot-time service init concurrency at 4. Bound boot-time service init concurrency at 4. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Clear search query when leaving marketplace and add clear button to search field. Clear search query when leaving marketplace and add clear button to search field. Source: llm_adapter@2026-05-21 Confidence: low |
— |
Full changelog
StartOS v0.4.0
v0.4.0 is a complete rewrite of StartOS. After six years of building, we believe we have arrived at the correct architecture and foundation to deliver on the promise of sovereign computing.
⚠️ Before You Update
Everyone is welcome to participate in the public beta! However, the only way to update is by following the 0.4.0 Update Guide precisely. This is a sensitive update between two essentially distinct operating systems — skipping steps or improvising can result in data loss.
👉 Read the full update guide before proceeding
If anything goes wrong, stop and contact support — do not attempt to troubleshoot on your own.
Highlights
- Redesigned UI — faster, more intuitive, mobile-friendly, with a real-time system metrics dashboard
- Completely new networking stack — LAN port forwarding, Wireguard VPN gateways, private and public domains (clearnet), Let's Encrypt, built-in DNS, and Tor as an optional plugin
- StartTunnel — free, open-source reverse tunnel to expose services on a public domain without revealing your home IP
- LXC container runtime — replacing Docker/Podman with a reliable, nested container architecture supporting hardware acceleration and multi-container setups
- Improved backups — differential backups, cross-server restore, and a new FUSE module for cross-platform reliability
- Internationalization — multiple languages and keyboard layouts for StartOS and services
- TypeScript SDK — build and ship a StartOS package in minutes
- New S9PK format — signature verification, partial downloads, and multi-architecture support
- SMTP notifications — email alerts from StartOS and services via Gmail, SES, or any SMTP provider
Important
Previous backups are incompatible with v0.4.0. After updating, immediately update all services and create a fresh backup.
What's Changed
- fix(net): raise TCP listen backlog from mio's hardcoded 128 by @helix-nine in https://github.com/Start9Labs/start-os/pull/3212
- fix(net): apply tuned TCP keepalive on every accepted listener socket by @dr-bonez in https://github.com/Start9Labs/start-os/pull/3213
- fix(core/service, sdk): mirror ExtendedVersion uninit-target cascade for range data versions by @MattDHill in https://github.com/Start9Labs/start-os/pull/3214
- fix(marketplace): respect dependency version range when navigating from a missing dep by @MattDHill in https://github.com/Start9Labs/start-os/pull/3215
- fix(os-install): preserve picks rightmost free region before data partition by @helix-nine in https://github.com/Start9Labs/start-os/pull/3219
- Improved error message for e.code === 0 (transport failures) by @mstrofnone in https://github.com/Start9Labs/start-os/pull/3222
- fix(net/vhost): bound idle proxy tasks via per-target cap, active cancel, and hyper header_read_timeout by @helix-nine in https://github.com/Start9Labs/start-os/pull/3216
- feat(lxc): manifest opt-in for nested OCI runtimes by @helix-nine in https://github.com/Start9Labs/start-os/pull/3209
- fix(sdk/fileHelper): scope abort listener to one watch iteration by @helix-nine in https://github.com/Start9Labs/start-os/pull/3220
- fix(web/ui): derive url plugin protocol label from address scheme by @MattDHill in https://github.com/Start9Labs/start-os/pull/3223
- feat: required instructions.md per package + Instructions tab by @helix-nine in https://github.com/Start9Labs/start-os/pull/3224
- chore: bump StartOS to 0.4.0-beta.9 by @helix-nine in https://github.com/Start9Labs/start-os/pull/3225
- feat(sdk): sdk.notification.create() lets packages post notifications by @helix-nine in https://github.com/Start9Labs/start-os/pull/3221
- fix(image-recipe): bump NVIDIA driver to 580.159.03 for kernel 7.0+ by @helix-nine in https://github.com/Start9Labs/start-os/pull/3226
- fix(core/service): bound boot-time service init concurrency at 4 by @dr-bonez in https://github.com/Start9Labs/start-os/pull/3227
- fix(marketplace): clear search query when leaving, add clear button to search field by @MattDHill in https://github.com/Start9Labs/start-os/pull/3228
New Contributors
- @mstrofnone made their first contribution in https://github.com/Start9Labs/start-os/pull/3222
Full Changelog: https://github.com/Start9Labs/start-os/compare/v0.4.0-beta.8...v0.4.0-beta.9
ISO Downloads
- x86_64/AMD64
- x86_64/AMD64 + NVIDIA
- x86_64/AMD64-slim (FOSS-only)
- aarch64/ARM64
- aarch64/ARM64 + NVIDIA
- aarch64/ARM64-slim (FOSS-Only)
- RISCV64 (RVA23) - RISCV64 (RVA23)-slim (FOSS-only)
StartOS Checksums
SHA-256
e9df00eca532e4143e8bdbe6de56a16a8da9eb87701b284a2d2e166bb307c9c1 startos-0.4.0-beta.9_aarch64.iso
204a3b507a81bb210d072fb8689940349830ac46c8ce5419e78b8ca02dcd5791 startos-0.4.0-beta.9_aarch64-nonfree.iso
57aa55bf0cd0e96b0c225abbdcedd7484426ea482564193c261c65bd00a1181b startos-0.4.0-beta.9_aarch64-nvidia.iso
ef97a95dc42862de5d8bea5f066dac2a4b54567053d37a90c15ec798ff13e45f startos-0.4.0-beta.9_riscv64.iso
b214941a99cfcece2b5e607c9be7c0a066c985d3e22dd3da1b612da369da1ec7 startos-0.4.0-beta.9_riscv64-nonfree.iso
a1d42da4dbbd2b0b524ab71e4018945a33a5d3107acad708d463abdda9859561 startos-0.4.0-beta.9_x86_64.iso
e4a885522ce932a205ddbd0398355ed597c231ea6d4a94d50edc506a8678f151 startos-0.4.0-beta.9_x86_64-nonfree.iso
6e6a96f5cafe5c75b7e723cdf22b09bc5ddfb8f6d996a1398aab7326202937db startos-0.4.0-beta.9_x86_64-nvidia.iso
d9b4a8963f79f536c04ea9531f80d6281b7759b28aafaa0834ea590ca82adff7 startos-0.4.0-beta.9_aarch64-nonfree.squashfs
02daa0783bde49cb4669dd59060212cda990395ecf61a2d6b2569dadfa9c2be3 startos-0.4.0-beta.9_aarch64-nvidia.squashfs ceaaa829244f669f99e700cbe4d27e6894f048ddbd049abda74543cf5bc696e9 startos-0.4.0-beta.9_aarch64.squashfs
68b9ce9d3368b3432fe96e0eb9fb42d1e05463098787fe73722fb59103f62f66 startos-0.4.0-beta.9_riscv64-nonfree.squashfs
4e8c77a37b114eb0e532453cd6fcfbba96a18aa6e061cc087eda5508213f5c97 startos-0.4.0-beta.9_riscv64.squashfs
9eac0f53b7bbe74a1006d315f198a5cd7f53bcce48586261d1e0e9aa9a2251f1 startos-0.4.0-beta.9_x86_64-nonfree.squashfs
cf3f73af438321118cb4526497443d48296479de0bb013dfefe3015ecd193f27 startos-0.4.0-beta.9_x86_64-nvidia.squashfs
340fcd5a20a33608b1421c3d7d5e8f0716af06a0c46258953930f740fdcee7da startos-0.4.0-beta.9_x86_64.squashfs
BLAKE-3
872c0fd392a3d5fb5c8938726da0ed797d39dc43af6c86914dba5b5759b976e0 startos-0.4.0-beta.9_aarch64.iso
a34053922cb35d8e8f06acc7f12a8c711172115194f6f579e7b44f3390119ac9 startos-0.4.0-beta.9_aarch64-nonfree.iso
413061658c2d19a642972d18be893ee81df2022f1f239e19d7809d284e027dfe startos-0.4.0-beta.9_aarch64-nvidia.iso
e1741a3961ae366d7be3101397885c71825027705dffa9b9b627ce795bbd71d0 startos-0.4.0-beta.9_riscv64.iso
1fa777c287e5d6d48dd0c028d5fec1e0fee07c71acaac15723091b8bce026070 startos-0.4.0-beta.9_riscv64-nonfree.iso
d0471c3290aae0d212ed8ca558a239cf7b6af28f0ceeed49abeb8321f57183ea startos-0.4.0-beta.9_x86_64.iso
5c7167c5d5295055bfe1c380b852590154258fdc5b168050d4907e9077a17756 startos-0.4.0-beta.9_x86_64-nonfree.iso
ad7e1a30046ab31115d693ae249ceb131aafb64d69756e211a20dafa8705f0e4 startos-0.4.0-beta.9_x86_64-nvidia.iso
8fea20a6a49c8b1ccf837ead54f7fc3f7b90142ec3ebcb2a47a1b7c8153908b7 startos-0.4.0-beta.9_aarch64-nonfree.squashfs
3eb5c3b00b59b3c78647b878a9905c94b0df0417a094a4eaa23fbcc16c4f9e9c startos-0.4.0-beta.9_aarch64-nvidia.squashfs
ba718e1e74beb345d1c716905676851e74bc62cc2f3a0e90f5431a02a0773ea8 startos-0.4.0-beta.9_aarch64.squashfs
ff54be2fcf2ba1a86d5d7b63741faba558291e4a1876d9486b1a5cd0b2d8ded7 startos-0.4.0-beta.9_riscv64-nonfree.squashfs
2154a5f4054d69907be211e60178f69c3cca261825008ade71fac48517ae6e67 startos-0.4.0-beta.9_riscv64.squashfs
f8b6854352ef683a01e35318480dd6742059f3a881fffda7b09f3792f5c0e245 startos-0.4.0-beta.9_x86_64-nonfree.squashfs
79bdc1543ced2fdc6855ab3c57fc8c00ad289deeda769c5a26b28a88c4e523ad startos-0.4.0-beta.9_x86_64-nvidia.squashfs
4a18acc1645da067d7b9ef56d84cf03c78b928fec2c030bb91f3f9622d849f3c startos-0.4.0-beta.9_x86_64.squashfs
Start-Tunnel Checksums
SHA-256
04bc4f79f0b385d078994fe8b70ebc1b5454240b4dc8c9fa941846dec4e77a03 start-tunnel-0.4.0-beta.9-4bed118~dev_aarch64.deb
dbbf06c391f286ab7c3fb76b0519d5d235c68cf68f850bcc205e4402b858f3e2 start-tunnel-0.4.0-beta.9-4bed118~dev_riscv64.deb
069caab82fa59b17062bb09c9350a6d850775bc8aadbbb5a77dfe2ee5e32c96a start-tunnel-0.4.0-beta.9-4bed118~dev_x86_64.deb
BLAKE-3
e2ad7db4b86c4d92682d80cbfbbc4eef21d7fd0ba6f7f3eecf53a47b00a1d165 start-tunnel-0.4.0-beta.9-4bed118~dev_aarch64.deb
ef0da79e95b41daf8caea912d01e8eb649716b86d7d8c34904e52d9bef024028 start-tunnel-0.4.0-beta.9-4bed118~dev_riscv64.deb
87da0ee02c90d8b8e95290788bf7494175dba29958b271dd8c680946d55876b2 start-tunnel-0.4.0-beta.9-4bed118~dev_x86_64.deb
start-cli Checksums
SHA-256
eb09a55aeb8241a6ed0a7659ed8bd5f86f950fb3b5315bc2798a05d8edd07d29 start-cli_aarch64-linux
52fe053210f843ae7e7d72df48e62c4e02fdac301d7cff33edac85b2a6f0f13a start-cli_aarch64-macos
9a69a50e9b11cfacddf7505db362eb55c3935577b4db99f86d336479f6441aca start-cli_riscv64-linux
212686c28056b48810b383d7aa2cfc733db7332d406f4376a0bfd6ca94c6d88f start-cli_x86_64-linux
accba8044dd646a97b48aa39fd18de59ca58bc2b907a04ba55e13c843768a54f start-cli_x86_64-macos
BLAKE-3
d17cc0a7e36707d4c0248a3192407e3a7e504a11b03e08e732e4c1da92405b69 start-cli_aarch64-linux
be580aabfc8d7d265a0dc05f8b87b5beeb087026e4c8f26195606c9e16bcb350 start-cli_aarch64-macos
ccea6bf4f3ea02bd8571defed8ac5a279cbea93a61e6aae8721eac1dd4052e3d start-cli_riscv64-linux
1a8c50c62c15e28c8e7fe33701d4cc5211bb3ca3f45840f6ef7ed05444cb7a8e start-cli_x86_64-linux
08ca75f6da41f031a53891e59f9ed34e57d2103d206a62005f5f2b725371e501 start-cli_x86_64-macos
Breaking Changes
- Previous backups are incompatible with v0.4.0; fresh backup required after update.
- Docker/Podman runtime replaced by LXC container runtime (nested OCI support).
- Entire system architecture rewritten – upgrade must follow the dedicated [0.4.0 Update Guide](https://docs.start9.com/start-os/update-040.html) precisely.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About StartOS
Browser-based, graphical Operating System (OS) that makes running a personal server as easy as running a personal computer.
Related context
Related tools
Beta — feedback welcome: [email protected]