Matt Hill b0b4b41c42 feat: unified restart notification with reason-specific messaging (#3147)
* feat: unified restart notification with reason-specific messaging

Replace statusInfo.updated (bool) with serverInfo.restart (nullable enum)
to unify all restart-needed scenarios under a single PatchDB field.

Backend sets the restart reason in RPC handlers for hostname change (mdns),
language change, kiosk toggle, and OS update download. Init clears it on
boot. The update flow checks this field to prevent updates when a restart
is already pending.

Frontend shows a persistent action bar with reason-specific i18n messages
instead of per-feature restart dialogs. For .local hostname changes, the
existing "open new address" dialog is preserved — the restart toast
appears after the user logs in on the new address.

Also includes migration in v0_4_0_alpha_23 to remove statusInfo.updated
and initialize serverInfo.restart.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix broken styling and improve settings layout

* refactor: move restart field from ServerInfo to ServerStatus

The restart reason belongs with other server state (shutting_down,
restarting, update_progress) rather than on the top-level ServerInfo.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix PR comment

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
2026-03-29 02:23:59 -06:00
2024-03-20 13:32:57 -06:00
2025-06-25 09:55:50 -04:00
2023-10-05 19:37:31 +00:00

What is StartOS?

StartOS is an open-source Linux distribution for running a personal server. It handles discovery, installation, network configuration, data backup, dependency management, and health monitoring of self-hosted services.

Tech stack: Rust backend (Tokio/Axum), Angular frontend, Node.js container runtime with LXC, and a custom diff-based database (Patch-DB) for reactive state synchronization.

Services run in isolated LXC containers, packaged as S9PKs — a signed, merkle-archived format that supports partial downloads and cryptographic verification.

What can you do with it?

StartOS lets you self-host services that would otherwise depend on third-party cloud providers — giving you full ownership of your data and infrastructure.

Browse available services on the Start9 Marketplace, including:

  • Bitcoin & Lightning — Run a full Bitcoin node, Lightning node, BTCPay Server, and other payment infrastructure
  • Communication — Self-host Matrix, SimpleX, or other messaging platforms
  • Cloud Storage — Run Nextcloud, Vaultwarden, and other productivity tools

Services are added by the community. If a service you want isn't available, you can package it yourself.

Getting StartOS

Buy a Start9 server

The easiest path. Buy a server from Start9 and plug it in.

Build your own

Follow the install guide to install StartOS on your own hardware. . Reasons to go this route:

  1. You already have compatible hardware
  2. You want to save on shipping costs
  3. You prefer not to share your physical address
  4. You enjoy building things

Build from source

See CONTRIBUTING.md for environment setup, build instructions, and development workflow.

Contributing

There are multiple ways to contribute: work directly on StartOS, package a service for the marketplace, or help with documentation and guides. See CONTRIBUTING.md or visit start9.com/contribute.

To report security issues, email security@start9.com.

Description
Languages
Rust 52.1%
TypeScript 33.3%
HTML 8.2%
Shell 2.1%
SCSS 2%
Other 2.3%