- Add HostnameMetadata::Mdns variant to distinguish mDNS from private domains
- Mark mDNS addresses as private (public: false) since mDNS is local-only
- Fall back to null SNI entry when hostname not found in vhost mapping
- Simplify public detection in ProxyTarget filter
- Pass hostname to update_addresses for mDNS domain name generation
- NetService sync task now uses PatchDB DbWatch instead of being called
directly after DB mutations
- Read gateways from DB instead of network interface context when
updating host addresses
- gateway sync updates all host addresses in the DB
- Add Watch<u64> channel for callers to wait on sync completion
- Fix ts-rs codegen bug with #[ts(skip)] on flattened Plugin field
- Update SDK getServiceInterface.ts for new HostnameInfo shape
- Remove unnecessary HTTPS redirect in static_server.rs
- Fix tunnel/api.rs to filter for WAN IPv4 address
* Multiple (#3111)
* fix alerts i18n, fix status display, better, remove usb media, hide shutdown for install complete
* trigger chnage detection for localize pipe and round out implementing localize pipe for consistency even though not needed
* Fix PackageInfoShort to handle LocaleString on releaseNotes (#3112)
* Fix PackageInfoShort to handle LocaleString on releaseNotes
* fix: filter by target_version in get_matching_models and pass otherVersions from install
* chore: add exver documentation for ai agents
* frontend plus some be types
---------
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
- Replace DynInterfaceFilter with ForwardRequirements for per-IP forward
precision with source-subnet iptables filtering for private forwards
- Add WildcardListener (binds [::]:port) to replace the per-gateway
NetworkInterfaceListener/SelfContainedNetworkInterfaceListener/
UpgradableListener infrastructure
- Update forward-port script with src_subnet and excluded_src env vars
- Remove unused filter types and listener infrastructure from gateway.rs
- Add availablePorts migration (IdPool -> BTreeMap<u16, bool>) to alpha.20
- Complete version bump to 0.4.0-alpha.20 in SDK and web
- Add AvailablePorts::try_alloc() with SSL tracking (BTreeMap<u16, bool>)
- Add DerivedAddressInfo on BindInfo with private_disabled/public_enabled/possible sets
- Add Bindings wrapper with Map impl for patchdb indexed access
- Flatten HostAddress from single-variant enum to struct
- Replace set-gateway-enabled RPC with set-address-enabled
- Remove hostname_info from Host; computed addresses now in BindInfo.addresses.possible
- Compute possible addresses inline in NetServiceData::update()
- Update DB migration, SDK types, frontend, and container-runtime
HostnameInfo only had one variant (Ip) after removing Tor. Flatten it
into a plain struct with fields gateway, public, hostname. Remove all
kind === 'ip' type guards and narrowing across SDK, frontend, and
container runtime. Update DB migration to strip the kind field.
Tor is being moved from a built-in OS feature to a service. This removes
the Arti-based Tor client, onion address management, hidden service
creation, and all related code from the core backend, frontend, and SDK.
- Delete core/src/net/tor/ module (~2060 lines)
- Remove OnionAddress, TorSecretKey, TorController from all consumers
- Remove HostnameInfo::Onion and HostAddress::Onion variants
- Remove onion CRUD RPC endpoints and tor subcommand
- Remove tor key handling from account and backup/restore
- Remove ~12 tor-related Cargo dependencies (arti-client, torut, etc.)
- Remove tor UI components, API methods, mock data, and routes
- Remove OnionHostname and tor patterns/regexes from SDK
- Add v0_4_0_alpha_20 database migration to strip onion data
- Bump version to 0.4.0-alpha.20
* Fix PackageInfoShort to handle LocaleString on releaseNotes
* fix: filter by target_version in get_matching_models and pass otherVersions from install
* chore: add exver documentation for ai agents
* fix alerts i18n, fix status display, better, remove usb media, hide shutdown for install complete
* trigger chnage detection for localize pipe and round out implementing localize pipe for consistency even though not needed
* add documentation for ai agents
* docs: consolidate CLAUDE.md and CONTRIBUTING.md, add style guidelines
- Refactor CLAUDE.md to reference CONTRIBUTING.md for build/test/format info
- Expand CONTRIBUTING.md with comprehensive build targets, env vars, and testing
- Add code style guidelines section with conventional commits
- Standardize SDK prettier config to use single quotes (matching web)
- Add project-level Claude Code settings to disable co-author attribution
* style(sdk): apply prettier with single quotes
Run prettier across sdk/base and sdk/package to apply the
standardized quote style (single quotes matching web).
* docs: add USER.md for per-developer TODO filtering
- Add agents/USER.md to .gitignore (contains user identifier)
- Document session startup flow in CLAUDE.md:
- Create USER.md if missing, prompting for identifier
- Filter TODOs by @username tags
- Offer relevant TODOs on session start
* docs: add i18n documentation task to agent TODOs
* docs: document i18n ID patterns in core/
Add agents/i18n-patterns.md covering rust-i18n setup, translation file
format, t!() macro usage, key naming conventions, and locale selection.
Remove completed TODO item and add reference in CLAUDE.md.
* chore: clarify that all builds work on any OS with Docker
* fix --arch flag to fall back to emulation when native image unavailable, always infer hardware requirement for arch
* better handling of arch filter
* dont cancel in-progress commit workflows and abstract common setup
* cli improvements
fix group handling
* fix cli publish
* alpha.19
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* start consolidating
* add start-cli flash-os
* combine install and setup and refactor all
* use http
* undo mock
* fix translation
* translations
* use dialogservice wrapper
* better ST messaging on setup
* only warn on update if breakages (#3097)
* finish setup wizard and ui language-keyboard feature
* fix typo
* wip: localization
* remove start-tunnel readme
* switch to posix strings for language internal
* revert mock
* translate backend strings
* fix missing about text
* help text for args
* feat: add "Add new gateway" option (#3098)
* feat: add "Add new gateway" option
* Update web/projects/ui/src/app/routes/portal/components/form/controls/select.component.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* add translation
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* fix dns selection
* keyboard keymap also
* ability to shutdown after install
* revert mock
* working setup flow + manifest localization
* (mostly) redundant localization on frontend
* version bump
* omit live medium from disk list and better space management
* ignore missing package archive on 035 migration
* fix device migration
* add i18n helper to sdk
* fix install over 0.3.5.1
* fix grub config
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
Co-authored-by: Alex Inkin <alexander@inkin.ru>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* port misc fixes from feature/nvidia
* switch back to official tor proxy on 9050
* refactor OpenUI
* fix typo
* fixes, plus getServiceManifest
* fix EffectCreator, bump to beta.47
* fixes
* help ios downlaod .crt and add begin add masked for addresses
* only require and show CA for public domain if addSsl
* fix type and revert i18n const
* feat: add address masking and adjust design (#3088)
* feat: add address masking and adjust design
* update lockfile
* chore: move eye button to actions
* chore: refresh notifications and handle action error
* static width for health check name
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* hide certificate authorities tab
* alpha.17
* add waiting health check status
* remove "on" from waiting message
* reject on abort in `.watch`
* id migration: nostr -> nostr-rs-relay
* health check waiting state
* use interface type for launch button
* better wording for masked
* cleaner
* sdk improvements
* fix type error
* fix notification badge issue
---------
Co-authored-by: Alex Inkin <alexander@inkin.ru>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* fix: refactor dns to handle tcp connections:
- do not use long-lived tcp connections to upstream dns servers
- when incoming request is over tcp, force a tcp lookup instead of udp
this solves cases where large dns records were not being resolved due to udp->tcp switch-over.
* use forwarding resolver for fallback
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* fix: keep uptime width constant and service table DOM cached
* show error status and fix columns spacing
* revert const
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* add tor logs, rework services page, other small things
* feat: sortable service table and mobile view
---------
Co-authored-by: waterplea <alexander@inkin.ru>
* fix: race condition in Daemon.stop()
* fix: do not stop Daemon on context leave
* fix: remove duplicate Daemons.term calls
* feat: honor dependency order when shutting terminating Daemons
* fixes, and remove started
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* add support for idmapped mounts to start-sdk
* misc fixes
* misc fixes
* add default to textarea
* fix iptables masquerade rule
* fix textarea types
* more fixes
* better logging for rsync
* fix tty size
* fix wg conf generation for android
* disable file mounts on dependencies
* mostly there, some styling issues (#3069)
* mostly there, some styling issues
* fix: address comments (#3070)
* fix: address comments
* fix: fix
* show SSL for any address with secure protocol and ssl added
* better sorting and messaging
---------
Co-authored-by: Alex Inkin <alexander@inkin.ru>
* fixes for nextcloud
* allow sidebar navigation during service state traansitions
* wip: x-forwarded headers
* implement x-forwarded-for proxy
* lowercase domain names and fix warning popover bug
* fix http2 websockets
* fix websocket retry behavior
* add arch filters to s9pk pack
* use docker for start-cli install
* add version range to package signer on registry
* fix rcs < 0
* fix user information parsing
* refactor service interface getters
* disable idmaps
* build fixes
* update docker login action
* streamline build
* add start-cli workflow
* rename
* riscv64gc
* fix ui packing
* no default features on cli
* make cli depend on GIT_HASH
* more build fixes
* more build fixes
* interpolate arch within dockerfile
* fix tests
* add launch ui to service page plus other small improvements (#3075)
* add launch ui to service page plus other small improvements
* revert translation disable
* add spinner to service list if service is health and loading
* chore: some visual tune up
* chore: update Taiga UI
---------
Co-authored-by: waterplea <alexander@inkin.ru>
* fix backups
* feat: use arm hosted runners and don't fail when apt package does not exist (#3076)
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
Co-authored-by: Shadowy Super Coder <musashidisciple@proton.me>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
Co-authored-by: Alex Inkin <alexander@inkin.ru>
Co-authored-by: Remco Ros <remcoros@live.nl>
* overwrite AllowedIPs in wg config
mute UnknownCA errors
* fix upgrade issues
* allow start9 user to access journal
* alpha.15
* sort actions lexicographically and show desc in marketplace details
* add registry package download cli command
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* tell user to restart server after kiosk chnage
* remove unused import
* dont show tor address on server setup
* chore: address comments
* revert mock
* chore: remove uptime block on mobile
* utiliser le futur proche
* chore: comments
* don't show loading on authorities tab
* chore: fix mobile unions
---------
Co-authored-by: waterplea <alexander@inkin.ru>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
* tell user to restart server after kiosk chnage
* remove unused import
* dont show tor address on server setup
* chore: address comments
* revert mock
* chore: remove uptime block on mobile
* utiliser le futur proche
---------
Co-authored-by: waterplea <alexander@inkin.ru>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
* refector addresses to not need gateways array
* fix dep error display, show starting if any health check starting, show disabled health check message, remove loader from service list, animated dots, better color
* fix: fix action results textfields
---------
Co-authored-by: waterplea <alexander@inkin.ru>
* add support for inbound proxies
* backend changes
* fix file type
* proxy -> tunnel, implement backend apis
* wip start-tunneld
* add domains and gateways, remove routers, fix docs links
* dont show hidden actions
* show and test dns
* edit instead of chnage acme and change gateway
* refactor: domains page
* refactor: gateways page
* domains and acme refactor
* certificate authorities
* refactor public/private gateways
* fix fe types
* domains mostly finished
* refactor: add file control to form service
* add ip util to sdk
* domains api + migration
* start service interface page, WIP
* different options for clearnet domains
* refactor: styles for interfaces page
* minor
* better placeholder for no addresses
* start sorting addresses
* best address logic
* comments
* fix unnecessary export
* MVP of service interface page
* domains preferred
* fix: address comments
* only translations left
* wip: start-tunnel & fix build
* forms for adding domain, rework things based on new ideas
* fix: dns testing
* public domain, max width, descriptions for dns
* nix StartOS domains, implement public and private domains at interface scope
* restart tor instead of reset
* better icon for restart tor
* dns
* fix sort functions for public and private domains
* with todos
* update types
* clean up tech debt, bump dependencies
* revert to ts-rs v9
* fix all types
* fix dns form
* add missing translations
* it builds
* fix: comments (#3009)
* fix: comments
* undo default
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* fix: refactor legacy components (#3010)
* fix: comments
* fix: refactor legacy components
* remove default again
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* more translations
* wip
* fix deadlock
* coukd work
* simple renaming
* placeholder for empty service interfaces table
* honor hidden form values
* remove logs
* reason instead of description
* fix dns
* misc fixes
* implement toggling gateways for service interface
* fix showing dns records
* move status column in service list
* remove unnecessary truthy check
* refactor: refactor forms components and remove legacy Taiga UI package (#3012)
* handle wh file uploads
* wip: debugging tor
* socks5 proxy working
* refactor: fix multiple comments (#3013)
* refactor: fix multiple comments
* styling changes, add documentation to sidebar
* translations for dns page
* refactor: subtle colors
* rearrange service page
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* fix file_stream and remove non-terminating test
* clean up logs
* support for sccache
* fix gha sccache
* more marketplace translations
* install wizard clarity
* stub hostnameInfo in migration
* fix address info after setup, fix styling on SI page, new 040 release notes
* remove tor logs from os
* misc fixes
* reset tor still not functioning...
* update ts
* minor styling and wording
* chore: some fixes (#3015)
* fix gateway renames
* different handling for public domains
* styling fixes
* whole navbar should not be clickable on service show page
* timeout getState request
* remove links from changelog
* misc fixes from pairing
* use custom name for gateway in more places
* fix dns parsing
* closes#3003
* closes#2999
* chore: some fixes (#3017)
* small copy change
* revert hardcoded error for testing
* dont require port forward if gateway is public
* use old wan ip when not available
* fix .const hanging on undefined
* fix test
* fix doc test
* fix renames
* update deps
* allow specifying dependency metadata directly
* temporarily make dependencies not cliackable in marketplace listings
* fix socks bind
* fix test
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: waterplea <alexander@inkin.ru>
* import marketplac preview for sideload
* fix: improve state service (#2977)
* fix: fix sideload DI
* fix: update Angular
* fix: cleanup
* fix: fix version selection
* Bump node version to fix build for Angular
* misc fixes
- update node to v22
- fix chroot-and-upgrade access to prune-images
- don't self-migrate legacy packages
- #2985
- move dataVersion to volume folder
- remove "instructions.md" from s9pk
- add "docsUrl" to manifest
* version bump
* include flavor when clicking view listing from updates tab
* closes#2980
* fix: fix select button
* bring back ssh keys
* fix: drop 'portal' from all routes
* fix: implement longtap action to select table rows
* fix description for ssh page
* replace instructions with docsLink and refactor marketplace preview
* delete unused translations
* fix patchdb diffing algorithm
* continue refactor of marketplace lib show components
* Booting StartOS instead of Setting up your server on init
* misc fixes
- closes#2990
- closes#2987
* fix build
* docsUrl and clickable service headers
* don't cleanup after update until new service install succeeds
* update types
* misc fixes
* beta.35
* sdkversion, githash for sideload, correct logs for init, startos pubkey display
* bring back reboot button on install
* misc fixes
* beta.36
* better handling of setup and init for websocket errors
* reopen init and setup logs even on graceful closure
* better logging, misc fixes
* fix build
* dont let package stats hang
* dont show docsurl in marketplace if no docsurl
* re-add needs-config
* show error if init fails, shorten hover state on header icons
* fix operator precedemce
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
Co-authored-by: Alex Inkin <alexander@inkin.ru>
Co-authored-by: Mariusz Kogen <k0gen@pm.me>
* addHealthCheck on Daemons
* fix bug that prevents domains without protocols from being deleted
* fixes from testing
* version bump
* add sdk version to UI
* fix useEntrypoint
* fix dependency health check error display
* minor fixes
* beta.29
* fixes from testing
* beta.30
* set /etc/os-release (#2918)
* remove check-monitor from kiosk (#2059)
* add units for progress (#2693)
* use new progress type
* alpha.7
* fix up pwa stuff
* fix wormhole-squashfs and prune boot (#2964)
* don't exit on expected errors
* use bash
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* fix Tor logs actually fetching od logs
* chore: switch from `mime-types` to `mime` for browser environment support (#2951)
* change V2 s9pk title to Legacy
* show warning for domains when not public, disable launch too
---------
Co-authored-by: Alex Inkin <alexander@inkin.ru>
Co-authored-by: Mariusz Kogen <k0gen@pm.me>
* fix typeo in patch db seed
* show all registries in updates tab, fix required dependnecy display in marketplace, update browser tab title desc
* always show pointer for version select
* chore: fix comments
* support html in action desc and marketplace long desc, only show qr in action res if qr is true
* disable save if smtp creds not edited, show better smtp success message
* dont dismiss login spinner until patchDB returns
* feat: redesign of service dashboard and interface (#2946)
* feat: redesign of service dashboard and interface
* chore: comments
* re-add setup complete
* dibale launch UI when not running, re-style things, rename things
* back to 1000
* fix clearnet docs link and require password retype in setup wiz
* faster hint display
* display dependency ID if title not available
* fix migration
* better init progress view
* fix setup success page by providing VERSION and notifications page fixes
* force uninstall from service error page, soft or hard
* handle error state better
* chore: fixed for install and setup wizards
* chore: fix issues (#2949)
* enable and disable kiosk mode
* minor fixes
* fix dependency mounts
* dismissable tasks
* provide replayId
* default if health check success message is null
* look for wifi interface too
* dash for null user agent in sessions
* add disk repair to diagnostic api
---------
Co-authored-by: waterplea <alexander@inkin.ru>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* adjust copy to display package state
* use package id for service column in notifications table
* fixes
* less translations, fix notificaiton item, remove unnecessary conditional
* tidy up
* forgot spanish
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* rmeove icon from toggles
* fix: comments
* fix: more comments
* always show public domains even if interface private, only show delete on domains
* fix: even more comments
* fix: last comments
* feat: empty state for dashboard
* rework welcome, dlete update-toast, minor
* translation improvements
---------
Co-authored-by: waterplea <alexander@inkin.ru>
* use docker for build steps that require linux when not on linux
* use fuse for overlay
* quiet mountpoint
* node 22
* misc fixes
* make shasum more compliant
* optimize download-base-image.sh with cleaner url handling and checksum verification
* fix script
* fixes#2900
* bump node and npm versions in web readme
* Minor pl.ts fixes
* fixes in response to synapse issues
* beta.8
* update ts-matches
* beta.11
* pl.ts finetuning
---------
Co-authored-by: Mariusz Kogen <k0gen@pm.me>
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* dynamically set a registry to use for os updates
* fix os updates response type
* fix saving high score
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* fix sideload and install flow
* move updates chevron inside upddate button
* update dictionaries to include langauge names
* fix: address todos (#2880)
* fix: address todos
* fix enlgish translation
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* use existing translation, no need to duplicate
* fix: update dialog and other fixes (#2882)
---------
Co-authored-by: Alex Inkin <alexander@inkin.ru>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* Refactor i18n approach
* chore: move to shared
* chore: add default
* create DialogService and update LoadingService (#2876)
* complete translation infra for ui project, currently broken
* cleanup and more dictionaries
* chore: fix
---------
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* fix initiall setup as user and clear messaging
* fix this and that :)
* add IPv6 support to validate_ip function
* Use vpn-clearnet as name for the interface
* Rebrand and finish with docs link
* set static clearnet name
* Magic clearnet to the end :D
* change the command name
* the name is magic-clearnet
* wireguard-vps-proxy-setup
* one more fix
* feat: finalize desktop and mobile design of system routes
* clean up messaging and mobile tabbar utilities
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* feat: add i18n infrastructure
* store langauge selection to patchDB ui section
* feat: react to patchdb language change
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* small type changes and clear todos
* handle notifications and metrics
* wip
* fixes
* migration
* dedup all urls
* better handling of clearnet ips
* add rfkill dependency
* chore: refactor settings
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* small type changes and clear todos
* handle notifications and metrics
* wip
* fixes
* migration
* dedup all urls
* better handling of clearnet ips
* add rfkill dependency
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* fix issues with legacy packages
* include non-prerelease versions within compat range
* lock sdk to corresponding os prerelease
* bump sdk version
* fixes from PR review
* feat: redesign service route
* chore: more changes
* remove automated backups and fix interface addresses
* fix rpc methods and slightly better mocks
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* fix web manifest format error
* fix setting optional dependencies
* rework dependency actions to be nested
* fix styling
* fix styles
* combine action requests into same component
* only display actions header if they exist
* fix storing polyfill dependencies
* fix styling and button propagation
* fixes for setting polyfill dependencies
* revert to test
* revert required deps setting logic
* add logs and adjust logic
* test
* fix deps logic when changing config
* remove logs; deps working as expected
* miscellaneous bugfixes for alpha12
* fix deserialization of path in cifs share
* catch error in setup.status
* actually reserialize db after migration
* better progress reporting for migrations
* fix infinite drop
* fix raspi build
* fix race condition
* version bump
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* feat: add WireGuard VPS setup automation script
Adds a comprehensive bash script that automates:
- SSH key setup and authentication
- WireGuard installation on remote VPS
- Configuration download and import to NetworkManager
- User-friendly CLI interface with validation
- Detailed status messages and error handling
- Instructions for exposing services via ACME/Let's Encrypt
* use cat heredoc for issue files to fix formatting
Replaces echo with cat heredoc when writing to /etc/issue and /etc/issue.net to properly preserve escape sequences and prevent unwanted newlines in login prompts.
* add convent `wg-vps-setup` symlink to PATH
* sync ssh privkey on init
* Update default ssh key location
* simplify to use existing StartOS SSH keys and fix .ssh permission
* finetune
* Switch to start9labs repo
* rename some files
* set correct ownership
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* add clearnet functionality to frontend
* add pattern and add sync db on rpcs
* add domain pattern
* show acme name instead of url if known
* dont blow up if domain not present after delete
* use common name for letsencrypt
* normalize urls
* refactor start-os ui net service
* backend migration and rpcs for serverInfo.host
* fix cors
* implement clearnet for main startos ui
* ability to add and remove tor addresses, including vanity
* add guard to prevent duplicate addresses
* misc bugfixes
* better heuristics for launching UIs
* fix ipv6 mocks
* fix ipv6 display bug
* rewrite url selection for launch ui
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* add smtp to frontend
* left align headers
* just email
* change all to email
* fix test-smtp api
* types
* fix email from and login address handling
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* retry logic for init status
* fix login flashing and sideload hanging
* add logging
* misc backend bugfixes
* use closingObserver instead
* always show reinstall button
* go back to endWith
* show error if sideload fails
* refactor more watch channels
* navigate to services page on sideload complete
* handle error closure events properly
* handle error scenario better in sideload websocket
* remove a clone
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* use notification system for OS updates
* feat: Include the version update notification in the update in rs
* chore: Change the location of the comment
* progress on release notes
* fill out missing sections
* fix build
* fix build
---------
Co-authored-by: J H <dragondef@gmail.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* Add gather_debug_info.sh for comprehensive StartOS diagnostics
* chore: Update the services to use the lxc instead of podman
* chore: Add symlink /usr/bin/gather-debug
---------
Co-authored-by: Jade <2364004+Blu-J@users.noreply.github.com>
* add support for ACME cert acquisition
* add support for modifying hosts for a package
* misc fixes
* more fixes
* use different port for lan clearnet than wan clearnet
* fix chroot-and-upgrade always growing
* bail on failure
* wip
* fix alpn auth
* bump async-acme
* fix cli
* add barebones documentation
* add domain to hostname info
* sdk input spec improvements
* more sdk changes
* fe changes
* alpha.14
* fix tests
* separate validator in filehelper
* use deeppartial for getinput
* fix union type and update ts-matches
* alpha.15
* alpha.16
* alpha.17
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* wip(fix): Working on fixing the migration.
* get s9pk compat key
* wip: Change to just using the archive to not use the manifest parsing.
* fix: Fix the rebuild
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* wip
* wip: Adding more of the docker for the mac build
* fix: Running a build
* chore: Make the code a little cleaner
* optimize: reduce docker image size for mac-tar2sqfs
* feat: Update sdk-utils container usage and Dockerfile
* feat: Publish SDK Utils Container image
* clean up ...
* feat: Add manual input to control tagging Docker image as 'latest'
* fix: Update workflow input handling
* switch to different repo and clean
---------
Co-authored-by: Mariusz Kogen <k0gen@pm.me>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
* sdk tweaks
* update action result types
* accommodate new action response types
* fix: show action value labels
* Feature/get status effect (#2765)
* wip: get status
* feat: Add the get_status for effects
* feat: Do a callback
---------
Co-authored-by: J H <dragondef@gmail.com>
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
Co-authored-by: waterplea <alexander@inkin.ru>
Co-authored-by: J H <dragondef@gmail.com>
* chore: convert to use a value, cause why not
* wip: Add the up for this going up
* wip: trait changes
* wip: Add in some more of the private transformations
* chore(wip): Adding the ssh_keys todo
* wip: Add cifs
* fix migration structure
* chore: Fix the trait for the version
* wip(feat): Notifications are in the system
* fix marker trait hell
* handle key todos
* wip: Testing the migration in a system.
* fix pubkey parser
* fix: migration works
* wip: Trying to get the migration stuff?
* fix: Can now install the packages that we wanted, yay!"
* Merge branch 'next/minor' of github.com:Start9Labs/start-os into feat/migration
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* add with_about for echo, server, and auth
* update for feedback
* finish (most) remaining command documentation
* update comments after additional clarification
* add expanded_api descriptions
* add comments for action_api
* add comments for remaining apis
* add comment for package-rebuild
* fix build errors
* missed one with_about
* add context to git-info subcommands
* remove context from git-info subcommands
* Make git-info from_fns generic over context
* make version::git_info generic over the context
* try removing generics from subcommand and version::git_info
* try adding a closure with context
* Updates for reviewer feedback
* update abstract marketplace for usage accuracy andrename store to registry
* use new abstract functions
* fix(marketplace): get rid of `AbstractMarketplaceService`
* bump shared marketplace lib
* update marketplace to use query params for registry url; comment out updates page - will be refactored
* cleanup
* cleanup duplicate
* cleanup unused imports
* rework setting registry url when loading marketplace
* cleanup marketplace service
* fix background
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
Co-authored-by: waterplea <alexander@inkin.ru>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* add error status
* update types
* ṗ̶̰̙̓͒̈́ͅü̵̢̙̫̣ŗ̷̪̺̺͛g̴̲͉͎̬̒̇e̵̪̎̅͌ ̶̡̜̘͐͛t̶͎͍̣̿̍̐h̴͕̩͗̈́̎̑e̵͚͒̂͝ ̸̛͙̦͈͝v̶̱͙̬̽̔ọ̶̧̡̒̓i̸̬̲͍̋̈́d̴͉̀
* fix some extra voids
* add `package.rebuild`
* introduce error status and pkg rebuild and fix mocks
* minor fixes
* fix build
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* store, properties, manifest
* interfaces
* init and backups
* fix init and backups
* file models
* more versions
* dependencies
* config except dynamic types
* clean up config
* remove disabled from non-dynamic vaues
* actions
* standardize example code block formats
* wip: actions refactor
Co-authored-by: Jade <Blu-J@users.noreply.github.com>
* commit types
* fix types
* update types
* update action request type
* update apis
* add description to actionrequest
* clean up imports
* revert package json
* chore: Remove the recursive to the index
* chore: Remove the other thing I was testing
* flatten action requests
* update container runtime with new config paradigm
* new actions strategy
* seems to be working
* misc backend fixes
* fix fe bugs
* only show breakages if breakages
* only show success modal if result
* don't panic on failed removal
* hide config from actions page
* polyfill autoconfig
* use metadata strategy for actions instead of prev
* misc fixes
* chore: split the sdk into 2 libs (#2736)
* follow sideload progress (#2718)
* follow sideload progress
* small bugfix
* shareReplay with no refcount false
* don't wrap sideload progress in RPCResult
* dont present toast
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* chore: Add the initial of the creation of the two sdk
* chore: Add in the baseDist
* chore: Add in the baseDist
* chore: Get the web and the runtime-container running
* chore: Remove the empty file
* chore: Fix it so the container-runtime works
---------
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* misc fixes
* update todos
* minor clean up
* fix link script
* update node version in CI test
* fix node version syntax in ci build
* wip: fixing callbacks
* fix sdk makefile dependencies
* add support for const outside of main
* update apis
* don't panic!
* Chore: Capture weird case on rpc, and log that
* fix procedure id issue
* pass input value for dep auto config
* handle disabled and warning for actions
* chore: Fix for link not having node_modules
* sdk fixes
* fix build
* fix build
* fix build
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
Co-authored-by: Jade <Blu-J@users.noreply.github.com>
Co-authored-by: J H <dragondef@gmail.com>
Co-authored-by: Jade <2364004+Blu-J@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* add support for remote attaching to container
* feature: Add in the subcontainer searching
* feat: Add in the name/ imageId filtering
* Feat: Fix the env and the workdir
* chore: Make the sigkill first?
* add some extra guard on term
* fix: Health during error doesnt return what we need
* chore: Cleanup for pr
* fix build
* fix build
* Update startos-iso.yaml
* Update startos-iso.yaml
* Update startos-iso.yaml
* Update startos-iso.yaml
* Update startos-iso.yaml
* Update startos-iso.yaml
* Update startos-iso.yaml
* check status during build
---------
Co-authored-by: J H <dragondef@gmail.com>
* fix: No error's with an error code
* fix dns query
* await resolv.conf copy
* use tty in subcontainer exec if parent is tty
* Fix: Home=root for inject services
* fix: Add the action inject too
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* fix mac build
* additional fixes
* handle arm64 from uname -m
* handle arm64 from uname -m in all builds
* gracefully handle rootless docker
* use cross-platform method of determining file uid
Currently the start sdk that we expose calls some of the effects. And
there are others that need to be called via the effects object. The
idea is that all the effects that could and should be called are from
the startsdk side
Actions where running in a race condition that they sometimes didn't wait for the container to be started and the issue was the exec that was then run after would have an issue.
* chore: reimplement refactor for the changes
* chore: Make it so even more cases are caught on the transformation
* Update container-runtime/src/Adapters/Systems/SystemForEmbassy/index.ts
* chore: Update the types of the action result because it wasnt matching what was in the action.rs
* create version graph to handle migrations
* Fix some version alpha test
* connect dataVersion api
* rename init fns
* improve types and add tests
* set data version after backup restore
* chore: Add some types tests for version info
* wip: More changes to versionInfo tests
* wip: fix my stupid
* update mocks
* update runtime
* chore: Fix the loop
---------
Co-authored-by: Jade <2364004+Blu-J@users.noreply.github.com>
Co-authored-by: J H <dragondef@gmail.com>
* feature: Make all errors in console.error be including an error for that stack tract
* feature: Make all errors in console.error be including an error for that stack tract
* fix: Add the tinisubreaper for the subreapers to know they are not the reaper
* fix: overlay always destroyed
* chore: Move the style of destroy to just private
* add loggedIn key to sessions
* show loggedIn timestamp in list
* don't double hash active session
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* feature: Adding in the stopping state
* chore: Deal with timeout in the sigterm for main
* chore: Update the timeout
* Update web/projects/ui/src/app/pages/apps-routes/app-list/app-list-pkg/app-list-pkg.component.ts
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
* Update web/projects/ui/src/app/pages/apps-routes/app-show/components/app-show-status/app-show-status.component.ts
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
---------
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
* fix master build (#2639)
* feat: Change ts to use rsync
Chore: Update the ts to use types over interface
* feat: Get the rust and the js to do a backup
* Wip: Got the backup working?
* fix permissions
* remove trixie list
* update tokio to fix timer bug
* fix error handling on backup
* wip
* remove idmap
* run restore before init, and init with own version on restore
---------
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* port 040 config, WIP
* update fixtures
* use taiga modal for backups too
* fix: update Taiga UI and refactor everything to work
* chore: package-lock
* fix interfaces and mocks for interfaces
* better mocks
* function to transform old spec to new
* delete unused fns
* delete unused FE config utils
* fix exports from sdk
* reorganize exports
* functions to translate config
* rename unionSelectKey and unionValueKey
* new backup fs
* update sdk types
* change types, include fuse module
* fix casing
* rework setup wiz
* rework UI
* only fuse3
* fix arm build
* misc fixes
* fix duplicate server select
* fix: fix throwing inside dialog
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
Co-authored-by: waterplea <alexander@inkin.ru>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* port 040 config, WIP
* update fixtures
* use taiga modal for backups too
* fix: update Taiga UI and refactor everything to work
* chore: package-lock
* fix interfaces and mocks for interfaces
* better mocks
* function to transform old spec to new
* delete unused fns
* delete unused FE config utils
* fix exports from sdk
* reorganize exports
* functions to translate config
* rename unionSelectKey and unionValueKey
* Adding in the transformation of the getConfig to the new types.
* chore: add Taiga UI to preloader
---------
Co-authored-by: waterplea <alexander@inkin.ru>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: J H <dragondef@gmail.com>
* fix mac build
* wip
* chore: Update the effects to get rid of bad pattern
* chore: Some small changes
* wip
* fix: Health checks don't show during race
* fix: Restart working
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* fix mac build
* wip
* chore: Update the effects to get rid of bad pattern
* chore: Some small changes
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* Feature: Add in the clear bindings
* wip: Working on network
* fix: Make it so the config gives the url
* chore: Remove the repeated types
* chore: Add in the todo's here
* chore: UPdate and remove some poorly name var
* chore: Remove the clear-bindings impl
* chore: Remove the wrapper
* handle HostnameInfo for Host bindings
Co-authored-by: Jade <Blu-J@users.noreply.github.com>
* ??
* chore: Make the install work
* Fix: Url's not being created
* chore: Fix the local onion in url
* include port in hostname
* Chore of adding a comment just to modify.
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Jade <Blu-J@users.noreply.github.com>
* complete get_primary_url fn
* complete clear_network_interfaces fn
* formatting
* complete remove_address fn
* get_system_smtp wip
* complete get_system_smtp and set_system_smtp
* add SetSystemSmtpParams struct
* add set_system_smtp subcommand
* Remove 'Copy' implementation from `HostAddress`
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
* Refactor `get_host_primary` fn and clone resulting `HostAddress`
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
* misc fixes and debug info
* seed hosts with a tor address
* fix: Making the daemons keep up the status.
* wipFix: Making a service start
* fix: Both the start + stop of the service.
* fix: Weird edge case of failure and kids
---------
Co-authored-by: Shadowy Super Coder <musashidisciple@proton.me>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* feat: Implementation on the backup for the service.
* wip: Getting the flow of backup/restore
* feat: Recover
* Feature: Commit the full pass on the backup restore.
* use special type for backup instead of special id (#2614)
* fix: Allow compat docker style to run again
* fix: Backup for the js side
* chore: Update some of the callbacks
---------
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
* update registry upload to take id for new admin permissions (#2605)
* wip
* wip: Get the get dependencies
* wip check_dependencies
* wip: Get the build working to the vm
* wip: Add in the last of the things that where needed for the new sdk
* Add fix
* wip: implement the changes
* wip: Fix the naming
---------
Co-authored-by: Lucy <12953208+elvece@users.noreply.github.com>
* wip: Working on something to help
* chore: Add in some of the logging now
* chore: fix the type to interned instead of id
* wip
* wip
* chore: fix the logging by moving levels
* Apply suggestions from code review
* mount at machine id for journal
* Persistant
* limit log size
* feat: Actually logging and mounting now
* fix: Get the logs from the previous versions of the boot
* Chore: Add the boot id
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* feat: Add the implementation of the rest of the polyfillEffects
* chore: Add in the rsync
* chore: Add in the changes needed to indicate that the service does not need config
* fix: Vaultwarden sets, starts, stops, uninstalls
* chore: Update the polyFilleffect and add two more
* Update MainLoop.ts
* chore: Add in the set config of the deps on the config set
* make category link generic
* fix ai category display and svg icons
* fix markdown display and ansi module; cleanup
* convert tailwindcss to scss in marketplace menu component
* convert tailwindcss to scss in marketplace categories component
* convert tailwindcss to scss in marketplace item component
* update launch icon to taiga icon
* convert tailwindcss to scss in marketplace search component + cleanup
* convert tailwindcss to scss in marketplace release notes component + cleanup
* convert tailwindcss to scss in marketplace about component + cleanup
* convert tailwindcss to scss in marketplace additional component
* convert tailwindcss to scss in marketplace dependencies component + misc style fixes
* convert tailwindcss to scss in marketplace hero component + misc style fixes
* convert tailwindcss to scss in marketplace screenshots component
* convert tailwindcss to scss in portal marketplace components
* remove the rest of tailwindscss and fix reset styles
* bump shared and marketplace package versions
* misc style + build fixes
* sync package lock
* fix markdown + cleanup
* fix markdown margins and git hash size
* fix mobile zindex for hero and mobile changing categories routing link
* wip: move postgres data to patchdb
* wip
* wip
* wip
* complete notifications and clean up warnings
* fill in user agent
* move os tor bindings to single call
* new interfaces and remove tor http warnings
* move sigtermTimeout to stopping main status
* lightning, masked, schemeOverride, invert host-iface relationship
* update for new sdk
* update for latest SDK changes
* Update app-interfaces.page.ts
* Update config.service.ts
* wip: context
* wip(fix) Sorta auth
* wip: warnings
* wip(fix): registry/admin
* wip(fix) marketplace
* wip(fix) Some more converted and fixed with the linter and config
* wip: Working on the static server
* wip(fix)static server
* wip: Remove some asynnc
* wip: Something about the request and regular rpc
* wip: gut install
Co-authored-by: J H <Blu-J@users.noreply.github.com>
* wip: Convert the static server into the new system
* wip delete file
* test
* wip(fix) vhost does not need the with safe defaults
* wip: Adding in the wifi
* wip: Fix the developer and the verify
* wip: new install flow
Co-authored-by: J H <Blu-J@users.noreply.github.com>
* fix middleware
* wip
* wip: Fix the auth
* wip
* continue service refactor
* feature: Service get_config
* feat: Action
* wip: Fighting the great fight against the borrow checker
* wip: Remove an error in a file that I just need to deel with later
* chore: Add in some more lifetime stuff to the services
* wip: Install fix on lifetime
* cleanup
* wip: Deal with the borrow later
* more cleanup
* resolve borrowchecker errors
* wip(feat): add in the handler for the socket, for now
* wip(feat): Update the service_effect_handler::action
* chore: Add in the changes to make sure the from_service goes to context
* chore: Change the
* refactor service map
* fix references to service map
* fill out restore
* wip: Before I work on the store stuff
* fix backup module
* handle some warnings
* feat: add in the ui components on the rust side
* feature: Update the procedures
* chore: Update the js side of the main and a few of the others
* chore: Update the rpc listener to match the persistant container
* wip: Working on updating some things to have a better name
* wip(feat): Try and get the rpc to return the correct shape?
* lxc wip
* wip(feat): Try and get the rpc to return the correct shape?
* build for container runtime wip
* remove container-init
* fix build
* fix error
* chore: Update to work I suppose
* lxc wip
* remove docker module and feature
* download alpine squashfs automatically
* overlays effect
Co-authored-by: Jade <Blu-J@users.noreply.github.com>
* chore: Add the overlay effect
* feat: Add the mounter in the main
* chore: Convert to use the mounts, still need to work with the sandbox
* install fixes
* fix ssl
* fixes from testing
* implement tmpfile for upload
* wip
* misc fixes
* cleanup
* cleanup
* better progress reporting
* progress for sideload
* return real guid
* add devmode script
* fix lxc rootfs path
* fix percentage bar
* fix progress bar styling
* fix build for unstable
* tweaks
* label progress
* tweaks
* update progress more often
* make symlink in rpc_client
* make socket dir
* fix parent path
* add start-cli to container
* add echo and gitInfo commands
* wip: Add the init + errors
* chore: Add in the exit effect for the system
* chore: Change the type to null for failure to parse
* move sigterm timeout to stopping status
* update order
* chore: Update the return type
* remove dbg
* change the map error
* chore: Update the thing to capture id
* chore add some life changes
* chore: Update the loging
* chore: Update the package to run module
* us From for RpcError
* chore: Update to use import instead
* chore: update
* chore: Use require for the backup
* fix a default
* update the type that is wrong
* chore: Update the type of the manifest
* chore: Update to make null
* only symlink if not exists
* get rid of double result
* better debug info for ErrorCollection
* chore: Update effects
* chore: fix
* mount assets and volumes
* add exec instead of spawn
* fix mounting in image
* fix overlay mounts
Co-authored-by: Jade <Blu-J@users.noreply.github.com>
* misc fixes
* feat: Fix two
* fix: systemForEmbassy main
* chore: Fix small part of main loop
* chore: Modify the bundle
* merge
* fixMain loop"
* move tsc to makefile
* chore: Update the return types of the health check
* fix client
* chore: Convert the todo to use tsmatches
* add in the fixes for the seen and create the hack to allow demo
* chore: Update to include the systemForStartOs
* chore UPdate to the latest types from the expected outout
* fixes
* fix typo
* Don't emit if failure on tsc
* wip
Co-authored-by: Jade <Blu-J@users.noreply.github.com>
* add s9pk api
* add inspection
* add inspect manifest
* newline after display serializable
* fix squashfs in image name
* edit manifest
Co-authored-by: Jade <Blu-J@users.noreply.github.com>
* wait for response on repl
* ignore sig for now
* ignore sig for now
* re-enable sig verification
* fix
* wip
* env and chroot
* add profiling logs
* set uid & gid in squashfs to 100000
* set uid of sqfs to 100000
* fix mksquashfs args
* add env to compat
* fix
* re-add docker feature flag
* fix docker output format being stupid
* here be dragons
* chore: Add in the cross compiling for something
* fix npm link
* extract logs from container on exit
* chore: Update for testing
* add log capture to drop trait
* chore: add in the modifications that I make
* chore: Update small things for no updates
* chore: Update the types of something
* chore: Make main not complain
* idmapped mounts
* idmapped volumes
* re-enable kiosk
* chore: Add in some logging for the new system
* bring in start-sdk
* remove avahi
* chore: Update the deps
* switch to musl
* chore: Update the version of prettier
* chore: Organize'
* chore: Update some of the headers back to the standard of fetch
* fix musl build
* fix idmapped mounts
* fix cross build
* use cross compiler for correct arch
* feat: Add in the faked ssl stuff for the effects
* @dr_bonez Did a solution here
* chore: Something that DrBonez
* chore: up
* wip: We have a working server!!!
* wip
* uninstall
* wip
* tes
* misc fixes
* fix cli
* replace interface with host
* chore: Fix the types in some ts files
* chore: quick update for the system for embassy to update the types
* replace br-start9 with lxcbr0
* split patchdb into public/private
* chore: Add changes for config set
* Feat: Adding some debugging for the errors
* wip: Working on getting the set config to work
* chore: Update and fix the small issue with the deserialization
* lightning, masked, schemeOverride, invert host-iface relationship
* feat: Add in the changes for just the sdk
* feat: Add in the changes for the new effects I suppose for now
* Some small changes ????
---------
Co-authored-by: J H <2364004+Blu-J@users.noreply.github.com>
Co-authored-by: J H <Blu-J@users.noreply.github.com>
Co-authored-by: J H <dragondef@gmail.com>
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* wip(fix): Dependencies
* wip: context
* wip(fix) Sorta auth
* wip: warnings
* wip(fix): registry/admin
* wip(fix) marketplace
* wip(fix) Some more converted and fixed with the linter and config
* wip: Working on the static server
* wip(fix)static server
* wip: Remove some asynnc
* wip: Something about the request and regular rpc
* wip: gut install
Co-authored-by: J H <Blu-J@users.noreply.github.com>
* wip: Convert the static server into the new system
* wip delete file
* test
* wip(fix) vhost does not need the with safe defaults
* wip: Adding in the wifi
* wip: Fix the developer and the verify
* wip: new install flow
Co-authored-by: J H <Blu-J@users.noreply.github.com>
* fix middleware
* wip
* wip: Fix the auth
* wip
* continue service refactor
* feature: Service get_config
* feat: Action
* wip: Fighting the great fight against the borrow checker
* wip: Remove an error in a file that I just need to deel with later
* chore: Add in some more lifetime stuff to the services
* wip: Install fix on lifetime
* cleanup
* wip: Deal with the borrow later
* more cleanup
* resolve borrowchecker errors
* wip(feat): add in the handler for the socket, for now
* wip(feat): Update the service_effect_handler::action
* chore: Add in the changes to make sure the from_service goes to context
* chore: Change the
* refactor service map
* fix references to service map
* fill out restore
* wip: Before I work on the store stuff
* fix backup module
* handle some warnings
* feat: add in the ui components on the rust side
* feature: Update the procedures
* chore: Update the js side of the main and a few of the others
* chore: Update the rpc listener to match the persistant container
* wip: Working on updating some things to have a better name
* wip(feat): Try and get the rpc to return the correct shape?
* lxc wip
* wip(feat): Try and get the rpc to return the correct shape?
* build for container runtime wip
* remove container-init
* fix build
* fix error
* chore: Update to work I suppose
* lxc wip
* remove docker module and feature
* download alpine squashfs automatically
* overlays effect
Co-authored-by: Jade <Blu-J@users.noreply.github.com>
* chore: Add the overlay effect
* feat: Add the mounter in the main
* chore: Convert to use the mounts, still need to work with the sandbox
* install fixes
* fix ssl
* fixes from testing
* implement tmpfile for upload
* wip
* misc fixes
* cleanup
* cleanup
* better progress reporting
* progress for sideload
* return real guid
* add devmode script
* fix lxc rootfs path
* fix percentage bar
* fix progress bar styling
* fix build for unstable
* tweaks
* label progress
* tweaks
* update progress more often
* make symlink in rpc_client
* make socket dir
* fix parent path
* add start-cli to container
* add echo and gitInfo commands
* wip: Add the init + errors
* chore: Add in the exit effect for the system
* chore: Change the type to null for failure to parse
* move sigterm timeout to stopping status
* update order
* chore: Update the return type
* remove dbg
* change the map error
* chore: Update the thing to capture id
* chore add some life changes
* chore: Update the loging
* chore: Update the package to run module
* us From for RpcError
* chore: Update to use import instead
* chore: update
* chore: Use require for the backup
* fix a default
* update the type that is wrong
* chore: Update the type of the manifest
* chore: Update to make null
* only symlink if not exists
* get rid of double result
* better debug info for ErrorCollection
* chore: Update effects
* chore: fix
* mount assets and volumes
* add exec instead of spawn
* fix mounting in image
* fix overlay mounts
Co-authored-by: Jade <Blu-J@users.noreply.github.com>
* misc fixes
* feat: Fix two
* fix: systemForEmbassy main
* chore: Fix small part of main loop
* chore: Modify the bundle
* merge
* fixMain loop"
* move tsc to makefile
* chore: Update the return types of the health check
* fix client
* chore: Convert the todo to use tsmatches
* add in the fixes for the seen and create the hack to allow demo
* chore: Update to include the systemForStartOs
* chore UPdate to the latest types from the expected outout
* fixes
* fix typo
* Don't emit if failure on tsc
* wip
Co-authored-by: Jade <Blu-J@users.noreply.github.com>
* add s9pk api
* add inspection
* add inspect manifest
* newline after display serializable
* fix squashfs in image name
* edit manifest
Co-authored-by: Jade <Blu-J@users.noreply.github.com>
* wait for response on repl
* ignore sig for now
* ignore sig for now
* re-enable sig verification
* fix
* wip
* env and chroot
* add profiling logs
* set uid & gid in squashfs to 100000
* set uid of sqfs to 100000
* fix mksquashfs args
* add env to compat
* fix
* re-add docker feature flag
* fix docker output format being stupid
* here be dragons
* chore: Add in the cross compiling for something
* fix npm link
* extract logs from container on exit
* chore: Update for testing
* add log capture to drop trait
* chore: add in the modifications that I make
* chore: Update small things for no updates
* chore: Update the types of something
* chore: Make main not complain
* idmapped mounts
* idmapped volumes
* re-enable kiosk
* chore: Add in some logging for the new system
* bring in start-sdk
* remove avahi
* chore: Update the deps
* switch to musl
* chore: Update the version of prettier
* chore: Organize'
* chore: Update some of the headers back to the standard of fetch
* fix musl build
* fix idmapped mounts
* fix cross build
* use cross compiler for correct arch
* feat: Add in the faked ssl stuff for the effects
* @dr_bonez Did a solution here
* chore: Something that DrBonez
* chore: up
* wip: We have a working server!!!
* wip
* uninstall
* wip
* tes
* misc fixes
* fix cli
* replace interface with host
* chore: Fix the types in some ts files
* chore: quick update for the system for embassy to update the types
* replace br-start9 with lxcbr0
* split patchdb into public/private
* chore: Add changes for config set
* Feat: Adding some debugging for the errors
* wip: Working on getting the set config to work
* chore: Update and fix the small issue with the deserialization
* lightning, masked, schemeOverride, invert host-iface relationship
* feat: Add in the changes for just the sdk
* feat: Add in the changes for the new effects I suppose for now
---------
Co-authored-by: J H <2364004+Blu-J@users.noreply.github.com>
Co-authored-by: J H <Blu-J@users.noreply.github.com>
Co-authored-by: J H <dragondef@gmail.com>
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* wip: static-server errors
* wip: fix wifi
* wip: Fix the service_effects
* wip: Fix cors in the middleware
* wip(chore): Auth clean up the lint.
* wip(fix): Vhost
* wip: continue manager refactor
Co-authored-by: J H <Blu-J@users.noreply.github.com>
* wip: service manager refactor
* wip: Some fixes
* wip(fix): Fix the lib.rs
* wip
* wip(fix): Logs
* wip: bins
* wip(innspect): Add in the inspect
* wip: config
* wip(fix): Diagnostic
* wip(fix): Dependencies
* wip: context
* wip(fix) Sorta auth
* wip: warnings
* wip(fix): registry/admin
* wip(fix) marketplace
* wip(fix) Some more converted and fixed with the linter and config
* wip: Working on the static server
* wip(fix)static server
* wip: Remove some asynnc
* wip: Something about the request and regular rpc
* wip: gut install
Co-authored-by: J H <Blu-J@users.noreply.github.com>
* wip: Convert the static server into the new system
* wip delete file
* test
* wip(fix) vhost does not need the with safe defaults
* wip: Adding in the wifi
* wip: Fix the developer and the verify
* wip: new install flow
Co-authored-by: J H <Blu-J@users.noreply.github.com>
* fix middleware
* wip
* wip: Fix the auth
* wip
* continue service refactor
* feature: Service get_config
* feat: Action
* wip: Fighting the great fight against the borrow checker
* wip: Remove an error in a file that I just need to deel with later
* chore: Add in some more lifetime stuff to the services
* wip: Install fix on lifetime
* cleanup
* wip: Deal with the borrow later
* more cleanup
* resolve borrowchecker errors
* wip(feat): add in the handler for the socket, for now
* wip(feat): Update the service_effect_handler::action
* chore: Add in the changes to make sure the from_service goes to context
* chore: Change the
* refactor service map
* fix references to service map
* fill out restore
* wip: Before I work on the store stuff
* fix backup module
* handle some warnings
* feat: add in the ui components on the rust side
* feature: Update the procedures
* chore: Update the js side of the main and a few of the others
* chore: Update the rpc listener to match the persistant container
* wip: Working on updating some things to have a better name
* wip(feat): Try and get the rpc to return the correct shape?
* lxc wip
* wip(feat): Try and get the rpc to return the correct shape?
* build for container runtime wip
* remove container-init
* fix build
* fix error
* chore: Update to work I suppose
* lxc wip
* remove docker module and feature
* download alpine squashfs automatically
* overlays effect
Co-authored-by: Jade <Blu-J@users.noreply.github.com>
* chore: Add the overlay effect
* feat: Add the mounter in the main
* chore: Convert to use the mounts, still need to work with the sandbox
* install fixes
* fix ssl
* fixes from testing
* implement tmpfile for upload
* wip
* misc fixes
* cleanup
* cleanup
* better progress reporting
* progress for sideload
* return real guid
* add devmode script
* fix lxc rootfs path
* fix percentage bar
* fix progress bar styling
* fix build for unstable
* tweaks
* label progress
* tweaks
* update progress more often
* make symlink in rpc_client
* make socket dir
* fix parent path
* add start-cli to container
* add echo and gitInfo commands
* wip: Add the init + errors
* chore: Add in the exit effect for the system
* chore: Change the type to null for failure to parse
* move sigterm timeout to stopping status
* update order
* chore: Update the return type
* remove dbg
* change the map error
* chore: Update the thing to capture id
* chore add some life changes
* chore: Update the loging
* chore: Update the package to run module
* us From for RpcError
* chore: Update to use import instead
* chore: update
* chore: Use require for the backup
* fix a default
* update the type that is wrong
* chore: Update the type of the manifest
* chore: Update to make null
* only symlink if not exists
* get rid of double result
* better debug info for ErrorCollection
* chore: Update effects
* chore: fix
* mount assets and volumes
* add exec instead of spawn
* fix mounting in image
* fix overlay mounts
Co-authored-by: Jade <Blu-J@users.noreply.github.com>
* misc fixes
* feat: Fix two
* fix: systemForEmbassy main
* chore: Fix small part of main loop
* chore: Modify the bundle
* merge
* fixMain loop"
* move tsc to makefile
* chore: Update the return types of the health check
* fix client
* chore: Convert the todo to use tsmatches
* add in the fixes for the seen and create the hack to allow demo
* chore: Update to include the systemForStartOs
* chore UPdate to the latest types from the expected outout
* fixes
* fix typo
* Don't emit if failure on tsc
* wip
Co-authored-by: Jade <Blu-J@users.noreply.github.com>
* add s9pk api
* add inspection
* add inspect manifest
* newline after display serializable
* fix squashfs in image name
* edit manifest
Co-authored-by: Jade <Blu-J@users.noreply.github.com>
* wait for response on repl
* ignore sig for now
* ignore sig for now
* re-enable sig verification
* fix
* wip
* env and chroot
* add profiling logs
* set uid & gid in squashfs to 100000
* set uid of sqfs to 100000
* fix mksquashfs args
* add env to compat
* fix
* re-add docker feature flag
* fix docker output format being stupid
* here be dragons
* chore: Add in the cross compiling for something
* fix npm link
* extract logs from container on exit
* chore: Update for testing
* add log capture to drop trait
* chore: add in the modifications that I make
* chore: Update small things for no updates
* chore: Update the types of something
* chore: Make main not complain
* idmapped mounts
* idmapped volumes
* re-enable kiosk
* chore: Add in some logging for the new system
* bring in start-sdk
* remove avahi
* chore: Update the deps
* switch to musl
* chore: Update the version of prettier
* chore: Organize'
* chore: Update some of the headers back to the standard of fetch
* fix musl build
* fix idmapped mounts
* fix cross build
* use cross compiler for correct arch
* feat: Add in the faked ssl stuff for the effects
* @dr_bonez Did a solution here
* chore: Something that DrBonez
* chore: up
* wip: We have a working server!!!
* wip
* uninstall
* wip
* tes
---------
Co-authored-by: J H <dragondef@gmail.com>
Co-authored-by: J H <Blu-J@users.noreply.github.com>
Co-authored-by: J H <2364004+Blu-J@users.noreply.github.com>
* fix sdk build script
* fix: Docker stopping will include a timeoute
So the timeout that was included in the original is not working therefore we move to a doublinig with a timeout
* fix: Adding in the missing suggestions that Aiden has poinited out
* Update install-sdk.sh
* Update install-sdk.sh
---------
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* wip
* update marketplace categories styling
* update logo icons
* add sort pipe
* update search component styling
* clean up categories component
* cleanup and remove unnecessary sort pipe
* query packages in selected category
* fix search styling
* add reg icon and font, adjust category styles
* fix build from rebasing integration/refactors
* adjust marketplace types for icon with store data, plus formatting
* formatting
* update categories and search
* hover styling for categories
* category styling
* refactor for category as a behavior subject
* more category styling
* base functionality with new marketplace components
* styling cleanup
* misc style fixes and fix category selection from package page
* fixes from review feedback
* add and style additional details
* implement release notes modal
* fix menu when on service show page mobile to display change marketplace
* style and responsiveness fixes
* rename header to sidebar
* input icon config to sidebar
* add mime type pipe and type fn
* review feedback fixes
* skeleton text, more abstraction
* reorder categories, clean up a little
* audit sidebar, categories, store-icon, marketplace-sidebar, search
* finish code cleanup and fix few bugs
* misc fixes and cleanup
* fix broken styles and markdown
* bump shared marketplace version
* more cleanup
* sync package lock
* rename sidebar component to menu
* wip preview sidebar
* sync package lock
* breakout package show elements into components
* link to brochure in preview; custom taiga button styles
* move marketplace preview component into ui; open preview when viewing service in marketplace
* sync changes post file struture rename
* further cleanup
* create service for sidebar toggle and cleanup marketplace components
* bump shared marketplace version
* bump shared for new images needed for brochure marketplace
* cleanup
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* play song unconditionally
* double bep-bep frequency
* play song during firmware update
---------
Co-authored-by: J H <2364004+Blu-J@users.noreply.github.com>
Leaving in the thing about the rpc client because that will be part of the rewrite, and some of the previous logic should be usefull for the next version of the api. We do need a bidirection but that should world
* fix automated tests
* automated test gh workflow
* rename workflow
* ignore test that relies on physical hardware
* use HOME env var when relevant
* optimize
* fix test
* move enter-click directive to shared
* allow enter click to continue to login in kiosk mode; adjust styling
* cleanup
* add styling to ca wizard
* rebase new changes
* mobile fixes
* cleanup
* cleanup
* update styling
* cleanup import
* minor css changes
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* rework ntp faiure handling and display to user
* uptime in seconds
* change how we handle ntp
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* simplify db sync on rpc endpoints
* switch to patch-db master
* update fe for websocket only stream
* fix api
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* fix some causes of start wonkiness on update
* fix race condition with manager
Co-authored-by: J H <Blu-J@users.noreply.github.com>
* only restart if running
* fix start function
* clean up clode
* fix restart logic
---------
Co-authored-by: J H <Blu-J@users.noreply.github.com>
* fix: Add in logging for the podman in the system logs
* https as default for main tor address
---------
Co-authored-by: agent <kn0wmad@protonmail.com>
* set governor to "performance" if available
* add linux-cpupower
* fix: Boolean blindness, thanks @dr-bones
---------
Co-authored-by: J H <2364004+Blu-J@users.noreply.github.com>
* feat: Change all the dependency errors at once
* remove deprecated dependency-errors field
* set pointers to [] by default
* chore: Something about fixing the build
* fix migration
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* registryadmin scripts
Add `start-sdk publish` command which can potentially replace
the Haskell implementation of `registry-publish upload`
* restructure modules
---------
Co-authored-by: Sam Sartor <me@samsartor.com>
* the only way to begin is by beginning
* chore: Convert over 3444 migration
* fix imports
* wip
* feat: convert volume
* convert: system.rs
* wip(convert): Setup
* wip properties
* wip notifications
* wip
* wip migration
* wip init
* wip auth/control
* wip action
* wip control
* wiip 034
* wip 344
* wip some more versions converted
* feat: Reserialize the version of the db
* wip rest of the versions
* wip s9pk/manifest
* wip wifi
* chore: net/keys
* chore: net/dns
* wip net/dhcp
* wip manager manager-map
* gut dependency errors
* wip update/mod
* detect breakages locally for updates
* wip: manager/mod
* wip: manager/health
* wip: backup/target/mod
* fix: Typo addresses
* clean control.rs
* fix system package id
* switch to btreemap for now
* config wip
* wip manager/mod
* install wip
Co-authored-by: J H <Blu-J@users.noreply.github.com>
* chore: Update the last of the errors
* feat: Change the prelude de to borrow
* feat: Adding in some more things
* chore: add to the prelude
* chore: Small fixes
* chore: Fixing the small errors
* wip: Cleaning up check errors
* wip: Fix some of the issues
* chore: Fix setup
* chore:fix version
* chore: prelude, mod, http_reader
* wip backup_bulk
* chore: Last of the errors
* upadte package.json
* chore: changes needed for a build
* chore: Removing some of the linting errors in the manager
* chore: Some linting 101
* fix: Wrong order of who owns what
* chore: Remove the unstable
* chore: Remove the test in the todo
* @dr-bonez did a refactoring on the backup
* chore: Make sure that there can only be one override guard at a time
* resolve most todos
* wip: Add some more tracing to debug an error
* wip: Use a mv instead of rename
* wip: Revert some of the missing code segments found earlier
* chore: Make the build
* chore: Something about the lib looks like it iis broken
* wip: More instrument and dev working
* kill netdummy before creating it
* better db analysis tools
* fixes from testing
* fix: Make add start the service
* fix status after install
* make wormhole
* fix missing icon file
* fix data url for icons
* fix: Bad deser
* bugfixes
* fix: Backup
* fix: Some of the restor
* fix: Restoring works
* update frontend patch-db types
* hack it in (#2424)
* hack it in
* optimize
* slightly cleaner
* handle config pointers
* dependency config errs
* fix compat
* cache docker
* fix dependency expectation
* fix dependency auto-config
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <mattnine@protonmail.com>
Co-authored-by: J H <Blu-J@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* enable switching to https on login page
* add trust Root CA to http login page
* add node-jose back for setup wiz
* add tooltips, branding, logic for launch box spinner display, and enable config to toggle https mode on mocks
* cleanup
* copy changes
* style fixes
* abstract component, fix https mocks
* always show login from localhost
* launch .local when on IP
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* wip: Pulling in the features of the refactor since march
* chore: Fixes to make the system able to build
* chore: Adding in the documentation for the manager stuff
* feat: Restarting and wait for stop
* feat: Add a soft shutdown not commit to db.
* chore: Remove the comments of bluj
* chore: Clean up some of the linting errors
* chore: Clean up the signal
* chore: Some more cleanup
* fix: The configure
* fix: A missing config
* fix: typo
* chore: Remove a comment of BLUJ that needed to be removed
This includes the docker commands to get things compressed.
And this is the start of the rpc, but needs lots of work, or very little, not sure yet anymore.
I beleive that the things that are missing are the rpc, and the effects. So, lots of work, but is still good to have I suppose.
fronend: ui: bugfix: consistent password length.
* The password set dialogue forces maxlenght=64 but when logging in,
the dialogue does not forces this. This makes an issue when the user
copy/pastes a longer than 64 character password in boxes. closes#2375
* proxies
* OS outbound proxy. ugly, needs work
* abstract interface address management
* clearnet and outbound proxies for services
* clean up
* router tab
* smart launching of UIs
* update sdk types
* display outbound proxy on service show and rework menu
* update deno
* add proxy
* remove query params, now auto added by BE
* add hardware requirements and BE reg query params
* update query params for BE requests
* allow multiple arches in hw reqs
* explain git hash mismatch
* require lshw
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* feat(portal): implement adding/removing to desktop, reordering desktop items, baseline for system utils
* chore: fix comments
---------
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* revert patch for string parsing fix due to out of date yq version
* reorganize conditionals
* use ng-container
* alertButton needs to be outside of template or container
* fix ROFS error on os install
* attempt to prompt browser to update manifest data with id and modified start_url
* update icon with better shape for ios
* add additional options for refreshing on pwas
* add loader to pwa reload
* fix pwa icon and add icon for ios
* add logic for refresh display depending on if pwa
* fix build for ui; fix numeric parsing error on osx
* typo
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* fix reset tor, delete http redirect, show message for tor http, update release notes
* potentially fix doubel req to registries
* change language arund LAN and root ca
* link locally instead of docs
* support http2 alpn handshake
* fix protocol name
* switch to https for tor
* update setup wizard and main ui to accommodate https (#2356)
* update setup wizard and main ui to accommodate https
* update wording in download doc
* fix accidential conversion of tor https for services and allow ws still
* redirect to https if available
* fix replaces to only search at beginning and ignore localhost when checking for https
---------
Co-authored-by: Lucy <12953208+elvece@users.noreply.github.com>
* better transfer progress
* frontend for calculating transfer size
* fixes from testing
* improve internal api
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
update FE types and unify sideload page with marketplace show
begin popover for UI launch select
update node version for github workflows
fix type errors
eager load more components
fix mocks for types
recalculate updates bad on pkg uninstall
chore: break form-object file structure
files for config
finish file upload API and implement for config
chore: break down form-object by type, part 1
remove NEW from config
comment entire setTimeout for new
generic form options
chore: break down form-object by type, part 2
headers for enums and unions
implement select and multiselect for config
update union types and camel case for specs
implement textarea config value
inputspec and required instead of nullable
remove subtype from list spec
update start-sdk
bump start-sdk
feat: use Taiga UI for config modal (#2250)
* feat: use Taiga UI for config modal
* chore: finish remaining changes
* chore: address comments
* bump sdk version
---------
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
update package lock
update to sdk 20 and fix types
chore: update Taiga UI and migrate some more forms (#2252)
update form to latest sdk
validate length for textarea too
chore: accommodate new changes to the specs (#2254)
* chore: accommodate new changes to the specs
* chore: fix error
* chore: fix error
feat: add input color (#2257)
* feat: add input color
* patterns will always be there
---------
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
chore: properly type pattern error
update to latest sdk
Add sans-serif font fallback (#2263)
* Add sans-serif font fallback
* Update frontend readme start scripts
feat: add datetime spec support (#2264)
Wifi optional (#2249)
* begin work
* allow enable and disable wifi
* nice styling
* done except for popover not dismissing
* update wifi.ts
* address comments
Feat/automated backups (#2142)
* initial restructuring
* very cool
* new structure in place
* delete unnecessary T
* down the rabbit hole
* getting better
* dont like it
* nice
* very nice
* sessions select all
* nice
* backup runs
* fix targets and more
* small improvements
* mostly working
* address PR comments
* fix error
* delete issue with merge
* fix checkboxes and add API for deleting backup runs
* better styling for checkboxes
* small button in ssh kpage too
* complete multiple UI launcher
* fix actions
* present error toast too
* fix target forms
Add logs window to setup wizard loading screen (#2076)
* add logs window to setup wizard loading screen
* fix type error
* Update frontend/projects/setup-wizard/src/app/services/api/live-api.service.ts
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
---------
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
statically type server metrics and use websocket (#2124)
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Feat/external-smtp (#1791)
* UI for EOS smtp, missing API layer
* implement api
* fix errors
* switch to external smtp creds
* fix things up
* fix types
* update types for new forms
* feat: add new form to emails and marketplace (#2268)
* import tuilet module
* feat: get rid of old form completely (#2270)
* move to builder spec and delete developer menu
* update sdk
* tiny
* getting better
* working
* done
* feat: add step to number config
* chore: small fixes
* update SDK and step for numbers
---------
Co-authored-by: Alex Inkin <alexander@inkin.ru>
latest sdk, fix build
update SDK for better disabled props
feat: implement `disabled`, `immutable` and `generate` (#2280)
* feat: implement `disabled`, `immutable` and `generate`
* chore: remove unnecessary code
* chore: add generate to textarea and implement immutable
* no generate for textarea
---------
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
update lockfile
refactor: extract loading status to shared library (#2282)
* refactor: extract loading status to shared library
* chore: remove inline style
refactor: break routing down to apps level (#2285)
closes#2212 and closes#2214
Feat/credentials (#2290)
add credentials and remove properties
refactor: break ui up further down (#2292)
* refactor: break ui up further down
* permit loading even when authed
---------
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
update patchdb for package compatability fixes
fix file structure
WIP
finish rebase
mvp complete
port forwards mvp
looking good
cleaner system page
move experimental features
manual port overrides
better info headers for jobs pages
refactor: move diagnostic-ui app under ui route (#2306)
* refactor: move diagnostic-ui app under ui route
* chore: hide navigation
* chore: remove ionic from diagnostic
* fix navbar showing on login
---------
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
chore: partially remove ionic modals and loaders (#2308)
* chore: partially remove ionic modals and loaders
* change to snake
---------
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
better session data fetching
abstract store icon component to shared marketplace project (#2311)
* abstract store icon component to shared marketplace project
* better than using a pipe
* minor cleanup
* chore: fix missing node types in libraries
* typo
---------
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: waterplea <alexander@inkin.ru>
refactor: continue to get rid of ionic infrastructure (#2325)
refactor: finish removing ionic entities: (#2333)
* refactor: finish removing ionic entities:
ToastController
ErrorToastService
ModalController
AlertController
LoadingController
* chore: rollback testing code
* chore: fix comments
* minor form change
* chore: fix comments
* update clearnet address parts
* move around patchDB
* chore: fix comments
---------
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
fixup after rebase
* feat: implement `disabled`, `immutable` and `generate`
* chore: remove unnecessary code
* chore: add generate to textarea and implement immutable
* no generate for textarea
---------
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* UI for EOS smtp, missing API layer
* implement api
* fix errors
* switch to external smtp creds
* fix things up
* fix types
* update types for new forms
* feat: add new form to emails and marketplace (#2268)
* import tuilet module
* feat: get rid of old form completely (#2270)
* move to builder spec and delete developer menu
* update sdk
* tiny
* getting better
* working
* done
* feat: add step to number config
* chore: small fixes
* update SDK and step for numbers
---------
Co-authored-by: Alex Inkin <alexander@inkin.ru>
* initial restructuring
* very cool
* new structure in place
* delete unnecessary T
* down the rabbit hole
* getting better
* dont like it
* nice
* very nice
* sessions select all
* nice
* backup runs
* fix targets and more
* small improvements
* mostly working
* address PR comments
* fix error
* delete issue with merge
* fix checkboxes and add API for deleting backup runs
* better styling for checkboxes
* small button in ssh kpage too
* complete multiple UI launcher
* fix actions
* present error toast too
* fix target forms
wip: Refactoring the service
-> Made new skeleton
-> Added service manager
-> Manager Refactored
-> Cleanup
-> Add gid struct
-> remove synchronizer
-> Added backup into manager
-> Fix the configure signal not send
-> Fixes around backup and sync
wip: Moved over the config into the service manager
js effect for subscribing to config
js effect for subscribing to config
fix errors
chore: Fix some things in the manager for clippy
add interfaces from manifest automatically
make OsApi manager-based
wip: Starting down the bind for the effects
todo: complete a ip todo
chore: Fix the result type on something
todo: Address returning
chore: JS with callbacks
chore: Add in the chown and permissions
chore: Add in the binds and unbinds in
feat: Add in the ability to get configs
makefile changes
add start/stop/restart to effects
config hooks
fix: add a default always to the get status
chore: Only do updates when the thing is installed.
use nistp256 to satisfy firefox
use ed25519 if available
chore: Make the thing buildable for testing
chore: Add in the debugging
fix ip signing
chore: Remove the bluj tracing
fix SQL error
chore: Fix the build
update prettytable to fix segfault
Chore: Make these fn's instead of allways ran.
chore: Fix the testing
fix: The stopping/ restarting service
fix: Fix the restarting.
remove current-dependents, derive instead
remove pointers from current-dependencies
remove pointers and system pointers from FE
v0.3.4
remove health checks from manifest
remove "restarting" bool on "starting" status
remove restarting attr
update makefile
fix
add efi support
fix efi
add redirect if connecting to https over http
clean up
lan port forwarding
add `make update` and `make update-overlay`
fix migration
more protections
fix: Fix a lint
chore: remove the limit on the long-running
fix: Starting sometimes.
fix: Make it so the stop of the main works
fix: Bind local and tor with package.
wip: envs
closes#2152, closes#2155, closes#2157
fix TS error
import config types from sdk
update package.json
chore: remove the limit on the long-running
fix: Starting sometimes.
fix: Make it so the stop of the main works
fix: Bind local and tor with package.
wip: envs
fix TS error
import config types from sdk
update package.json
fix: add a default always to the get status
chore: Only do updates when the thing is installed.
chore: Make the thing buildable for testing
chore: Add in the debugging
chore: Remove the bluj tracing
chore: Fix the build
Chore: Make these fn's instead of allways ran.
chore: Fix the testing
fix: The stopping/ restarting service
fix: Fix the restarting.
todo: complete a ip todo
chore: Fix the result type on something
todo: Address returning
chore: JS with callbacks
chore: Add in the chown and permissions
chore: Add in the binds and unbinds in
-> Made new skeleton
-> Added service manager
-> Manager Refactored
-> Cleanup
-> Add gid struct
-> remove synchronizer
-> Added backup into manager
-> Fix the configure signal not send
-> Fixes around backup and sync
wip: Moved over the config into the service manager
* make it faster
* better pipelining
* remove unnecessary test
* use tmpfs for debspawn
* don't download intermediate artifacts
* fix upload dir path
* switch to buildjet
* use buildjet cache on buildjet runner
* native builds when fast
* remove quotes
* always use buildjet cache
* remove newlines
* delete data after done with it
* skip aarch64 for fast dev builds
* don't tmpfs for arm
* don't try to remove debspawn tmpdir
* update display obj on union change
* deelete unnecessary changes
* more efficient
* fix: properly change height of form object
* more config examples
---------
Co-authored-by: waterplea <alexander@inkin.ru>
* fix spacing and font size
* fix spacing reverted by linting
* fix styles and event propagation on updates tab
* fix login theme
* remove global font setting
* remove taiga theming for now
* move website button and bump shared and marketplace libs
---------
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* display message not object on login page
* more release notes
* fix firefox ssl issue
* fix no pubkey error
* Fix/missing main (#2194)
fix: Main during migration
---------
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: J H <2364004+Blu-J@users.noreply.github.com>
* update version to 0.3.4
* update release guide with sdk instructions
* remove comment
* update page styling
* closes#2152, closes#2155, closes#2157
* move marketing site link to description block
* re-arrange setup wizard recovery options
* move divider for update list item
* fix bug in mocks to display lnd as aavailable for update
---------
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* refactor networking and account
* add interfaces from manifest automatically
* use nistp256 to satisfy firefox
* use ed25519 if available
* fix ip signing
* fix SQL error
* update prettytable to fix segfault
* fix migration
* fix migration
* bump welcome-ack
* add redirect if connecting to https over http
* misc rebase fixes
* fix compression
* bump rustc version
* chore: Update version to 0.3.4"
* chore: Update others to the latest code
* release notes
* registry not marketplace
---------
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* feat: add themes
* fix: remove obvious issues with light theme
* chore: improve light theme a bit
* comment out theme swticher
* chore: make login dark
* add theme and widgets to seeds
* add theme and widgets to migration
---------
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* feat: Add in the read dir.
Have a test that proves that this is working.
* chore: Let the read dir work while in a read only mode
* revert: To old sync
* wip
* should be working now
* delete unused function
* delete 2 more unused functions
* update fixture to include beta registry
* address comments
* wait for connection to get local packages
* prevent excessive nesting for unions, closes#2107, and genrally refactor config
* a littel cleaner
* working but with inefficiencies
* remove warning from union list
* introduce messaging for config with only pointers
* feat(shared): `ElasticContainer` add new component (#2134)
* feat(shared): `ElasticContainer` add new component
* chore: fix imports
* revert to 250 for resize
* remove logs
Co-authored-by: Alex Inkin <alexander@inkin.ru>
* closes#2084, rearranges marketplace show, app show, and donation link for Start9
* use url query param if present when fetching license and instructions
* remove log
* chore: Add some checking
* chore: Update something about validation
* chore: Update to use correct default
Co-authored-by: BluJ <mogulslayer@gmail.com>
* re-add community marketplace and handle missing dependency
* feat: Add in the community to migration
* chore: Add in the community marketplace_url update
* change var name to hidden
* chore: Add in the down
Co-authored-by: BluJ <mogulslayer@gmail.com>
* wip: Working on sockets, but can't connect?
* simplify unix socket connection
* wip: Get responses back from the server at least once.
* WIP: Get the sockets working'
* feat: Sockets can start/ stop/ config/ properites/ uninstall
* fix: Restart services
* Fix: Sockets work and can stop main and not kill client
* chore: Add logging to service
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* wip: Working on sockets, but can't connect?
* simplify unix socket connection
* wip: Get responses back from the server at least once.
* WIP: Get the sockets working'
* feat: Sockets can start/ stop/ config/ properites/ uninstall
* fix: Restart services
* Fix: Sockets work and can stop main and not kill client
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* feat: Conver from the copy all bytes over to file-file transer
* use pi-beep
* fix minor mistakes
* recursive rm
* add fs resize
Co-authored-by: BluJ <mogulslayer@gmail.com>
* make procfs an optional dependency so sdk can build on macos
* flag dependency as linux only
* remove optional procfs dep
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* fix html displaying in marketplace banner description
* always bold install risk copy
* display correct pkg in marketplace when diff registry, copy changes
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* wait for monitor to be attached before launching firefox
* add code to kill firefox on monitor disconnect
* fix detection for the pi
* Remove Pi only logic
* chore: Remove the kiosk mode
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: J M <2364004+Blu-J@users.noreply.github.com>
Co-authored-by: BluJ <mogulslayer@gmail.com>
* user must click continue in kiosk on success page
* hide source disk when target list for transfer and shpw indeterminate bar when 100%
* minor copy
* also check for guid on disk
* reuse va
* do not start progress at 0 before diff complete
* fix: Test rsync
* don't report progress of 0
* drop initialization value from progress stream
Co-authored-by: BluJ <mogulslayer@gmail.com>
* better migration progress bar
* show different messages based on setup type and fix modal height
* type safety
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* remove community registry from FE defaults
* fix: Changes requested from matt (#1989)
* fix: Changes requested from matt
* chore: Remove more of the migration for the community
Co-authored-by: J M <2364004+Blu-J@users.noreply.github.com>
* ensure arch is calways present in config
* add eos version to params when fetching marketplace info
* fix build script
* choose arch based on make goals
* conditionally send different arch param to registry
* better type for qp
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* fuck it: no patchdb locks
* fix: Add the locking to the package during the backup. (#1979)
* fix: Add the locking to the package during the backup.
* fix: Lock for the uninstall of the package
* switch patch-db to next
Co-authored-by: J M <2364004+Blu-J@users.noreply.github.com>
* remove updates from marketplace, fix search, link updates to marketplace, styling
* add dependency checks and error handling to updates tab
* add circle around back buttons
* get pubkey and encrypt password on login
* only encrypt password if insecure context
* fix logic
* fix secure context conditional
* get-pubkey to auth api
* save two lines
* feat: Add the backend to the ui (#1968)
* hide app show if insecure and update copy for LAN
* show install progress when insecure and prevent backup and restore
* ask remove USB
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: J M <2364004+Blu-J@users.noreply.github.com>
* fix login error message spacing and ensure not longer than 64 chars
* spinner color to tertiary
* totally responsive homepage cards
* copy changes, back button for marketplace, minor styling
* center setup wizard tiles; adjust external link style
* remove cert note from setup success
* convert launch card to go to login button
* change system settings to system; update icons
* refactor card widget input as full card details; more card resizing for home page
* cleanup
* clean up widget params
* delete contructor
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* add new card widget for empty services page
* add homepage
* fix icons
* copy and arrangement changes
* minor changes
* edit login page
* rcreate widget list component
* cchange change detection strategy
* show header in home, welcome in list (#1957)
* show hear in home but not in list
* adjust padding
Co-authored-by: Lucy Cifferello <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* base srevampof home page
* update sembassy page
* update all ephemeral pages
* matrix animation working
* wip success
* refactor styling of success page
* modal and mobile adjustments
* cleanup
* make chnages to styles and copy (#1955)
* make chnages to styles and copy
* fix responsiveness of downloadable page
Co-authored-by: Lucy Cifferello <12953208+elvece@users.noreply.github.com>
* refactor success page
* cleanup headers
* revert isKiosk testing
* udpate patch DB
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* fix: Cleanup by sending a command and kill when dropped
* chore: Fix the loadModule run command
* fix: cleans up failed health
* refactor long-running
* chore: Fixes?"
* refactor
* run iso ci on pr
* fix debuild
* fix tests
* switch to libc kill
* kill process by parent
* fix graceful shutdown
* recurse submodules
* fix compat build
* feat: Add back in the timeout
* chore: add the missing types for the unnstable
* inherited logs
Co-authored-by: J M <Blu-J@users.noreply.github.com>
* fix deleted code
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: J M <Blu-J@users.noreply.github.com>
* feat: For ota update using rsyncd
* chore: Fix where we rsync to.
* chore: Getting rsync to work
* chore: Add in the is raspberry pi
* chore: Update is raspberry pi
* refactor setup backend
* rework setup wizard according to new scheme
* fix bug with partitions in SW and warning message in IW
* treat localhost as LAN for launching services
* misc backend fixes
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* load docker images directly from s9pk to ensure fatties can be loaded across platform
* don't migrate tmpdir
* init after package data transfer
* set default rsync options
chore: Make the commit do by checksum.
chore: Remove the logging at the start
chore: use the defaults of the original.
chore: Convert the error into just the source.
chore: Remove some of the unwraps
* feat: Change migration to use empty name
* chore: Add in the default routes just in case
* Fix/remove merge with seed during init (#1917)
* fix kiosk
* chore: Remove the duplicate loggging information that is making usele… (#1912)
chore: Remove the duplicate loggging information that is making useless noise in the system.
* fix: Remove the init merge with seed
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: BluJ <mogulslayer@gmail.com>
Co-authored-by: J M <2364004+Blu-J@users.noreply.github.com>
* display git hash in marketplace show and app show. Add additional info to app show
* bump marketplace lib version
* disbaled links if site not provided, fix bug with license-instructions
* fix import
* stupid
* feat: Add in the packing side git hash
* chore: Remove the test that is breaking the build.
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: BluJ <mogulslayer@gmail.com>
* adding skeleton for new http_proxy.
* more stuff yay
* more stuff yay
* more stuff
* more stuff
* "working" poc
* more stuff
* more stuff
* fix mored stuff
* working proxy
* moved to handler style for requests
* clean up
* cleaning stuff up
* more stuff
* refactoring code
* more changes
* refactoring handle
* refactored code
* more stuff
* Co-authored-by: J M <Blu-J@users.noreply.github.com>
* Co-authored-by: J M <Blu-J@users.noreply.github.com>
* more stuff
* more stuff
* working main ui handle
* Implement old code to handler in static server
* Feat/long running (#1676)
* feat: Start the long running container
* feat: Long running docker, running, stoping, and uninstalling
* feat: Just make the folders that we would like to mount.
* fix: Uninstall not working
* chore: remove some logging
* feat: Smarter cleanup
* feat: Wait for start
* wip: Need to kill
* chore: Remove the bad tracing
* feat: Stopping the long running processes without killing the long
running
* Mino Feat: Change the Manifest To have a new type (#1736)
* Add build-essential to README.md (#1716)
Update README.md
* write image to sparse-aware archive format (#1709)
* fix: Add modification to the max_user_watches (#1695)
* fix: Add modification to the max_user_watches
* chore: Move to initialization
* [Feat] follow logs (#1714)
* tail logs
* add cli
* add FE
* abstract http to shared
* batch new logs
* file download for logs
* fix modal error when no config
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: BluJ <mogulslayer@gmail.com>
* Update README.md (#1728)
* fix build for patch-db client for consistency (#1722)
* fix cli install (#1720)
* highlight instructions if not viewed (#1731)
* wip:
* [ ] Fix the build (dependencies:634 map for option)
* fix: Cargo build
* fix: Long running wasn't starting
* fix: uninstall works
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* chore: Fix a dbg!
* chore: Make the commands of the docker-inject do inject instead of exec
* chore: Fix compile mistake
* chore: Change to use simpler
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* remove recovered services and drop reordering feature (#1829)
* chore: Convert the migration to use receipt. (#1842)
* feat: remove ionic storage (#1839)
* feat: remove ionic storage
* grayscal when disconncted, rename local storage service for clarity
* remove storage from package lock
* update patchDB
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* update patch DB
* workring http server
* Feat/community marketplace (#1790)
* add community marketplace
* Update embassy-mock-api.service.ts
* expect ui/marketplace to be undefined
* possible undefined from getpackage
* fix marketplace pages
* rework marketplace infrastructure
* fix bugs
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
* remove unwrap
* cleanup code
* d
* more stuff
* fix: make `shared` module independent of `config.js` (#1870)
* cert stuff WIP
* MORE CERT STUFF
* more stuff
* more stuff
* more stuff
* abstract service fn
* almost ssl
* fix ssl export
* Feat/long running (#1676)
* feat: Start the long running container
* feat: Long running docker, running, stoping, and uninstalling
* feat: Just make the folders that we would like to mount.
* fix: Uninstall not working
* chore: remove some logging
* feat: Smarter cleanup
* feat: Wait for start
* wip: Need to kill
* chore: Remove the bad tracing
* feat: Stopping the long running processes without killing the long
running
* Mino Feat: Change the Manifest To have a new type (#1736)
* Add build-essential to README.md (#1716)
Update README.md
* write image to sparse-aware archive format (#1709)
* fix: Add modification to the max_user_watches (#1695)
* fix: Add modification to the max_user_watches
* chore: Move to initialization
* [Feat] follow logs (#1714)
* tail logs
* add cli
* add FE
* abstract http to shared
* batch new logs
* file download for logs
* fix modal error when no config
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: BluJ <mogulslayer@gmail.com>
* Update README.md (#1728)
* fix build for patch-db client for consistency (#1722)
* fix cli install (#1720)
* highlight instructions if not viewed (#1731)
* wip:
* [ ] Fix the build (dependencies:634 map for option)
* fix: Cargo build
* fix: Long running wasn't starting
* fix: uninstall works
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* chore: Fix a dbg!
* chore: Make the commands of the docker-inject do inject instead of exec
* chore: Fix compile mistake
* chore: Change to use simpler
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* remove recovered services and drop reordering feature (#1829)
* chore: Convert the migration to use receipt. (#1842)
* feat: remove ionic storage (#1839)
* feat: remove ionic storage
* grayscal when disconncted, rename local storage service for clarity
* remove storage from package lock
* update patchDB
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* update patch DB
* Feat/community marketplace (#1790)
* add community marketplace
* Update embassy-mock-api.service.ts
* expect ui/marketplace to be undefined
* possible undefined from getpackage
* fix marketplace pages
* rework marketplace infrastructure
* fix bugs
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
* fix: make `shared` module independent of `config.js` (#1870)
* fix: small fix for marketplace header styles (#1873)
* feat: setup publishing of share and marketplace packages (#1874)
* inlcude marketplace in linter
* fix npm publish scrips and bump versions of libs
* feat: add assets to published packages and fix peerDeps versions (#1875)
* bump peer dep
* fix: add assets to published paths (#1876)
* allow ca download over lan (#1877)
* only desaturate when logged in and not fully
* Feature/multi platform (#1866)
* wip
* wip
* wip
* wip
* wip
* wip
* remove debian dir
* lazy env and git hash
* remove env and git hash on clean
* don't leave project dir
* use docker for native builds
* start9 rust
* correctly mount registry
* remove systemd config
* switch to /usr/bin
* disable sound for now
* wip
* change disk list
* multi-arch images
* multi-arch system images
* default aarch64
* edition 2021
* dynamic wifi interface name
* use wifi interface from config
* bugfixes
* add beep based sound
* wip
* wip
* wip
* separate out raspberry pi specific files
* fixes
* use new initramfs always
* switch journald conf to sed script
* fixes
* fix permissions
* talking about kernel modules not scripts
* fix
* fix
* switch to MBR
* install to /usr/lib
* fixes
* fixes
* fixes
* fixes
* add media config to cfg path
* fixes
* fixes
* fixes
* raspi image fixes
* fix test
* fix workflow
* sync boot partition
* gahhhhh
* more stuff
* remove restore warning and better messaging for backup/restore (#1881)
* Update READMEs (#1885)
* docs
* fix host key generation
* debugging eos with tokio console
* fix recursive default
* build improvements (#1886)
* build improvements
* no workdir
* kiosk fully working
* setup profile prefs
* Feat/js long running (#1879)
* wip: combining the streams
* chore: Testing locally
* chore: Fix some lint
* Feat/long running (#1676)
* feat: Start the long running container
* feat: Long running docker, running, stoping, and uninstalling
* feat: Just make the folders that we would like to mount.
* fix: Uninstall not working
* chore: remove some logging
* feat: Smarter cleanup
* feat: Wait for start
* wip: Need to kill
* chore: Remove the bad tracing
* feat: Stopping the long running processes without killing the long
running
* Mino Feat: Change the Manifest To have a new type (#1736)
* Add build-essential to README.md (#1716)
Update README.md
* write image to sparse-aware archive format (#1709)
* fix: Add modification to the max_user_watches (#1695)
* fix: Add modification to the max_user_watches
* chore: Move to initialization
* [Feat] follow logs (#1714)
* tail logs
* add cli
* add FE
* abstract http to shared
* batch new logs
* file download for logs
* fix modal error when no config
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: BluJ <mogulslayer@gmail.com>
* Update README.md (#1728)
* fix build for patch-db client for consistency (#1722)
* fix cli install (#1720)
* highlight instructions if not viewed (#1731)
* wip:
* [ ] Fix the build (dependencies:634 map for option)
* fix: Cargo build
* fix: Long running wasn't starting
* fix: uninstall works
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* chore: Fix a dbg!
* chore: Make the commands of the docker-inject do inject instead of exec
* chore: Fix compile mistake
* chore: Change to use simpler
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* wip: making the mananger create
* wip: Working on trying to make the long running docker container command
* Feat/long running (#1676)
* feat: Start the long running container
* feat: Long running docker, running, stoping, and uninstalling
* feat: Just make the folders that we would like to mount.
* fix: Uninstall not working
* chore: remove some logging
* feat: Smarter cleanup
* feat: Wait for start
* wip: Need to kill
* chore: Remove the bad tracing
* feat: Stopping the long running processes without killing the long
running
* Mino Feat: Change the Manifest To have a new type (#1736)
* Add build-essential to README.md (#1716)
Update README.md
* write image to sparse-aware archive format (#1709)
* fix: Add modification to the max_user_watches (#1695)
* fix: Add modification to the max_user_watches
* chore: Move to initialization
* [Feat] follow logs (#1714)
* tail logs
* add cli
* add FE
* abstract http to shared
* batch new logs
* file download for logs
* fix modal error when no config
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: BluJ <mogulslayer@gmail.com>
* Update README.md (#1728)
* fix build for patch-db client for consistency (#1722)
* fix cli install (#1720)
* highlight instructions if not viewed (#1731)
* wip:
* [ ] Fix the build (dependencies:634 map for option)
* fix: Cargo build
* fix: Long running wasn't starting
* fix: uninstall works
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* chore: Fix a dbg!
* chore: Make the commands of the docker-inject do inject instead of exec
* chore: Fix compile mistake
* chore: Change to use simpler
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* feat: Use the long running feature in the manager
* remove recovered services and drop reordering feature (#1829)
* wip: Need to get the initial docker command running?
* chore: Add in the new procedure for the docker.
* feat: Get the system to finally run long
* wip: Added the command inserter to the docker persistance
* wip: Added the command inserter to the docker persistance
* Feat/long running (#1676)
* feat: Start the long running container
* feat: Long running docker, running, stoping, and uninstalling
* feat: Just make the folders that we would like to mount.
* fix: Uninstall not working
* chore: remove some logging
* feat: Smarter cleanup
* feat: Wait for start
* wip: Need to kill
* chore: Remove the bad tracing
* feat: Stopping the long running processes without killing the long
running
* Mino Feat: Change the Manifest To have a new type (#1736)
* Add build-essential to README.md (#1716)
Update README.md
* write image to sparse-aware archive format (#1709)
* fix: Add modification to the max_user_watches (#1695)
* fix: Add modification to the max_user_watches
* chore: Move to initialization
* [Feat] follow logs (#1714)
* tail logs
* add cli
* add FE
* abstract http to shared
* batch new logs
* file download for logs
* fix modal error when no config
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: BluJ <mogulslayer@gmail.com>
* Update README.md (#1728)
* fix build for patch-db client for consistency (#1722)
* fix cli install (#1720)
* highlight instructions if not viewed (#1731)
* wip:
* [ ] Fix the build (dependencies:634 map for option)
* fix: Cargo build
* fix: Long running wasn't starting
* fix: uninstall works
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* chore: Fix a dbg!
* chore: Make the commands of the docker-inject do inject instead of exec
* chore: Fix compile mistake
* chore: Change to use simpler
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* remove recovered services and drop reordering feature (#1829)
* chore: Convert the migration to use receipt. (#1842)
* feat: remove ionic storage (#1839)
* feat: remove ionic storage
* grayscal when disconncted, rename local storage service for clarity
* remove storage from package lock
* update patchDB
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* update patchDB
* feat: Move the run_command into the js
* Feat/long running (#1676)
* feat: Start the long running container
* feat: Long running docker, running, stoping, and uninstalling
* feat: Just make the folders that we would like to mount.
* fix: Uninstall not working
* chore: remove some logging
* feat: Smarter cleanup
* feat: Wait for start
* wip: Need to kill
* chore: Remove the bad tracing
* feat: Stopping the long running processes without killing the long
running
* Mino Feat: Change the Manifest To have a new type (#1736)
* Add build-essential to README.md (#1716)
Update README.md
* write image to sparse-aware archive format (#1709)
* fix: Add modification to the max_user_watches (#1695)
* fix: Add modification to the max_user_watches
* chore: Move to initialization
* [Feat] follow logs (#1714)
* tail logs
* add cli
* add FE
* abstract http to shared
* batch new logs
* file download for logs
* fix modal error when no config
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: BluJ <mogulslayer@gmail.com>
* Update README.md (#1728)
* fix build for patch-db client for consistency (#1722)
* fix cli install (#1720)
* highlight instructions if not viewed (#1731)
* wip:
* [ ] Fix the build (dependencies:634 map for option)
* fix: Cargo build
* fix: Long running wasn't starting
* fix: uninstall works
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* chore: Fix a dbg!
* chore: Make the commands of the docker-inject do inject instead of exec
* chore: Fix compile mistake
* chore: Change to use simpler
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* remove recovered services and drop reordering feature (#1829)
* chore: Convert the migration to use receipt. (#1842)
* feat: remove ionic storage (#1839)
* feat: remove ionic storage
* grayscal when disconncted, rename local storage service for clarity
* remove storage from package lock
* update patchDB
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* update patch DB
* chore: Change the error catching for the long running to try all
* Feat/community marketplace (#1790)
* add community marketplace
* Update embassy-mock-api.service.ts
* expect ui/marketplace to be undefined
* possible undefined from getpackage
* fix marketplace pages
* rework marketplace infrastructure
* fix bugs
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
* WIP: Fix the build, needed to move around creation of exec
* wip: Working on solving why there is a missing end.
* fix: make `shared` module independent of `config.js` (#1870)
* feat: Add in the kill and timeout
* feat: Get the run to actually work.
* chore: Add when/ why/ where comments
* feat: Convert inject main to use exec main.
* Fix: Ability to stop services
* wip: long running js main
* feat: Kill for the main
* Fix
* fix: Fix the build for x86
* wip: Working on changes
* wip: Working on trying to kill js
* fix: Testing for slow
* feat: Test that the new manifest works
* chore: Try and fix build?
* chore: Fix? the build
* chore: Fix the long input dies and never restarts
* build improvements
* no workdir
* fix: Architecture for long running
* chore: Fix and remove the docker inject
* chore: Undo the changes to the kiosk mode
* fix: Remove the it from the prod build
* fix: Start issue
* fix: The compat build
* chore: Add in the conditional compilation again for the missing impl
* chore: Change to aux
* chore: Remove the aux for now
* chore: Add some documentation to docker container
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
Co-authored-by: Alex Inkin <alexander@inkin.ru>
* use old resolv.conf until systemd is on
* update patchdb
* update patch db submodule
* no x11 wrapper config
* working poc
* fixing misc stuff
* switch patchdb to next
* Feat/update tab (#1865)
* implement updates tab for viewing all updates from all marketplaces in one place
* remove auto-check-updates
* feat: implement updates page (#1888)
* feat: implement updates page
* chore: comments
* better styling in update tab
* rework marketplace service (#1891)
* rework marketplace service
* remove unneeded ?
* fix: refactor marketplace to cache requests
Co-authored-by: waterplea <alexander@inkin.ru>
Co-authored-by: Alex Inkin <alexander@inkin.ru>
* misc fixes (#1894)
* changing hostname stuff
* changes
* move marketplace settings into marketplace tab (#1895)
* move marketplace settings into marketplace tab
* Update frontend/projects/ui/src/app/modals/marketplace-settings/marketplace-settings.page.ts
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
* bump marketplace version
* removing oldd code
* working service proxy
* fqdn struct wwip
* new types for ssl proxy
* restructure restore.rs and embassyd.rs
* adding dbg
* debugging proxy handlers
* add lots of debugging for the svc handler removal bug
* debugging
* remove extra code
* fixing proxy and removing old debug code
* finalizing proxy code to serve the setup ui and diag ui
* final new eos http proxy
* remove uneeded trace error
* remove extra file
* not needed flags
* clean up
* Fix/debug (#1909)
chore: Use debug by default"
* chore: Fix on the rsync not having stdout. (#1911)
* install wizard project (#1893)
* install wizard project
* reboot endpoint
* Update frontend/projects/install-wizard/src/app/pages/home/home.page.ts
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
* Update frontend/projects/install-wizard/src/app/pages/home/home.page.ts
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
* Update frontend/projects/install-wizard/src/app/pages/home/home.page.ts
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
* update build
* fix build
* backend portion
* increase image size
* loaded
* dont auto resize
* fix install wizard
* use localhost if still in setup mode
* fix compat
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* fix kiosk
* integrate install wizard
* fix build typo
* no nginx
* fix build
* remove nginx stuff from build
* fixes
Co-authored-by: Stephen Chavez <stephen@start9labs.com>
Co-authored-by: J M <2364004+Blu-J@users.noreply.github.com>
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
Co-authored-by: Alex Inkin <alexander@inkin.ru>
* feat: Most of the ui conversions and removing the package-recovered
* chore: Include the down process.
* feat: Add in the potential community packages.
* chore: Add in the services
* Make it so we skip rebuil.
* update version to 033 in FE
* chore: Revert to next version for patch-db
* fix: Build and check
Co-authored-by: Lucy Cifferello <12953208+elvece@users.noreply.github.com>
* add migrate component
* finish out migrate page and adjust recover options
* fix typo
* rename migrate -> transfer, adjust copy and typos, update transfer component logic
* add alert for old drive data when transferring
* comments for clarity
* auto adjust swiper slide height
* cleanup uneeded imports from transfer module
* pr feedback suggestions
* remove 02x from setup wiz
* clean up copy/styling for recover flow
* add support for migrating from old drive
* add RecoverySource lifted type
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* wip: combining the streams
* chore: Testing locally
* chore: Fix some lint
* Feat/long running (#1676)
* feat: Start the long running container
* feat: Long running docker, running, stoping, and uninstalling
* feat: Just make the folders that we would like to mount.
* fix: Uninstall not working
* chore: remove some logging
* feat: Smarter cleanup
* feat: Wait for start
* wip: Need to kill
* chore: Remove the bad tracing
* feat: Stopping the long running processes without killing the long
running
* Mino Feat: Change the Manifest To have a new type (#1736)
* Add build-essential to README.md (#1716)
Update README.md
* write image to sparse-aware archive format (#1709)
* fix: Add modification to the max_user_watches (#1695)
* fix: Add modification to the max_user_watches
* chore: Move to initialization
* [Feat] follow logs (#1714)
* tail logs
* add cli
* add FE
* abstract http to shared
* batch new logs
* file download for logs
* fix modal error when no config
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: BluJ <mogulslayer@gmail.com>
* Update README.md (#1728)
* fix build for patch-db client for consistency (#1722)
* fix cli install (#1720)
* highlight instructions if not viewed (#1731)
* wip:
* [ ] Fix the build (dependencies:634 map for option)
* fix: Cargo build
* fix: Long running wasn't starting
* fix: uninstall works
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* chore: Fix a dbg!
* chore: Make the commands of the docker-inject do inject instead of exec
* chore: Fix compile mistake
* chore: Change to use simpler
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* wip: making the mananger create
* wip: Working on trying to make the long running docker container command
* Feat/long running (#1676)
* feat: Start the long running container
* feat: Long running docker, running, stoping, and uninstalling
* feat: Just make the folders that we would like to mount.
* fix: Uninstall not working
* chore: remove some logging
* feat: Smarter cleanup
* feat: Wait for start
* wip: Need to kill
* chore: Remove the bad tracing
* feat: Stopping the long running processes without killing the long
running
* Mino Feat: Change the Manifest To have a new type (#1736)
* Add build-essential to README.md (#1716)
Update README.md
* write image to sparse-aware archive format (#1709)
* fix: Add modification to the max_user_watches (#1695)
* fix: Add modification to the max_user_watches
* chore: Move to initialization
* [Feat] follow logs (#1714)
* tail logs
* add cli
* add FE
* abstract http to shared
* batch new logs
* file download for logs
* fix modal error when no config
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: BluJ <mogulslayer@gmail.com>
* Update README.md (#1728)
* fix build for patch-db client for consistency (#1722)
* fix cli install (#1720)
* highlight instructions if not viewed (#1731)
* wip:
* [ ] Fix the build (dependencies:634 map for option)
* fix: Cargo build
* fix: Long running wasn't starting
* fix: uninstall works
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* chore: Fix a dbg!
* chore: Make the commands of the docker-inject do inject instead of exec
* chore: Fix compile mistake
* chore: Change to use simpler
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* feat: Use the long running feature in the manager
* remove recovered services and drop reordering feature (#1829)
* wip: Need to get the initial docker command running?
* chore: Add in the new procedure for the docker.
* feat: Get the system to finally run long
* wip: Added the command inserter to the docker persistance
* wip: Added the command inserter to the docker persistance
* Feat/long running (#1676)
* feat: Start the long running container
* feat: Long running docker, running, stoping, and uninstalling
* feat: Just make the folders that we would like to mount.
* fix: Uninstall not working
* chore: remove some logging
* feat: Smarter cleanup
* feat: Wait for start
* wip: Need to kill
* chore: Remove the bad tracing
* feat: Stopping the long running processes without killing the long
running
* Mino Feat: Change the Manifest To have a new type (#1736)
* Add build-essential to README.md (#1716)
Update README.md
* write image to sparse-aware archive format (#1709)
* fix: Add modification to the max_user_watches (#1695)
* fix: Add modification to the max_user_watches
* chore: Move to initialization
* [Feat] follow logs (#1714)
* tail logs
* add cli
* add FE
* abstract http to shared
* batch new logs
* file download for logs
* fix modal error when no config
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: BluJ <mogulslayer@gmail.com>
* Update README.md (#1728)
* fix build for patch-db client for consistency (#1722)
* fix cli install (#1720)
* highlight instructions if not viewed (#1731)
* wip:
* [ ] Fix the build (dependencies:634 map for option)
* fix: Cargo build
* fix: Long running wasn't starting
* fix: uninstall works
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* chore: Fix a dbg!
* chore: Make the commands of the docker-inject do inject instead of exec
* chore: Fix compile mistake
* chore: Change to use simpler
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* remove recovered services and drop reordering feature (#1829)
* chore: Convert the migration to use receipt. (#1842)
* feat: remove ionic storage (#1839)
* feat: remove ionic storage
* grayscal when disconncted, rename local storage service for clarity
* remove storage from package lock
* update patchDB
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* update patchDB
* feat: Move the run_command into the js
* Feat/long running (#1676)
* feat: Start the long running container
* feat: Long running docker, running, stoping, and uninstalling
* feat: Just make the folders that we would like to mount.
* fix: Uninstall not working
* chore: remove some logging
* feat: Smarter cleanup
* feat: Wait for start
* wip: Need to kill
* chore: Remove the bad tracing
* feat: Stopping the long running processes without killing the long
running
* Mino Feat: Change the Manifest To have a new type (#1736)
* Add build-essential to README.md (#1716)
Update README.md
* write image to sparse-aware archive format (#1709)
* fix: Add modification to the max_user_watches (#1695)
* fix: Add modification to the max_user_watches
* chore: Move to initialization
* [Feat] follow logs (#1714)
* tail logs
* add cli
* add FE
* abstract http to shared
* batch new logs
* file download for logs
* fix modal error when no config
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: BluJ <mogulslayer@gmail.com>
* Update README.md (#1728)
* fix build for patch-db client for consistency (#1722)
* fix cli install (#1720)
* highlight instructions if not viewed (#1731)
* wip:
* [ ] Fix the build (dependencies:634 map for option)
* fix: Cargo build
* fix: Long running wasn't starting
* fix: uninstall works
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* chore: Fix a dbg!
* chore: Make the commands of the docker-inject do inject instead of exec
* chore: Fix compile mistake
* chore: Change to use simpler
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* remove recovered services and drop reordering feature (#1829)
* chore: Convert the migration to use receipt. (#1842)
* feat: remove ionic storage (#1839)
* feat: remove ionic storage
* grayscal when disconncted, rename local storage service for clarity
* remove storage from package lock
* update patchDB
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* update patch DB
* chore: Change the error catching for the long running to try all
* Feat/community marketplace (#1790)
* add community marketplace
* Update embassy-mock-api.service.ts
* expect ui/marketplace to be undefined
* possible undefined from getpackage
* fix marketplace pages
* rework marketplace infrastructure
* fix bugs
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
* WIP: Fix the build, needed to move around creation of exec
* wip: Working on solving why there is a missing end.
* fix: make `shared` module independent of `config.js` (#1870)
* feat: Add in the kill and timeout
* feat: Get the run to actually work.
* chore: Add when/ why/ where comments
* feat: Convert inject main to use exec main.
* Fix: Ability to stop services
* wip: long running js main
* feat: Kill for the main
* Fix
* fix: Fix the build for x86
* wip: Working on changes
* wip: Working on trying to kill js
* fix: Testing for slow
* feat: Test that the new manifest works
* chore: Try and fix build?
* chore: Fix? the build
* chore: Fix the long input dies and never restarts
* build improvements
* no workdir
* fix: Architecture for long running
* chore: Fix and remove the docker inject
* chore: Undo the changes to the kiosk mode
* fix: Remove the it from the prod build
* fix: Start issue
* fix: The compat build
* chore: Add in the conditional compilation again for the missing impl
* chore: Change to aux
* chore: Remove the aux for now
* chore: Add some documentation to docker container
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
Co-authored-by: Alex Inkin <alexander@inkin.ru>
* feat: remove ionic storage
* grayscal when disconncted, rename local storage service for clarity
* remove storage from package lock
* update patchDB
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* feat: Start the long running container
* feat: Long running docker, running, stoping, and uninstalling
* feat: Just make the folders that we would like to mount.
* fix: Uninstall not working
* chore: remove some logging
* feat: Smarter cleanup
* feat: Wait for start
* wip: Need to kill
* chore: Remove the bad tracing
* feat: Stopping the long running processes without killing the long
running
* Mino Feat: Change the Manifest To have a new type (#1736)
* Add build-essential to README.md (#1716)
Update README.md
* write image to sparse-aware archive format (#1709)
* fix: Add modification to the max_user_watches (#1695)
* fix: Add modification to the max_user_watches
* chore: Move to initialization
* [Feat] follow logs (#1714)
* tail logs
* add cli
* add FE
* abstract http to shared
* batch new logs
* file download for logs
* fix modal error when no config
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: BluJ <mogulslayer@gmail.com>
* Update README.md (#1728)
* fix build for patch-db client for consistency (#1722)
* fix cli install (#1720)
* highlight instructions if not viewed (#1731)
* wip:
* [ ] Fix the build (dependencies:634 map for option)
* fix: Cargo build
* fix: Long running wasn't starting
* fix: uninstall works
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* chore: Fix a dbg!
* chore: Make the commands of the docker-inject do inject instead of exec
* chore: Fix compile mistake
* chore: Change to use simpler
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* adjust types
for patchdb ui data and create seed file
* feat: For init and the migration use defaults
* fix update path
* update build for ui seed file
* fix accidential revert
* chore: Convert to do during the init
* chore: Update the commit message
Co-authored-by: BluJ <mogulslayer@gmail.com>
* reorder enabling of systemd-resolved
* set dns at end
* don't disable interfaces
* let networkmanager manage ifupdown
* restructure initialization
* use pigz when available
* cleanup
* fetch key before adding registry
* fix build
* update patch-db
* fix build
* fix build
* wait for network reinit
* add dynamic wait for up to 60s for network to reinit
* change encryption to use pubkey and only encrypt specific fields
* adjust script names for convenience
* remove unused fn
* fix build script name
* augment mocks
* remove log
* fix prod build
* feat: backend keys
* fix: Using the correct name with the public key
* chore: Fix the type for the encrypted
* chore: Add some tracing
* remove aes-js from package lock file
Co-authored-by: BluJ <mogulslayer@gmail.com>
* add descriptions to marketplace list page
* clean up unused styling
* rip descriptions from registry marketplace, use binary choice custom default and alternative messages
* cleanup
* fix selected type and remove uneeded conditional
* conditional color
* cleanup
* better comparision of marketplace url duplicates
* add logic to handle marketplace description display based on url
* decrease font size
* abstract helper fn to get url hostname; add error toast when adding duplicate marketplace
* move helper function to more appropriate file location
* rework marketplace list and don't worry about patch db firing before bootstrapped
* remove aes-js
* reinstall aes just to please things for now
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* 🏦 start as embassy hostname from the begining
By this, we are limiting the number of hostname changes (from 3 to 2) during the first initial Embassy startup.
* Hostname change no longer needed
* remove falsey check when getting marketplaces, as no alts could exist
* filter boolean but start with object
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* bump version with stubbed release notes
* increase BE timeout
* 032 release notes
* hide developer menu for now
* remove unused sub/import
* remoce reconnect from disks res in setup wiz
* remove quirks
* flatten drives response
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* remove product key flow from setup
* feat: backend turned off encryption + new Id + no package id
* implement new encryption scheme in FE
* decode response string
* crypto not working
* update setup wizard closes#1762
* feat: Get the encryption key
* fix: Get to recovery
* remove old code
* fix build
* fix: Install works for now
* fix bug in config for adding new list items
* dismiss action modal on success
* clear button in config
* wip: Currently broken in avahi mdns
* include headers with req/res and refactor patchDB init and usage
* fix: Can now run in the main
* flatline on failed init
* update patch DB
* add last-wifi-region to data model even though not used by FE
* chore: Fix the start.
* wip: Fix wrong order for getting hostname before sql has been
created
* fix edge case where union keys displayed as new when not new
* fix: Can start
* last backup color, markdown links always new tab, fix bug with login
* refactor to remove WithRevision
* resolve circular dep issue
* update submodule
* fix patch-db
* update patchDB
* update patch again
* escape error
* decodeuricomponent
* increase proxy buffer size
* increase proxy buffer size
* fix nginx
Co-authored-by: BluJ <mogulslayer@gmail.com>
Co-authored-by: BluJ <dragondef@gmail.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* replace offline toast with global indicator
* use hostname from patchDB as default server name
* add alert to marketplace delete and reword logout alert
* refactor how we handle rpc responses and patchdb connection monitoring
* websockets only
* remove unused global error handlers
* chore: clear storage inside auth service
* feat: convert all global toasts to declarative approach (#1754)
* no more reference to serverID
Co-authored-by: Aiden McClelland <me@drbonez.dev>
Co-authored-by: waterplea <alexander@inkin.ru>
* add build backend for x86_64
* remove unnecessary build steps
* install backend dependency
* build and run backend unittest
* fix cache key
* buildx is required, qemu is not.
* Add missing steps from Makefile
* fix build_command var is unused
* select more common test env
* update pipeline names and docs
* use variable for node version
* use correct artifact name
* update pipeline references
* skip unittest that needs ca-cert installed
* correct pipeline name
* use nextest pre-built binary; add term color
* fix cache permissions warning
* update documentation
* chore: enable strict mode
* refactor: remove sync data access from PatchDbService
* launchable even when no LAN url
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* handle case where selected union enum is invalid after migration
* revert necessary ternary and fix types
Co-authored-by: Lucy Cifferello <12953208+elvece@users.noreply.github.com>
When doing `sudo apt update` you get this:
`N: Skipping acquire of configured file 'main/binary-armhf/Packages' as repository 'https://deb.torproject.org/torproject.org bullseye InRelease' doesn't support architecture 'armhf'`
* show available marketplace updates in menu
* complete feature
* delete unused class
* update tsmatches to remove console log
* fix merge conflict
* change config header font size
* fix new options emission for config elements
* delete unecessary import
* add custom modal for service marketplace conflict action
* cleanup
* remove unecessary imports
* pr cleanup of unused imports and classes
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
As of apt 1.5 (released 2017), the package apt-transport-https is no longer required because https:// is supported out of the box.
Reference: https://packages.debian.org/bullseye/apt-transport-https "This is a dummy transitional package - https support has been moved into the apt package in 1.5. It can be safely removed." Apt is currently at 2.2.4.
Use a sed one-liner to convert all repos in /etc/apt/sources.list and /etc/apt/sources.list.d/*.list that are http:// to https:// (https:// is available for all http:// URLs currently referenced in EmbassyOS).
* fix conditional display state
* fix footer
* fix empty case
* remove select all from backup restore
* fix styling and add warning message to service restore
* update copy
* display bottom item in backup list and refactor for cleanliness
* fix spelling mistake
* display initial toggle to deselect all, as all are selected by default
* add select/deselect all to backup restore and handle backup case when no services intalled
Co-authored-by: Lucy Cifferello <12953208+elvece@users.noreply.github.com>
* stop expansion when description icon clicked
* add test for ensuring string sanitization
* rename log out to terminate in sessions component and remove sanitization bypass as unneeded
* remove unecessary instances of safe string
* feat: fetch effect
* fix: Make not available in sandbox
* chore: Update to use text(), and to use headers
* chore: use the postman echo for testing
* chore: add json
* chore: Testing the json
* chore: Make the json lazy
* selective backups and better drive selection interface
* fix disabled checkbox and backup drives menu styling
* feat: package-ids
* only show services that are backing up on backup page
* refactor for performace and cleanliness
Co-authored-by: Matt Hill <matthill@Matt-M1.start9.dev>
Co-authored-by: Lucy Cifferello <12953208+elvece@users.noreply.github.com>
Co-authored-by: J M <mogulslayer@gmail.com>
* add content type to icon dataURL
* better handling of blob reading; remove verifying loader and reorganize html
* clean up PR feedback and create validation fn instead of boolean
* grpup upload state into one type
* better organize validation
* add server id to eos check for updates req
* fix patchdb to latest
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* add masking to generic input component
* clear inputs after submission
* adjust convenience FE make steps
* cleaner masking
* remove mask pipe from module
* switch to redacted font
* fix connection failure display monitoring and other style chnages
* display updates more clearly in marketplace
* remove scrolling from release notes and long description
* remove unnecessary bangs
Co-authored-by: Matt Hill <matthill@Matt-M1.local>
Co-authored-by: Matt Hill <matthill@Matt-M1.start9.dev>
* adjust service marketplace button for installation source relevance
* cleanup
* show marketplace name instead of url; cleanup from PR feedback
* fix spacing
* further cleanup
* fix bugs with config and clean up dev options
* dont down down arrow in logs prematurely
* change config error border to match error text red color
* change restart button color
* fix error when sideloading and update copy
* adds back in param cloning as this bug creeped up again
* make restarting text match button color
* fix version comparision for updates category
Co-authored-by: Matt Hill <matthill@Matt-M1.local>
Co-authored-by: Lucy Cifferello <12953208+elvece@users.noreply.github.com>
* refactor(patch-db): use PatchDB class declaratively
* chore: remove initial source before init
* chore: show spinner
* fix: show Connecting to Embassy spinner until first connection
* fix: switching marketplaces
* allow for subscription to end with take when installing a package
* update patchdb
Co-authored-by: Lucy Cifferello <12953208+elvece@users.noreply.github.com>
* add restart button to service show page and restart rpc api
* Feature/restart rpc (#1555)
* add restart rpc and status
* wire up rpc
* add restarting bool
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* check if service is restarting
* filter package when restarting to avoid glitch
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* no more app wiz or dry calls
* change spinner type
* better display for update available
* reintroduce dep breakages for update/downgrade and style alerts everywhere
* only show install alert on first install
Co-authored-by: Matt Hill <matthill@Matt-M1.local>
Co-authored-by: Matt Hill <matthill@Matt-M1.start9.dev>
display success alert if on latest EOS after check for update
fix bug with loader dismiss after alert present
fix restart button on update complete alert and fix mocks to account for this state
fix make clean and adjust default registry names
* base styling and action placeholders for package sideload
* apparently didnt add new folder
* wip
* parse manifest and icon from s9pk to upload
* wip handle s9pk upload
* adjust types, finalize actions, cleanup
* clean up and fix data clearing and response
* include rest rpc in proxy conf sample
* address feedback to use shorthand falsy coercion
* update copy and invalid package file ux
* do not wait package upload, instead show install progress
* fix proxy for rest rpc
rename sideload package page titles
* make text selectable on mobile
* make logs copyable and adjust copy format
* fix linting
* fix linting further
* linting
* add formatting to copied logs
* fix copy abstraction and add formatting for server log copy
feat: enable `noImplicitAny`
chore: remove sync data access
fix loading package data for affected dependencies
chore: properly get alt marketplace data
update patchdb client to allow for emit on undefined values
* feat: known errors for js
* chore: add expected exports
* Update js_scripts.rs
* chore: Use agreed upon shape
* chore: add updates to d.ts
* feat: error case
* chore: Add expectedExports as a NameSpace`
* chore: add more documentation to the types.d.ts
* fix: potential fix for the docker leaking the errors and such
* chore: Make sure that the buffer during reading the output will not exceed 10mb ish
* Chore: Add testing
* fix: Docker buffer reading to lines now works
* chore: fixing the broken responses
* fix: potential fix for the docker leaking the errors and such
* chore: Make sure that the buffer during reading the output will not exceed 10mb ish
* Chore: Add testing
* fix: Change the git to always give a maybe, then create the error in the failure cases
* fix: No wifi last
* chore: Revert to older api
* fix: build for sdk
* fix: build for sdk
* chore: update patch db
* chore: use the master patch db
wip: Getting async js
feat: Have execute get action config
feat: Read + Write
chore: Add typing for globals
chore: Change the default path, include error on missing function, and add json File Read Write
chore: Change the default path, include error on missing function, and add json File Read Write
wip: Fix the unit test
wip: Fix the unit test
feat: module loading
* refactor: isolate network toast and login redirect to separate services
* chore: remove accidentally committed sketch of a service
* chore: tidying things up
* feat: add `GlobalModule` encapsulating all global subscription services
* remove angular build cache when building deps
* chore: fix more issues found while testing
* chore: fix issues reported by testing
* chore: fix template error
* chore: fix server-info
* chore: fix server-info
* fix: switch to Observable to fix race conditions
* fix embassy name display on load
* update patchdb
* clean up patch data watch
Co-authored-by: Lucy Cifferello <12953208+elvece@users.noreply.github.com>
* Feat: js action
wip: Getting async js
feat: Have execute get action config
feat: Read + Write
chore: Add typing for globals
chore: Change the default path, include error on missing function, and add json File Read Write
chore: Change the default path, include error on missing function, and add json File Read Write
wip: Fix the unit test
wip: Fix the unit test
feat: module loading
* fix: Change the source + add input
* fix: Change the source + add input
wip: Fix missing js files during running
fix: Change the source + add input
wip: Fix missing js files during running
* fix: other paths
* feat: Build the arm js snapshot
* fix: test with more
* chore: Make the is_subset a result
* add server proxy configurations
* change address to host due to compliation warning
* adjust config sample to more accurately reflect production version
* Add nginx config for proxy redirect protocol prefix
* Update proxy_redirect config to use scheme variable
* Only include proxy redirect directive when ssl is true
* watch config.json for changes when just building frontend
* fix version for data consistency
* clone param ids so not recursively stringified; add global type for stringified instances
* ensure only most recent data source grabbed to fix issue with service auto update on marketplace switch
* use take instead of shallow cloning data
* Update ssh.rs for start9 user
* .ssh directory for uid 1000 user
* Update init.rs for start9 user
* “His name is Robert Paulson”
* typo
* just cleaning up ...
* Feat: Multi-lock capabilities add to config
* wip: RPC.rs fixes, new combinatoric
* wip: changes
* chore: More things that are bulk
* fix: Saving
* chore: Remove a dyn object
* chore: Add tests + remove unused
* Fix/feat bulk locking (#1427)
* fix: health check
* fix: start/stop service
* fix: install/uninstall services
* chore: Fix the notifications
* fix: Version
* fix: Version as serde
* chore: Update to latest patch db
* chore: Change the htLock to something that makes more sense
* chore: Fix the rest of the ht
* "chore: More ht_lock":
If for some reason make will be interrupted, wget will try to download .zip file and cause the name is taken it will download it to .zip1 which wont be recognized. This fixes it.
StartOS is an open-source Linux distribution for running personal servers. It manages discovery, installation, network configuration, backups, and health monitoring of self-hosted services.
├── image-recipe/ # Scripts for building StartOS images
├── patch-db/ # (submodule) Diff-based data store for frontend sync
├── sdk/ # TypeScript SDK for building StartOS packages
└── web/ # Web UIs (Angular)
```
## Components
- **`core/`** — Rust backend daemon. Produces a single binary `startbox` that is symlinked as `startd` (main daemon), `start-cli` (CLI), `start-container` (runs inside LXC containers), `registrybox` (package registry), and `tunnelbox` (VPN/tunnel). Handles all backend logic: RPC API, service lifecycle, networking (DNS, ACME, WiFi, Tor, WireGuard), backups, and database state management. See [core/ARCHITECTURE.md](core/ARCHITECTURE.md).
- **`web/`** — Angular 20 + TypeScript workspace using Taiga UI. Contains three applications (admin UI, setup wizard, VPN management) and two shared libraries (common components/services, marketplace). Communicates with the backend exclusively via JSON-RPC. See [web/ARCHITECTURE.md](web/ARCHITECTURE.md).
- **`container-runtime/`** — Node.js runtime that runs inside each service's LXC container. Loads the service's JavaScript from its S9PK package and manages subcontainers. Communicates with the host daemon via JSON-RPC over Unix socket. See [container-runtime/CLAUDE.md](container-runtime/CLAUDE.md).
- **`sdk/`** — TypeScript SDK for packaging services for StartOS (`@start9labs/start-sdk`). Split into `base/` (core types, ABI definitions, effects interface, consumed by web as `@start9labs/start-sdk-base`) and `package/` (full SDK for service developers, consumed by container-runtime as `@start9labs/start-sdk`).
- **`patch-db/`** — Git submodule providing diff-based state synchronization. Uses CBOR encoding. Backend mutations produce diffs that are pushed to the frontend via WebSocket, enabling reactive UI updates without polling. See [patch-db repo](https://github.com/Start9Labs/patch-db).
## Build Pipeline
Components have a strict dependency chain. Changes flow in one direction:
```
Rust (core/)
→ cargo test exports ts-rs types to core/bindings/
**Important**: Editing `sdk/base/lib/osBindings/*.ts` alone is NOT sufficient — you must rebuild the SDK bundle (step 3) before web/container-runtime can see the changes.
## Cross-Layer Verification
When making changes across multiple layers (Rust, SDK, web, container-runtime), verify in this order:
- Runs `./core/build/build-ts.sh` to export ts-rs types to `core/bindings/`
- Syncs `core/bindings/` → `sdk/base/lib/osBindings/` via rsync
- If you manually edit files in `sdk/base/lib/osBindings/`, you must still rebuild the SDK (step 3)
3.**SDK bundle**: `cd sdk && make baseDist dist` — compiles SDK source into packages
-`baseDist/` is consumed by `/web` (via `@start9labs/start-sdk-base`)
-`dist/` is consumed by `/container-runtime` (via `@start9labs/start-sdk`)
- Web and container-runtime reference the **built** SDK, not source files
4.**Web type check**: `cd web && npm run check` — type-checks all Angular projects
5.**Container runtime type check**: `cd container-runtime && npm run check` — type-checks the runtime
## Data Flow: Backend to Frontend
StartOS uses Patch-DB for reactive state synchronization:
1. The backend mutates state via `db.mutate()`, producing CBOR diffs
2. Diffs are pushed to the frontend over a persistent WebSocket connection
3. The frontend applies diffs to its local state copy and notifies observers
4. Components watch specific database paths via `PatchDB.watch$()`, receiving updates reactively
This means the UI is always eventually consistent with the backend — after any mutating API call, the frontend waits for the corresponding PatchDB diff before resolving, so the UI reflects the result immediately.
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Architecture
See [ARCHITECTURE.md](ARCHITECTURE.md) for the full system architecture, component map, build pipeline, and cross-layer verification order.
Each major component has its own `CLAUDE.md` with detailed guidance: `core/`, `web/`, `container-runtime/`, `sdk/`.
## Build & Development
See [CONTRIBUTING.md](CONTRIBUTING.md) for:
- Environment setup and requirements
- Build commands and make targets
- Testing and formatting commands
- Environment variables
**Quick reference:**
```bash
. ./devmode.sh # Enable dev mode
make update-startbox REMOTE=start9@<ip> # Fastest iteration (binary + UI)
make test-core # Run Rust tests
```
## Operating Rules
- Always verify cross-layer changes using the order described in [ARCHITECTURE.md](ARCHITECTURE.md#cross-layer-verification)
- Check component-level CLAUDE.md files for component-specific conventions
- Follow existing patterns before inventing new ones
## Supplementary Documentation
The `docs/` directory contains cross-cutting documentation for AI assistants:
-`TODO.md` - Pending tasks for AI agents (check this first, remove items when completed)
-`USER.md` - Current user identifier (gitignored, see below)
-`exver.md` - Extended versioning format (used across core, sdk, and web)
-`VERSION_BUMP.md` - Guide for bumping the StartOS version across the codebase
Component-specific docs live alongside their code (e.g., `core/rpc-toolkit.md`, `core/i18n-patterns.md`).
### Session Startup
On startup:
1.**Check for `docs/USER.md`** - If it doesn't exist, prompt the user for their name/identifier and create it. This file is gitignored since it varies per developer.
2.**Check `docs/TODO.md` for relevant tasks** - Show TODOs that either:
- Have no `@username` tag (relevant to everyone)
- Are tagged with the current user's identifier
Skip TODOs tagged with a different user.
3.**Ask "What would you like to do today?"** - Offer options for each relevant TODO item, plus "Something else" for other requests.
First off, thanks for taking the time to contribute! ❤️
This guide is for contributing to the StartOS. If you are interested in packaging a service for StartOS, visit the [service packaging guide](https://github.com/Start9Labs/ai-service-packaging). If you are interested in promoting, providing technical support, creating tutorials, or helping in other ways, please visit the [Start9 website](https://start9.com/contribute).
All types of contributions are encouraged and valued. See the [Table of Contents](#table-of-contents) for different ways to help and details about how this project handles them. Please make sure to read the relevant section before making your contribution. It will make it a lot easier for us maintainers and smooth out the experience for all involved. The community looks forward to your contributions. 🎉
## Collaboration
> And if you like the project, but just don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation, which we would also be very happy about:
> - Star the project
> - Tweet about it
> - Refer this project in your project's readme
> - Mention the project at local meetups and tell your friends/colleagues
- [Your First Code Contribution](#your-first-code-contribution)
- [Setting Up Your Development Environment](#setting-up-your-development-environment)
- [Building The Image](#building-the-image)
- [Improving The Documentation](#improving-the-documentation)
- [Styleguides](#styleguides)
- [Formatting](#formatting)
- [Atomic Commits](#atomic-commits)
- [Commit Messages](#commit-messages)
- [Pull Requests](#pull-requests)
- [Rebasing Changes](#rebasing-changes)
- [Join The Discussion](#join-the-discussion)
- [Join The Project Team](#join-the-project-team)
## Environment Setup
### Installing Dependencies (Debian/Ubuntu)
> Debian/Ubuntu is the only officially supported build environment.
> MacOS has limited build capabilities and Windows requires [WSL2](https://learn.microsoft.com/en-us/windows/wsl/install).
## I Have a Question
> If you want to ask a question, we assume that you have read the available [Documentation](https://docs.start9labs.com).
Before you ask a question, it is best to search for existing [Issues](https://github.com/Start9Labs/embassy-os/issues) that might help you. In case you have found a suitable issue and still need clarification, you can write your question in this issue. It is also advisable to search the internet for answers first.
If you then still feel the need to ask a question and need clarification, we recommend the following:
- Open an [Issue](https://github.com/Start9Labs/embassy-os/issues/new).
- Provide as much context as you can about what you're running into.
- Provide project and platform versions, depending on what seems relevant.
We will then take care of the issue as soon as possible.
<!--
You might want to create a separate issue tag for questions and include it in this description. People should then tag their issues accordingly.
Depending on how large the project is, you may want to outsource the questioning, e.g. to Stack Overflow or Gitter. You may add additional contact and information possibilities:
- IRC
- Slack
- Gitter
- Stack Overflow tag
- Blog
- FAQ
- Roadmap
- E-Mail List
- Forum
-->
## I Want To Contribute
> ### Legal Notice <!-- omit in toc -->
> When contributing to this project, you must agree that you have authored 100% of the content, that you have the necessary rights to the content and that the content you contribute may be provided under the project license.
### Reporting Bugs
<!-- omit in toc -->
#### Before Submitting a Bug Report
A good bug report shouldn't leave others needing to chase you up for more information. Therefore, we ask you to investigate carefully, collect information and describe the issue in detail in your report. Please complete the following steps in advance to help us fix any potential bug as fast as possible.
- Make sure that you are using the latest version.
- Determine if your bug is really a bug and not an error on your side e.g. using incompatible environment components/versions (Make sure that you have read the [documentation](https://start9.com/latest/user-manual). If you are looking for support, you might want to check [this section](#i-have-a-question)).
- To see if other users have experienced (and potentially already solved) the same issue you are having, check if there is not already a bug report existing for your bug or error in the [bug tracker](https://github.com/Start9Labs/embassy-os/issues?q=label%3Abug).
- Also make sure to search the internet (including Stack Overflow) to see if users outside of the GitHub community have discussed the issue.
- Collect information about the bug:
- Stack trace (Traceback)
- Client OS, Platform and Version (Windows/Linux/macOS/iOS/Android, Firefox/Tor Browser/Consulate)
- Version of the interpreter, compiler, SDK, runtime environment, package manager, depending on what seems relevant.
- Possibly your input and the output
- Can you reliably reproduce the issue? And can you also reproduce it with older versions?
<!-- omit in toc -->
#### How Do I Submit a Good Bug Report?
> You must never report security related issues, vulnerabilities or bugs to the issue tracker, or elsewhere in public. Instead sensitive bugs must be sent by email to <security@start9labs.com>.
<!-- You may add a PGP key to allow the messages to be sent encrypted as well. -->
We use GitHub issues to track bugs and errors. If you run into an issue with the project:
- Open an [Issue](https://github.com/Start9Labs/embassy-os/issues/new/choose) selecting the appropriate type.
- Explain the behavior you would expect and the actual behavior.
- Please provide as much context as possible and describe the *reproduction steps* that someone else can follow to recreate the issue on their own. This usually includes your code. For good bug reports you should isolate the problem and create a reduced test case.
- Provide the information you collected in the previous section.
Once it's filed:
- The project team will label the issue accordingly.
- A team member will try to reproduce the issue with your provided steps. If there are no reproduction steps or no obvious way to reproduce the issue, the team will ask you for those steps and mark the issue as `Question`. Bugs with the `Question` tag will not be addressed until they are answered.
- If the team is able to reproduce the issue, it will be marked a scoping level tag, as well as possibly other tags (such as `Security`), and the issue will be left to be [implemented by someone](#your-first-code-contribution).
<!-- You might want to create an issue template for bugs and errors that can be used as a guide and that defines the structure of the information to be included. If you do so, reference it here in the description. -->
### Suggesting Enhancements
This section guides you through submitting an enhancement suggestion for Embassy OS, **including completely new features and minor improvements to existing functionality**. Following these guidelines will help maintainers and the community to understand your suggestion and find related suggestions.
<!-- omit in toc -->
#### Before Submitting an Enhancement
- Make sure that you are using the latest version.
- Read the [documentation](https://start9.com/latest/user-manual) carefully and find out if the functionality is already covered, maybe by an individual configuration.
- Perform a [search](https://github.com/Start9Labs/embassy-os/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one.
- Find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Keep in mind that we want features that will be useful to the majority of our users and not just a small subset. If you're just targeting a minority of users, consider writing an add-on/plugin library.
<!-- omit in toc -->
#### How Do I Submit a Good Enhancement Suggestion?
Enhancement suggestions are tracked as [GitHub issues](https://github.com/Start9Labs/embassy-os/issues).
- Use a **clear and descriptive title** for the issue to identify the suggestion.
- Provide a **step-by-step description of the suggested enhancement** in as many details as possible.
- **Describe the current behavior** and **explain which behavior you expected to see instead** and why. At this point you can also tell which alternatives do not work for you.
- You may want to **include screenshots and animated GIFs** which help you demonstrate the steps or point out the part which the suggestion is related to. You can use [this tool](https://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux. <!-- this should only be included if the project has a GUI -->
- **Explain why this enhancement would be useful** to most Embassy OS users. You may also want to point out the other projects that solved it better and which could serve as inspiration.
<!-- You might want to create an issue template for enhancement suggestions that can be used as a guide and that defines the structure of the information to be included. If you do so, reference it here in the description. -->
### Project Structure
EmbassyOS is composed of the following components. Please visit the README for each component to understand the dependency requirements and installation instructions.
- [`ui`](ui/README.md) (Typescript Ionic Angular) is the code that is deployed to the browser to provide the user interface for EmbassyOS.
- [`backend`] (backend/README.md) (Rust) is a command line utility, daemon, and software development kit that sets up and manages services and their environments, provides the interface for the ui, manages system state, and provides utilities for packaging services for EmbassyOS.
-`patch-db` - A diff based data store that is used to synchronize data between the front and backend.
- Notably, `patch-db` has a [client](patch-db/client/README.md) with its own dependency and installation requirements.
-`rpc-toolkit` - A library for generating an rpc server with cli bindings from Rust functions.
-`system-images` - (Docker, Rust) A suite of utility Docker images that are preloaded with EmbassyOS to assist with functions relating to services (eg. configuration, backups, health checks).
- [`setup-wizard`] (ui/README.md)- Code for the user interface that is displayed during the setup and recovery process for EmbassyOS.
- [`diagnostic-ui`] (diagnostic-ui/README.md) - Code for the user interface that is displayed when something has gone wrong with starting up EmbassyOS, which provides helpful debugging tools.
### Your First Code Contribution
#### Setting up your development environment
First, clone the EmbassyOS repository and from the project root, pull in the submodules for dependent libraries.
nvm alias default 24# this prevents your machine from reverting back to another version
```
Depending on which component of the ecosystem you are interested in contributing to, follow the installation requirements listed in that component's README (linked [above](#project-structure))
### Cloning the Repository
#### Building The Image
This step is for setting up an environment in which to test your code changes if you do not yet have a EmbassyOS.
-`ext4fs` (available if running on the Linux kernel)
- [Docker](https://docs.docker.com/get-docker/)
- GNU Make
- Building
- see setup instructions [here](build/README.md)
- run `make` from the project root
### Development Mode
### Improving The Documentation
You can find the repository for Start9's documentation [here](https://github.com/Start9Labs/documentation). If there is something you would like to see added, let us know, or create an issue yourself. Welcome are contributions for lacking or incorrect information, broken links, requested additions, or general style improvements.
For faster iteration during development:
Contributions in the form of setup guides for integrations with external applications are highly encouraged. If you struggled through a process and would like to share your steps with others, check out the docs for each [service](https://github.com/Start9Labs/documentation/blob/master/source/user-manuals/available-services/index.rst) we support. The wrapper repos contain sections for adding integration guides, such as this [one](https://github.com/Start9Labs/bitcoind-wrapper/tree/master/docs). These not only help out others in the community, but inform how we can create a more seamless and intuitive experience.
```sh
. ./devmode.sh
```
This sets `ENVIRONMENT=dev` and `GIT_BRANCH_AS_HASH=1` to prevent rebuilds on every commit.
## Building
All builds can be performed on any operating system that can run Docker.
This project uses [GNU Make](https://www.gnu.org/software/make/) to build its components.
### Requirements
- [GNU Make](https://www.gnu.org/software/make/)
- [Docker](https://docs.docker.com/get-docker/) or [Podman](https://podman.io/)
| `format` | Run code formatting (Rust nightly required) |
| `test` | Run all automated tests |
| `test-core` | Run Rust tests |
| `test-sdk` | Run SDK tests |
| `test-container-runtime` | Run container runtime tests |
| `clean` | Delete all compiled artifacts |
## Testing
```bash
make test# All tests
make test-core # Rust tests (via ./core/run-tests.sh)
make test-sdk # SDK tests
make test-container-runtime # Container runtime tests
# Run specific Rust test
cd core && cargo test <test_name> --features=test
```
## Code Formatting
```bash
# Rust (requires nightly)
make format
# TypeScript/HTML/SCSS (web)
cd web && npm run format
```
## Code Style Guidelines
## Styleguides
### Formatting
Each component of EmbassyOS contains its own style guide. Code must be formatted with the formatter designated for each component. These are outlined within each component folder's README.
### Atomic Commits
Commits [should be atomic](https://en.wikipedia.org/wiki/Atomic_commit#Atomic_commit_convention) and diffs should be easy to read.
Do not mix any formatting fixes or code moves with actual code changes.
Run the formatters before committing. Configuration is handled by `rustfmt.toml` (Rust) and prettier configs (TypeScript).
### Documentation & Comments
**Rust:**
- Add doc comments (`///`) to public APIs, structs, and non-obvious functions
- Use `//` comments sparingly for complex logic that isn't self-evident
- Prefer self-documenting code (clear naming, small functions) over comments
**TypeScript:**
- Document exported functions and complex types with JSDoc
- Keep comments focused on "why" rather than "what"
**General:**
- Don't add comments that just restate the code
- Update or remove comments when code changes
- TODOs should include context: `// TODO(username): reason`
### Commit Messages
If a commit touches only 1 component, prefix the message with the affected component. i.e. `backend: update to tokio v0.3`.
### Pull Requests
The body of a pull request should contain sufficient description of what the changes do, as well as a justification.
You should include references to any relevant [issues](https://github.com/Start9Labs/embassy-os/issues).
Use [Conventional Commits](https://www.conventionalcommits.org/):
### Rebasing Changes
When a pull request conflicts with the target branch, you may be asked to rebase it on top of the current target branch. The git rebase command will take care of rebuilding your commits on top of the new base.
```
<type>(<scope>): <description>
This project aims to have a clean git history, where code changes are only made in non-merge commits. This simplifies auditability because merge commits can be assumed to not contain arbitrary code changes.
[optional body]
## Join The Discussion
Current or aspiring contributors? Join our community developer [Matrix channel](https://matrix.to/#/#community-dev:matrix.start9labs.com).
[optional footer]
```
Just interested in or using the project? Join our community [Telegram](https://t.me/start9_labs) or [Matrix](https://matrix.to/#/#community:matrix.start9labs.com).
**Types:**
## Join The Project Team
Interested in becoming a part of the Start9 Labs team? Send an email to <jobs@start9labs.com>
-`feat` - New feature
-`fix` - Bug fix
-`docs` - Documentation only
-`style` - Formatting, no code change
-`refactor` - Code change that neither fixes a bug nor adds a feature
-`test` - Adding or updating tests
-`chore` - Build process, dependencies, etc.
<!-- omit in toc -->
## Attribution
This guide is based on the **contributing-gen**. [Make your own](https://github.com/bttger/contributing-gen)!
**Examples:**
```
feat(web): add dark mode toggle
fix(core): resolve race condition in service startup
docs: update CONTRIBUTING.md with style guidelines
This license governs the use of the accompanying Software. If you use the Software, you accept this license. If you do not accept the license, do not use the Software.
1.**Definitions.**
1. “Licensor” means the copyright owner, Start9 Labs, Inc, or its successor(s) in interest, or a future assignee of the copyright.
2. “Source Code” means the preferred form of the Software for making modifications to it.
3. “Object Code” means any non-source form of the Software, including the machine-language output by a compiler or assembler.
4. “Distribute” means to convey or to publish and generally has the same meaning here as under U.S. Copyright law.
5. “Sell” means practicing any or all of the rights granted to you under the License to provide to third parties, for a fee or other consideration (including without limitation fees for hosting or consulting/support services related to the Software), a product or service whose value derives, entirely or substantially, from the functionality of the Software.
2.**Grant of Rights.** Subject to the terms of this license, the Licensor grants you, the licensee, a non-exclusive, worldwide, royalty-free copyright license to:
1. Access, audit, copy, modify, compile, or distribute the Source Code or modifications to the Source Code.
2. Run, test, or otherwise use the Object Code.
3.**Limitations.**
1. The grant of rights under the License will NOT include, and the License does NOT grant you the right to:
1. Sell the Software or any derivative works based thereon.
2. Distribute the Object Code.
2. If you Distribute the Source Code, or if permission is separately granted to Distribute the Object Code, you expressly undertake not to remove, or modify, in any manner, the copyright notices attached to the Source Code, and displayed in any output of the Object Code when run, and to reproduce these notices, in an identical manner, in any distributed copies of the Software together with a copy of this license. If you Distribute a modified copy of the Software, or a derivative work based thereon, the work must carry prominent notices stating that you modified it, and giving a relevant date.
3. The terms of this license will apply to anyone who comes into possession of a copy of the Software, and any modifications or derivative works based thereon, made by anyone.
4.**Contributions.** You hereby grant to Licensor a perpetual, irrevocable, worldwide, non-exclusive, royalty-free license to use and exploit any modifications or derivative works based on the Source Code of which you are the author.
5.**Disclaimer.** THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. LICENSOR HAS NO OBLIGATION TO SUPPORT RECIPIENTS OF THE SOFTWARE.
### _Welcome to the era of Sovereign Computing_ ###
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.
EmbassyOS is a browser-based, graphical operating system for a personal server. EmbassyOS facilitates the discovery, installation, network configuration, service configuration, data backup, dependency management, and health monitoring of self-hosted software services. It is the most advanced, secure, reliable, and user friendly personal server OS in the world.
**Tech stack:** Rust backend (Tokio/Axum), Angular frontend, Node.js container runtime with LXC, and a custom diff-based database ([Patch-DB](https://github.com/Start9Labs/patch-db)) for reactive state synchronization.
## Running EmbassyOS
There are multiple ways to get your hands on EmbassyOS.
Services run in isolated LXC containers, packaged as [S9PKs](https://github.com/Start9Labs/start-os/blob/master/core/s9pk-structure.md) — a signed, merkle-archived format that supports partial downloads and cryptographic verification.
### :moneybag: Buy an Embassy
This is the most convenient option. Simply [buy an Embassy](https://start9.com) from Start9 and plug it in. Depending on where you live, shipping costs and import duties will vary.
## What can you do with it?
### :construction_worker: Build your own Embassy
While not as convenient as buying an Embassy, this option is easier than you might imagine, and there are 4 reasons why you might prefer it:
1. You already have a Raspberry Pi and would like to re-purpose it.
1. You want to save on shipping costs.
1. You prefer not to divulge your physical address.
1. You just like building things.
StartOS lets you self-host services that would otherwise depend on third-party cloud providers — giving you full ownership of your data and infrastructure.
To pursue this option, follow this [guide](https://start9.com/latest/diy).
Browse available services on the [Start9 Marketplace](https://marketplace.start9.com/), including:
### :hammer_and_wrench: Build EmbassyOS from Source
- **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
EmbassyOS can be built from source, for personal use, for free.
A detailed guide for doing so can be found [here](https://github.com/Start9Labs/embassy-os/blob/master/build/README.md).
Services are added by the community. If a service you want isn't available, you can [package it yourself](https://github.com/Start9Labs/ai-service-packaging/).
## :heart: Contributing
There are multiple ways to contribute: work directly on EmbassyOS, package a service for the marketplace, or help with documentation and guides. To learn more about contributing, see [here](https://github.com/Start9Labs/embassy-os/blob/master/CONTRIBUTING.md).
The easiest path. [Buy a server](https://store.start9.com) from Start9 and plug it in.
### Build your own
Install StartOS on your own hardware. Follow one of the [DIY guides](https://start9.com/latest/diy). 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](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](CONTRIBUTING.md) or visit [start9.com/contribute](https://start9.com/contribute/).
To report security issues, email [security@start9.com](mailto:security@start9.com).
-`build-prod.sh` - compiles a release build of the artifacts for running on ARM64
-`build-dev.sh` - compiles a development build of the artifacts for running on ARM64
- A Linux computer or VM
## Structure
The EmbassyOS backend is broken up into 4 different binaries:
- embassyd: This is the main workhorse of EmbassyOS - any new functionality you want will likely go here
- embassy-init: This is the component responsible for allowing you to set up your device, and handles system initialization on startup
- embassy-cli: This is a CLI tool that will allow you to issue commands to embassyd and control it similarly to the UI
- embassy-sdk: This is a CLI tool that aids in building and packaging services you wish to deploy to the Embassy
Finally there is a library `embassy` that supports all four of these tools.
See [here](/backend/Cargo.toml) for details.
## Building
You can build the entire operating system image using `make` from the root of the EmbassyOS project. This will subsequently invoke the build scripts above to actually create the requisite binaries and put them onto the final operating system image.
## Questions
If you have questions about how various pieces of the backend system work. Open an issue and tag the following people
"query":"-- Add migration script here\nCREATE TABLE IF NOT EXISTS tor\n(\n package TEXT NOT NULL,\n interface TEXT NOT NULL,\n key BLOB NOT NULL CHECK (length(key) = 64),\n PRIMARY KEY (package, interface)\n);\nCREATE TABLE IF NOT EXISTS session\n(\n id TEXT NOT NULL PRIMARY KEY,\n logged_in TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,\n logged_out TIMESTAMP,\n last_active TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,\n user_agent TEXT,\n metadata TEXT NOT NULL DEFAULT 'null'\n);\nCREATE TABLE IF NOT EXISTS account\n(\n id INTEGER PRIMARY KEY CHECK (id = 0),\n password TEXT NOT NULL,\n tor_key BLOB NOT NULL CHECK (length(tor_key) = 64)\n);\nCREATE TABLE IF NOT EXISTS ssh_keys\n(\n fingerprint TEXT NOT NULL,\n openssh_pubkey TEXT NOT NULL,\n created_at TEXT NOT NULL,\n PRIMARY KEY (fingerprint)\n);\nCREATE TABLE IF NOT EXISTS certificates\n(\n id INTEGER PRIMARY KEY, -- Root = 0, Int = 1, Other = 2..\n priv_key_pem TEXT NOT NULL,\n certificate_pem TEXT NOT NULL,\n lookup_string TEXT UNIQUE,\n created_at TEXT,\n updated_at TEXT\n);\nCREATE TABLE IF NOT EXISTS notifications\n(\n id INTEGER PRIMARY KEY,\n package_id TEXT,\n created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,\n code INTEGER NOT NULL,\n level TEXT NOT NULL,\n title TEXT NOT NULL,\n message TEXT NOT NULL,\n data TEXT\n);\nCREATE TABLE IF NOT EXISTS cifs_shares\n(\n id INTEGER PRIMARY KEY,\n hostname TEXT NOT NULL,\n path TEXT NOT NULL,\n username TEXT NOT NULL,\n password TEXT\n);",
tokio::time::sleep(Duration::from_secs(1)).await;// let the record state that I hate this
CHIME.play().await?;
rpc_server!({
command: embassy::setup_api,
context: ctx.clone(),
status: status_fn,
middleware: [
cors,
encrypt,
]
})
.with_graceful_shutdown({
letmutshutdown=ctx.shutdown.subscribe();
asyncmove{
shutdown.recv().await.expect("context dropped");
}
})
.await
.with_kind(embassy::ErrorKind::Network)?;
}else{
letcfg=RpcContextConfig::load(cfg_path).await?;
letguid_string=tokio::fs::read_to_string("/embassy-os/disk.guid")// unique identifier for volume group - keeps track of the disk that goes with your embassy
returnErr(Error::new(eyre!("Developer Key does not exist! Please run `embassy-sdk init` before running this command."),crate::ErrorKind::Uninitialized));
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.