github Start9Labs/start-technologies start-os/v0.4.3-rc.1
StartOS v0.4.3-rc.1

latest release: start-registry/v1.6.0
pre-releaseone hour ago

Highlights

  • Share data between services, or with other devices, using local folders, folders on external drives and CIFS shares in System → Shared Volumes, with separate No Access, Read and Read/write grants for each supported service. Format a drive while adding it as a volume, update a CIFS share's connection details, and see each volume's availability, free space and source errors on the same page. Managed local folders and backup targets survive server restarts on the data drive. Deleting a volume permanently removes managed local data but preserves external-drive and network-share contents.

  • Monitor a UPS from System > UPS Monitor, connected directly or through a network NUT server over IPv4 or IPv6, view its live status, and shut down StartOS automatically when the battery runs low.

  • Keep connected registries synchronized over one automatically authenticated, encrypted WebSocket per registry for package listings, signing-key changes, and StartOS updates. Poll registries without WebSocket RPC support every 15 minutes using their existing HTTP API. Cached listings remain available when a registry is offline.

Security

  • Stop authenticated observations, terminal connections and file continuations when their access is revoked, including during asynchronous initialization.

  • Bound incoming JSON-RPC request bodies before authentication and decoding to prevent unbounded memory use. Oversized-request errors remain readable by browser clients.

  • Bound anonymously available WebSocket continuation input and blocked writes while preserving bulk authenticated container and terminal traffic.

  • Prevent startup RPC admission attempts from spawning clock-check subprocesses.

Important

When upgrading from a version before 0.4.2, check your services' public domains and turn back on any you want to use. Some may be switched off if the domain and its public IP addresses had different on/off settings.

Full changelog

[0.4.3]

Added

  • Allow reassignment of a binding's external port through the CLI while preserving address enable/disable settings and preferred ports. Keep the server UI's SSL port fixed at 443.

  • Stop listing router port forwards for disabled single-port bindings.

  • Monitor a UPS from System > UPS Monitor, connected directly or through a network NUT server over IPv4 or IPv6, view its live status, and shut down StartOS automatically when the battery runs low.

  • Share data between services, or with other devices, using local folders, folders on external drives and CIFS shares in System → Shared Volumes, with separate No Access, Read and Read/write grants for each supported service. Format a drive while adding it as a volume, update a CIFS share's connection details, and see each volume's availability, free space and source errors on the same page. Managed local folders and backup targets survive server restarts on the data drive. Deleting a volume permanently removes managed local data but preserves external-drive and network-share contents.

  • Attached-drive lists update automatically. Shared-volume status, free space and source errors refresh after drive and network changes, with mounted shares following the kernel's connection state and periodic free-space checks. Service and backup mount requests reject disconnected shares without tearing down active mounts. Services refresh shared-volume mounts after drive replacement, older attachment cleanup leaves replacement mounts usable, and healthy idle shares avoid repeated network connections.

  • Keep unsaved names, folder edits and discard warnings while volume, backup-target or drive updates arrive. Clear vanished drive or partition choices without automatically selecting formatting; removal or changed drive details during erase confirmation require a fresh choice. CIFS connection changes notify reactive services; existing mounts keep their source until remounted or restarted.

  • Services can treat missing registered folders as unavailable without accepting invalid mount requests.

  • Manage volumes and backup targets by name, with source error messages highlighted in red and a loading state while backup history is fetched. Partitions that already contain a StartOS backup are marked when adding a drive; stored CIFS targets and credentials carry forward automatically.

  • Back up volumes independently of services and restore them as new local copies without overwriting existing data. Backup destinations cannot overlap source folders through case variations or local directory aliases. Local volumes and targets support fast deletion and remain registered for retry if deletion fails.

Changed

  • Manage backups from a single System → Backups page: add local folders, external drives and CIFS shares as backup targets, see each target's status, last backup and free space, create and restore backups, and review past backups with their reports in a paginated history. Saved CIFS targets retain their connection details and IDs. Removing a local target deletes its folder and backups; external-drive and CIFS contents are preserved.

  • Keep network-share backup writes independent of concurrent target reads. Registered target status follows drive and network changes, including active backup-write mounts. Missing selected folders remain unavailable even when their backing filesystem is healthy. Recover target details automatically when a share returns; keep invalid backup metadata visible as an error until revalidation succeeds.

  • Enable a private plain-HTTP address for a client that cannot trust the server's Root CA without marking an entire gateway secure. Enabling requires an explicit --allow-insecure acknowledgement through CLI/RPC/MCP; enabled addresses appear in the UI and can be disabled there. Plaintext traffic, including passwords, can be read and altered by devices on that network.

  • The marketplace registry picker lists registries other than the Start9 and Community registries below a divider.

  • Keep connected registries synchronized over one automatically authenticated, encrypted WebSocket per registry for package listings, signing-key changes, and StartOS updates. Poll registries without WebSocket RPC support every 15 minutes using their existing HTTP API. Cached listings remain available when a registry is offline.

  • Show an Unreachable registry between the marketplace registry selector and search, followed by an icon-only retry, as a status dot when collapsed. Registry management gives every registry's connection status a dedicated column, with an Unreachable-only retry. Select Unreachable to read synchronization failure details; retain cached listings or loading placeholders while unavailable.

  • Show green update counts, replacing the Updates navigation count with a warning while any registry errors. Registry sidebar rows retain their counts alongside warnings; an Unreachable selected registry shows its status and a retry without resetting the selection. An unavailable empty catalog keeps loading placeholders instead of claiming every service is up to date.

  • Skip malformed saved registry URLs independently, preserving synchronization and listings from valid sources.

  • Preserve deployment URL prefixes when diagnostic updates query a registry.

  • Retrieve private package and dependency icons using the server's registry identity, limited to saved registries' content-addressed icon endpoints.

  • Refresh any saved registry from its registry-management More menu, regardless of connection status, to discover later private-access grants or poll legacy hosts immediately without changing signing-key trust; retry failed icons when refreshed listings arrive. Unsaved registry links offer an explicit connection action rather than waiting for a catalog that is not being synchronized.

  • Reject invalid encrypted-admission CBOR representations before native or browser field interpretation.

  • Encrypt normal browser and keyed CLI RPC, backend registry queries and WebSocket continuations after signed ephemeral-DH admission, without mode-based downgrade.

  • Name the server-owned signing key server_identity_key, preserving its value and existing database and backup formats.

  • Preserve explicit serialized field and variant names in PatchDB accessors, including combined serde attributes.

  • Encrypt browser setup, initialization, diagnostic RPC and continuations without enrolling or persisting a missing device key; preserve legacy HTTP callers and invalidate old RPC sessions when the active startup context changes.

  • Retain encrypted startup on ordinary LAN HTTP without a browser secure context.

  • Send setup and recovery secrets inside encrypted RPC without duplicate password encryption; retain legacy encrypted-password compatibility.

  • Preserve HTTP resource/header, foreign-origin and legacy-client contracts, including consecutive browser RPC calls as prior connections finish closing.

  • Reject unsupported parameter shapes without dropping an authenticated connection.

  • Remember the browser's verified normal-server identity and warn on changes without blocking the connection, with fingerprint details for verification; startup peers do not enter that history.

  • Cancel pending device-key acquisition and enrollment across logout, replacement and rollback.

  • Bound replay-cache memory when clock synchronization is unavailable.

  • Preserve request IDs on middleware errors.

  • Prevent duplicate operations when a Unix RPC fails or loses its response.

  • Keep encrypted browser RPC available over HTTP/2 connections.

  • Cancel timed-out or disposed WebSocket requests without interrupting sibling calls, and release pending handlers when the socket closes.

  • Log decrypted browser RPC requests and replies to the developer console for 30 minutes after rpcLog.enable(), or a chosen number of minutes, until it expires or rpcLog.disable().

Removed

  • View backup results in History instead of receiving backup notifications. Old-backup reminders remain on the backup target.

Fixed

  • Honor service-declared TCP and UDP forwarding restrictions for single ports and port ranges, including automatic router mappings. Show each StartOS-managed address’s forwarding transport on the Interfaces page; TLS and HTTP proxy listeners show TCP. Legacy ranges show both before service initialization.

  • CIFS share backup targets connect with their own configured credentials.

  • Initialization progress reports the actual initialization outcome. The initializing screen checks server state after success or failure and cancels observation when closed.

  • Retire accepted initialization observations through terminal transport flush or cancellation before changing routers, bounded by the existing RPC write deadline; reject late bindings without delaying for unopened GUIDs.

  • Report actual journal process outcomes through typed log observations while preserving legacy log streams and reject out-of-range or fractional boot selectors.

  • Cancel portal and initialization/setup log observation and reconnect waits when their views are disposed.

  • Keep log streams active while their initial backlog waits for database synchronization.

  • Fixed StartOS using more and more memory the longer it ran, until the server ran out of memory.

  • Stop pending and live metrics observation and reconnect attempts when leaving the metrics page or signing out.

  • Identify backup and volume partitions by their filesystem labels, falling back to device paths for unlabeled partitions.

  • Preserve removed registries when migrating already-repaired 0.4.2.1 servers to the typed registry catalog.

  • Publish per-call database synchronization metadata independently of HTTP response headers, preserving legacy HTTP clients.

  • Release pending database synchronization waits when logging out or closing a streamed observation.

  • Preserve floating-point RPC parameter precision when decoding requests.

  • Reject invalid encrypted network-backup credentials rather than attempting anonymous access.

  • Hide network-backup passwords in diagnostic formatting.

  • Setup progress reports the setup operation's failure rather than completing at 100%. The setup wizard waits for the operation's result before finalizing setup and reconnects progress observation without restarting setup work. Concurrent setup requests cannot start work that was rejected.

  • Report late sideload installation failures instead of premature success.

  • After StartOS restarts unexpectedly, service containers from before the restart are stopped instead of running alongside the new ones.

  • Poll shared-volume and backup-target observation futures on one RPC-owned task using tiered loops. Preserve pending I/O and per-source backoff across observer-session retries. Bound invalidation-triggered health scans to once per second while slow CIFS probes remain pending.

  • Accept terminal command arguments from JSON clients while preserving native CLI arguments, including non-UTF-8 bytes.

  • Confirm OS updates from their actual completion result, including diagnostic mode, instead of treating progress or a closed connection as success.

Security

  • Prevent foreign-server probe errors from logging out the local session.

  • Prevent canceled RPC replies from invalidating a replacement login.

  • Stop authenticated observations, terminal connections and file continuations when their access is revoked, including during asynchronous initialization.

  • Bound incoming JSON-RPC request bodies before authentication and decoding to prevent unbounded memory use. Oversized-request errors remain readable by browser clients.

  • Bound anonymously available WebSocket continuation input and blocked writes while preserving bulk authenticated container and terminal traffic.

  • Prevent startup RPC admission attempts from spawning clock-check subprocesses.

Image Downloads

Hardware Image Download
Server One, and most other Intel and AMD desktops, laptops, and mini PCs x86_64 (AMD64), standard ISO
Server Pure, and other hardware that runs without proprietary firmware x86_64 (AMD64), slim ISO
An Intel or AMD server with an NVIDIA GPU x86_64 (AMD64), NVIDIA ISO
ARM64 servers and single-board computers aarch64 (ARM64), standard ISO
ARM64 hardware that runs without proprietary firmware aarch64 (ARM64), slim ISO
NVIDIA DGX Spark, and other ARM64 servers with an NVIDIA GPU aarch64 (ARM64), NVIDIA ISO
Raspberry Pi 4 — flashed to a microSD card, not a USB drive Raspberry Pi IMG
RISC-V servers and boards RISC-V (RVA23), standard ISO
RISC-V hardware that runs without proprietary firmware RISC-V (RVA23), slim ISO

OS Images Checksums

SHA-256

0c7a74d4cf89072ed44cd43e70e0d9c6f02d315cc4e4df65f2de8f5da0382006  startos-0.4.3-52cdc8b_aarch64.iso
920d119e3cb6fa74d5d29f13edc0defdfbe007b70e920a40a11958946f181092  startos-0.4.3-52cdc8b_aarch64-nonfree.iso
1016029e1a53ebdf62aec00bf2ea5c269424252bfd893f5f65f226cb9b3e1a6e  startos-0.4.3-52cdc8b_aarch64-nvidia.iso
78ead6b0c2e987afe01f29ec5984f3d41f8be1243df50bafbfe7250b0d2b023c  startos-0.4.3-52cdc8b_riscv64.iso
cbfd1cf0310e10d129e6ccbdb6040b1f98fbfa9a4bdbe3d75f91176a83fb237f  startos-0.4.3-52cdc8b_riscv64-nonfree.iso
0d9da429967a1d33e034b753ff1cf58477413745ff3a61143fe01598350d2e56  startos-0.4.3-52cdc8b_x86_64.iso
7ccc372c0dfc9358aed2dbd39b117b28e83b7e10aa96f179fbe29bab7f9dfc21  startos-0.4.3-52cdc8b_x86_64-nonfree.iso
d9faa2067d19589b421685f5a095de520f55914ac87726dd566132e521748da4  startos-0.4.3-52cdc8b_x86_64-nvidia.iso
5536a9deb3426bbe5f22295387233cb9a076f9633a6e0966fe7a574ec5d168e7  startos-0.4.3-52cdc8b_raspberrypi.img
c72f792d7cd5896a74e4f946c0b0c1eb333a8760a030e021d157219a81dbfb4f  startos-0.4.3-52cdc8b_raspberrypi.img.gz
ffffbfd50699a05f3ddfab2fecada375dcc41926eadebc66eb5a8d1550e3e38b  startos-0.4.3-52cdc8b_aarch64-nonfree.squashfs
97c686efc359b575a0df8e04194bd3876a6ba167a51d75a7ab46de81760c1d84  startos-0.4.3-52cdc8b_aarch64-nvidia.squashfs
55656c5242d1f10a3b505cbb98517208cf1444c59610864e7c7ef5fc1fa9c274  startos-0.4.3-52cdc8b_aarch64.squashfs
a14dbd43548ef02ceb8eca43612ca53cd4e45a158aafe5581c21933168ec42ca  startos-0.4.3-52cdc8b_raspberrypi.squashfs
00aa7b297b966be722aeae8e91ecba8c0c38a7d494e01f3613a5c19dbc30fb8a  startos-0.4.3-52cdc8b_riscv64-nonfree.squashfs
c87115f6fa3c6bb50e7b2a06d9b91540355bb93d66d8b95bb4dbd5ab8202c5c1  startos-0.4.3-52cdc8b_riscv64.squashfs
b9ce652edf5e78e6aaaf07c13a3fc00bcb040d291323d293628773f5c0109939  startos-0.4.3-52cdc8b_x86_64-nonfree.squashfs
8558afc50fdd629fdcb08fd81906680e4890068a1577c83c557db74184d0497d  startos-0.4.3-52cdc8b_x86_64-nvidia.squashfs
abda392c4bd4d7bd85e3ae8f88e74d6eb80ac9b13df0fad9967b75e8b9113328  startos-0.4.3-52cdc8b_x86_64.squashfs

BLAKE-3

7498c7ac8fb0c91f99c973dfdf5d634a511f56e51cd2acc9588fad21d500ce9f  startos-0.4.3-52cdc8b_aarch64.iso
86bf6e69adcee5c3316767ade582cda7bd98d3dbd4d423423461b36820fd4b51  startos-0.4.3-52cdc8b_aarch64-nonfree.iso
26a89641e2f1cc88fff09e1612a3a4e15cd61b37b81927b29de3669ce98017f0  startos-0.4.3-52cdc8b_aarch64-nvidia.iso
f30ee7a5ae48e287c867600bc253c0874c8328a57377b892f53b90a128043a1f  startos-0.4.3-52cdc8b_riscv64.iso
800b5a38cb15d5a19c42834578c1dea52a427b05fbac2f1f09ad045f55c61b82  startos-0.4.3-52cdc8b_riscv64-nonfree.iso
bd244033bbca962cbd25931295e9176bfabef70ac239aee93b719292b3b81ee9  startos-0.4.3-52cdc8b_x86_64.iso
82e669ce33a1f796f57a73ed9a85c62327fcb9a7fa77fc9879af8565bf49fdc4  startos-0.4.3-52cdc8b_x86_64-nonfree.iso
c175e8d38bd632468177cb3a3871c1d26cd77e6519031fdbc7ca3e6e1495c8fa  startos-0.4.3-52cdc8b_x86_64-nvidia.iso
bd208c4ffd7a862d28fc7f56f55f11bd278facb950672e77ff5cc52edc83dabd  startos-0.4.3-52cdc8b_raspberrypi.img
eed4ccd3fb7133643231b138e5de3e89569bab44c36752ad58a90b1ad881e39b  startos-0.4.3-52cdc8b_raspberrypi.img.gz
cf187efde68d9bf8b545627e5f946037753f6b98f12272536c393d351ab4a615  startos-0.4.3-52cdc8b_aarch64-nonfree.squashfs
444589febd044d837954bcba5d640958a321e2463016cda250ab093f6a77dbb4  startos-0.4.3-52cdc8b_aarch64-nvidia.squashfs
c7df04ff5bc5cc833ac7c3c3f02eab6e95abfb3c21d196b3057ba155a1707e80  startos-0.4.3-52cdc8b_aarch64.squashfs
1a1febf9283a8d64b06aee69bcf946deb7e82ad82e3b764b5d6170745b5835b6  startos-0.4.3-52cdc8b_raspberrypi.squashfs
2644b776f7b658e2bc00ac0b05c4f9ab479d0a0b434d1d8c78dfd15f3bbd1fca  startos-0.4.3-52cdc8b_riscv64-nonfree.squashfs
31da3b455dbfc600a5ae2e2809b65b63af272edeaea70171e6b3f3b92a832856  startos-0.4.3-52cdc8b_riscv64.squashfs
45136c9eaf98b6aa0ab1b055161debc1e852f79decfcbc2ecb00a552d70b9949  startos-0.4.3-52cdc8b_x86_64-nonfree.squashfs
0d56926613e8e6055ae102934005e4db27fb9dbc322c1f7ba4ba91248a174112  startos-0.4.3-52cdc8b_x86_64-nvidia.squashfs
b62994929ed89eeed13fdabb81fec88e53e8d91a209a492c271a4584ae163064  startos-0.4.3-52cdc8b_x86_64.squashfs

Don't miss a new start-technologies release

NewReleases is sending notifications on new releases.