mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-30 12:11:56 +00:00
Split poll_ip_info into two phases: write IP info (addresses, subnets, gateway, DNS, NTP) to the watch immediately, then fetch WAN IP in a second pass. Previously the echoip HTTP fetch (5s timeout per URL) blocked the write and was repeatedly cancelled by D-Bus signals during interface activation, preventing the gateway from ever appearing. Replace PolicyRoutingCleanup Drop with gc_policy_routing. The old Drop spawned async route flushes that raced with new apply_policy_routing calls when the watcher restarted on device_added, wiping freshly-created routing tables for existing interfaces like eth0. Now policy routing is managed idempotently by apply_policy_routing, and stale rules are garbage-collected at the start of each watcher iteration.
StartOS Backend
- Requirements:
- Install Rust
- Recommended: rust-analyzer
- Docker
Structure
startos: This contains the core library for StartOS that supports buildingstartbox.helpers: This contains utility functions used across bothstartosandjs-enginemodels: This contains types that are shared acrossstartos,js-engine, andhelpers
Artifacts
The StartOS backend is packed into a single binary startbox that is symlinked under
several different names for different behavior:
startd: This is the main daemon of StartOSstart-cli: This is a CLI tool that will allow you to issue commands tostartdand control it similarly to the UIstart-sdk: This is a CLI tool that aids in building and packaging services you wish to deploy to StartOS
Documentation
- ARCHITECTURE.md — Backend architecture, modules, and patterns
- CONTRIBUTING.md — How to contribute to core