Files
start-os/web
crissuper20 8359712cd9 Fix/startos UI empty interface (#3143)
fix: give StartOS UI interface a non-empty id

The iface object in StartOsUiComponent had id: '' (empty string).
Any plugin whose action calls sdk.serviceInterface.get() with
that id triggers an RPC to the host with an empty
serviceInterfaceId, which Rust's ServiceInterfaceId type rejects
via its ID regex (^[a-z0-9]+(-[a-z0-9]+)*$).

The container runtime appends the method name to every error
message as "${msg}@${method}", so the empty-string failure
surfaces in the UI as:

  Action Failed: Deserialization Error: Invalid ID: @get-service-interface

Setting id: 'startos-ui' makes it a valid, stable identifier
that passes the regex and accurately names the interface.
2026-03-30 12:00:14 -06:00
..
2023-11-13 15:59:16 -07:00
2023-11-13 15:59:16 -07:00
2025-04-13 13:03:51 -06:00
2026-03-15 09:51:50 -06:00
2023-11-13 15:59:16 -07:00
2025-12-31 11:30:57 -07:00
2025-07-18 18:31:12 +00:00
2023-11-13 15:59:16 -07:00
2025-04-17 09:00:59 -06:00

StartOS Web

Angular + TypeScript workspace using the Taiga UI component library.

Applications

StartOS serves one of these UIs depending on the state of the system:

  • ui — Primary admin interface for managing StartOS, served on hosts unique to the instance.
  • setup-wizard — Initial setup UI, served on start.local.
  • start-tunnel — VPN/tunnel management UI.

Libraries

  • shared — Common code shared between all web UIs (API clients, components, i18n).
  • marketplace — Library code for service discovery, shared between the StartOS UI and the marketplace.

Contributing

See CONTRIBUTING.md for environment setup, development server instructions, and translation guides.