Files
start-os/web
Lucy a535fc17c3 Feature/fe new registry (#2647)
* bugfixes

* update fe types

* implement new registry types in marketplace and ui

* fix marketplace types to have default params

* add alt implementation toggle

* merge cleanup

* more cleanup and notes

* fix build

* cleanup sync with next/minor

* add exver JS parser

* parse ValidExVer to string

* update types to interface

* add VersionRange and comparative functions

* Parse ExtendedVersion from string

* add conjunction, disjunction, and inversion logic

* consider flavor in satisfiedBy fn

* consider prerelease for ordering

* add compare fn for sorting

* rename fns for consistency

* refactoring

* update compare fn to return null if flavors don't match

* begin simplifying dependencies

* under construction

* wip

* add dependency metadata to CurrentDependencyInfo

* ditch inheritance for recursive VersionRange constructor. Recursive 'satisfiedBy' fn wip

* preprocess manifest

* misc fixes

* use sdk version as osVersion in manifest

* chore: Change the type to just validate and not generate all solutions.

* add publishedAt

* fix pegjs exports

* integrate exver into sdk

* misc fixes

* complete satisfiedBy fn

* refactor - use greaterThanOrEqual and lessThanOrEqual fns

* fix tests

* update dependency details

* update types

* remove interim types

* rename alt implementation to flavor

* cleanup os update

* format exver.ts

* add s9pk parsing endpoints

* fix build

* update to exver

* exver and bug fixes

* update static endpoints + cleanup

* cleanup

* update static proxy verification

* make mocks more robust; fix dep icon fallback; cleanup

* refactor alert versions and update fixtures

* registry bugfixes

* misc fixes

* cleanup unused

* convert patchdb ui seed to camelCase

* update otherVersions type

* change otherVersions: null to 'none'

* refactor and complete feature

* improve static endpoints

* fix install params

* mask systemd-networkd-wait-online

* fix static file fetching

* include non-matching versions in otherVersions

* convert release notes to modal and clean up displayExver

* alert for no other versions

* Fix ack-instructions casing

* fix indeterminate loader on service install

---------

Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Shadowy Super Coder <musashidisciple@proton.me>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: J H <dragondef@gmail.com>
Co-authored-by: Matt Hill <mattnine@protonmail.com>
2024-07-23 00:48:12 +00:00
..
2024-07-23 00:48:12 +00:00
2024-07-23 00:48:12 +00:00
2024-07-23 00:48:12 +00:00
2023-11-13 15:52:02 -07:00

StartOS Web

StartOS web UIs are written in Angular/Typescript and leverage the Ionic Framework component library.

StartOS conditionally serves one of four Web UIs, depending on the state of the system and user choice.

  • install-wizard - UI for installing StartOS, served on localhost.
  • setup-wizard - UI for setting up StartOS, served on start.local.
  • diagnostic-ui - UI to display any error during server initialization, served on start.local.
  • ui - primary UI for administering StartOS, served on various hosts unique to the instance.

Additionally, there are two libraries for shared code:

  • marketplace - library code shared between the StartOS UI and Start9's brochure marketplace.
  • shared - library code shared between the various web UIs and marketplace lib.

Environment Setup

Install NodeJS and NPM

Check that your versions match the ones below

node --version
v18.15.0

npm --version
v8.0.0

Install and enable the Prettier extension for your text editor

Clone StartOS and load the PatchDB submodule if you have not already

git clone https://github.com/Start9Labs/start-os.git
cd start-os
git submodule update --init --recursive

Move to web directory and install dependencies

cd web
npm i
npm run build:deps

Copy config-sample.json to a new file config.json.

cp config-sample.json config.json
  • By default, "useMocks" is set to true.
  • Use "maskAs" to mock the host from which the web UI is served. Valid values are tor, local, and localhost.
  • Use "maskAsHttps" to mock the protocol over which the web UI is served. true means https; false means http.

Running the development server

You can develop using mocks (recommended to start) or against a live server. Either way, any code changes will live reload the development server and refresh the browser page.

Using mocks

Start the standard development server

npm run start:install-wiz
npm run start:setup
npm run start:dui
npm run start:ui

Proxying to a live server

In config.json, set "useMocks" to false

Copy proxy.conf-sample.json to a new file proxy.conf.json

cp proxy.conf-sample.json proxy.conf.json

Replace every instance of "<CHANGEME>" with the hostname of your remote server

Start the proxy development server

npm run start:ui:proxy