* 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.
* add disk repair actions to diagnostic ui and server menu
* only display repair disk button when activated
* fix typo
* add repairDrive fn with restart to diagnostic ui
* fix copy
* add alert before repairing disk in diagnostic ui
* fix repair disk message spacing and hidden display
* fix version comparisons and enable dismissable refresh modal
* eager load medkit and fix storefront to outline icon
* remove deprecated build check
* fixed config types for object and union; cleaned up mock api fixtures
* make form object element transition times consistent and emit expand event on list object items
* feat(marketplace): extract common components
* chore: fix service provide
* feat(markdown): allow Observable content
* chore: remove unnecessary module import
* minor styling for marketplacee list
* only show loading for marketplace show if version change
* chore: get rid of unnecessary server request
* chore: fix version switching
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* feat(marketplace): add separate package and move some entities in it
* feat(marketplace): refactor release notes and list
* feat(marketplace): refactor showing a package
* chore: fix install progress
* chore: fix angular.json
* chore: properly share stream
* snek height fix
* close button to od welcome plus snek reposition
* remove console logs
Co-authored-by: Drew Ansbacher <drew@start9labs.com>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* basic info
* preview manifest
* textarea not long
* show error message details always
* reinstall button in marketplace
Co-authored-by: Drew Ansbacher <drew@start9labs.com>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
* fix: Fix the panic becaues of the double install logging
Co-authored-by: Aiden McClelland <dr-bonez@users.noreply.github.com>
* fix: Clippy fix for docker
* chore: Add notification on top of error
Co-authored-by: Aiden McClelland <dr-bonez@users.noreply.github.com>
* adds some investigative logging and improves error handling for mdns
* re-adds client error to mdns controller so that memory isn't deallocated while still in use by AvahiClient
* migrate root ca from 0.2.x
* migrate tor key, fix threading
* fixes lan address divergence across setup scenarios
* verifies that data drive matches the OS key on attachment
* fix 0.2.x recovery flow
* fixes issues with reading the product_key.txt file when it doesn't exist (NO_KEY=1)
* migrate tor key before initializing patchdb
* move patchdb lock guard acquisition into deferred async block
* pass product_key by parameter
* works, fucking finally
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
The reason is that we get better errors and that we get signal strength.
Reworking all the commands to use nmcli instead.
Feat: Wifi List Available
Feat: strength sort for available
fix: Backend to match the frontend asking
feat: New get with all information
chore: Make backend changing country not for NonWire
Co-authored-by: Drew Ansbacher <drew.ansbacher@spiredigital.com>
Co-authored-by: Drew Ansbacher <drew.ansbacher@spiredigital.com>
* added clarification on the embassy.local address being turned off after successful setup.
* adding troubleshooting section to README.md file.
* removing duplicate information
* updates per PR review.
* metrics leak potential fix:
* typo
* max of that or zero
* page movement
* animation edit
Co-authored-by: Drew Ansbacher <drew.ansbacher@spiredigital.com>
* refactor(app-show): refactor component
* chore: remove precommit hook for the time being
* chore: fix mutation by spreading
Co-authored-by: Drew Ansbacher <drew.ansbacher@spiredigital.com>
* allow mdns cifs shares
* regex and messaging for cifs
* Update install-wizard.component.ts
* refactor
* always include leading slash when saving path
* add avahi-utils
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* cifs for cloud backups on lan
* password spelling fix
* fix spelling and fix rpc method
* fix other methods
* remove old code and rename method
* add support for cifs backup targets
wip
cifs api
simplify idiom
add doc comment
wip
wip
should work™
* add password hash to server info
* fix type
* fix types for cifs
* minor fixes for cifs feature
* fix rpc structure
* fix copy, address some TODOs
* add subcommand
* backup path and navigation
* wizard edits
* rebased success page
* wiz conflicts resolved
* current change actually
* only unsub if done
* no fileter if necessary
* fix copy for cifs old password
* setup complete (#913)
* setup complete
* minor fixes
* setup.complete
* complete bool
* setup-wizard: complete boolean
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Drew Ansbacher <drew.ansbacher@spiredigital.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* usbstoraged
* set quirks on demand
* remove reference to usbstoraged.service
* comments
* use sysfs instead of modprobe and address comments
* fix ro fs and missing comma
* Apply suggestions from code review
* don't recurse overlayroot
* sleep before reconnect
* reset twice
* sync between writes
* fix build
* fix build
* adds drive to storage quirk whitelist
* long sleep
* another thing to try
* fix: Ensure that the changes take effect
Co-authored-by: Keagan McClelland <keagan.mcclelland@gmail.com>
Co-authored-by: Justin Miller <dragondef@gmail.com>
* fix eos <-> registry protocol
* fix ui <-> eos protocol
* redoes the embassyd api to accept an optional version spec argument, still allowing for CLI @ syntax
* redo the front end in accordance with the new api
* Update appmgr/src/install/mod.rs
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
* fix more query params
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
* move SslManager to NetController and out of NginxController
* always generate the certs, move that functionality to the net controller before any nginx configs are written
* add info log
* refactor to make net controller not responsible for nginx stuff
* diff minimization
* diff minimization
* diff minimization
* diff minimization
* use net controller cert path instead of nginx controller cert path
* remove unused imports
* move location of cert mounts
* use df for getting disk info
* fix import
* fix type errors
* add duplicity flag for different source hosts
* fix borrow
* reorder args
* update cargo lock
* use 1byte block sizes and using floating point numbers
* makes debounces a property of calls to notify rather than a global property of the notification manager
* Update appmgr/src/status/mod.rs
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
* rework cutofing processing
* fix default generation bug
* dont hard code all dependent ids to 'hello'
* fix recommendation display and bug with health cehck not updating
* fix key name
* fix dependency error updates and retain order on backup
* fix health check display
* update compat build and add to os build process
* copy to explicit file
* fix paths and loading input
* temp save docker images output
* add docker config file to suppress warning
* notes and first attempt of load image script
* pr fixes
* run as root, fix executable path
* wip fixes
* fix pool name and stop docker before umount
* start docker again
* reset docker fs
* remove mkdir
* load system images during embassy-init
* add utils to make build
* fix utils source
* create system-images dir as root
* cleanup
* make loading docker images datadir agnostic
* address PR feedback
* rework load images
* create shutdown channel on failed embassy-init run
* pr feedback
* fix import
* allows for root/int certificate imports, certain invariants are not checked at this time
* refactor ssl module to only import root certificate
* implements certificate export, propagates import functionality all the way to NetController::init
* feat: static server
* WIP: Idea (#685)
* wip: New Idea
Use tokens as proofs.
Use proofs as arguments.
Return proofs as indication of side effects?
Forced constructor pattern?
* chore: Use the has notation for reciepts
* chore: Example to main db mod
* feat: Content headers
* polish
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* rename variables for clarity
* return altered dep config
* add utils system image, move compat into system-images
* rename variables for clarity
* sync integration and add debug instrumentation
* debugging
* add trace instrumentation
* fix compilation for instrumentation
* fix potential deadlocking behavior
* fix import
* fix dep check response return
* hook back up to rpc, was overwritten in rebase
* fix package command
* get proper package config
* testing dep config
* version/volume for dep
* vars
* compat debugs
* clean up
* remove tar
Co-authored-by: Chris Guida <chrisguida@gmail.com>
* initializes wifi system correctly
* add packages to initialization
* restart wpa_supplicant after conf file is sync'ed
* fix cli rendering for set_network
* debug statements
* more debug stuff, trim network id on return
* possibly solves all dhcp problems on startup, I wish I understood better why it starts by default for eth0 but not wlan0
* make consistent with new logging
* new flow and endpoints
* functional
* prod build errors addressed
* little more cleanup
* transfer progress fixed
* tor address fix
* remove eslint cause sucks
* fix skeleton text color and wording
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Drew Ansbacher <drew.ansbacher@spiredigital.com>
* change health check result to remove time
* rename health check result
* Update appmgr/src/dependencies.rs
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
* fixes issue where mdns.sync would reset the entry group without readding the original A record, causing CNAME's to point to nothing
* make analyzer mad to make cargo happy
* please both analyzer and cargo
* debug logs
* demote successful healthcheck logs to trace since they happen once every second
* I have no words for this commit message
* 2 is 3
* implement package.action rpc/cli command
* use action id instead of name
* make ActionResult display impl nicer
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* Synchronizes Wifi config during the 'embassy-init' startup sequence
* Apply suggestions from code review
make directories polymorphic over AsRef
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
* make resilient to existing symlink
* make this more idiomatic
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* wip: package logs
* fixes from code review
* fix reverse flag behavior
* only embassyd uses -u, packages use CONTAINER_NAME
* make id param an enum, clean up code
* changes from rebase
* change package IDs to be of type PackageId
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* wip
* wraps up core tor health check feature, still need to fix the boundaries with the rest of embassyd
* need to please borrow checker
* please the borrow checker
* wire it in
* finishes the feature
* Apply suggestions from code review
* fixes tor restart functionality
* makes tor replacement more resilient, adds embassyd service in init and replace
* initial commit for wifi feature
* implements wifi.get
* implements signal strength, removes macro system, makes compatible with rust stable
* remove selected row from wifi info
* refactor to correctly use rpc-toolkit
* remove redundant line from invoke error rendering
* Apply suggestions from code review
* adds display for wifi.get
* use invoke
* use remove
* use tokio native timeout
* use correct null output
* Apply suggestions from code review
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
* fix borrowing issues
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
* adds avahi base service to init function of mdns controller
* Apply suggestions from code review
* adds hostname set to startup sequence
* Apply suggestions from code review
Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
* WIP sound lib
* basically finishes sound interface, still needs circle of fifths for updates etc.
* finishes sound interface, includes light testing
* fixes loops to use euclidian remainder
* implements locking for the sound interface
* stop sleeping on blocks
* wip ssh feature
* add and remove complete, list remains
* list half way done
* should finish the ssh module completely
* minor fixes
* formatting and offline queries
Co-authored-by: Aiden McClelland <me@drbonez.dev>
* begin subnav implementation
* implement subnav AND angular forms for comparison
* unions working-ish, list of enums working
* new form approach almost complete
* finish new forms approach for action inputs and config
* expandable list items and handlebars display
* Config animation (#394)
* config cammel
* config animation
Co-authored-by: Drew Ansbacher <drew.ansbacher@spiredigital.com>
* improve server settings inputs, still needs work
* delete all notifications, styling, and bugs
* contracted by default
Co-authored-by: Drew Ansbacher <drew.ansbacher@gmail.com>
Co-authored-by: Drew Ansbacher <drew.ansbacher@spiredigital.com>
* accordion works
* cleanup
* styling
* more styling
* App show change (#387)
* show page change
* no marketplace
* app show changes
* update marketplace list
* icon
* top left icon
* toolbar
* right size
* out of toolbar
* no service details
* fix skeleton text and server metrics page
* stuck
* add session management
* complete sessions feature
* app show page
* remove unnecessary icons
* add cli to list of possible sessions
* Modal global (#383)
* modal checkpoint
* global modal
* black looks good now
* black looks good now
* not smaller
Co-authored-by: Drew Ansbacher <drew.ansbacher@spiredigital.com>
Co-authored-by: Drew Ansbacher <drew.ansbacher@spiredigital.com>
Co-authored-by: Drew Ansbacher <drew.ansbacher@gmail.com>
Co-authored-by: Drew Ansbacher <drew.ansbacher@spiredigital.com>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
Co-authored-by: Matt Hill <MattDHill@users.noreply.github.com>
* looking for unnecessary watches
* on init data initialization
* prog pipe
* install progress everywhere
* titlecase status
* include updateing state in app show for install progress
Co-authored-by: Drew Ansbacher <drew.ansbacher@spiredigital.com>
Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
ui: adds overlay layer to patch-db-client
ui: getting towards mocks
ui: cleans up factory init
ui: nice type hack
ui: live api for patch
ui: api service source + http
starts up
ui: api source + http
ui: rework patchdb config, pass stashTimeout into patchDbModel
wires in temp patching into api service
ui: example of wiring patchdbmodel into page
begin integration
remove unnecessary method
linting
first data rendering
rework app initialization
http source working for ssh delete call
temp patches working
entire Embassy tab complete
not in kansas anymore
ripping, saving progress
progress for API request response types and endoint defs
Update data-model.ts
shambles, but in a good way
progress
big progress
progress
installed list working
big progress
progress
progress
begin marketplace redesign
Update api-types.ts
Update api-types.ts
marketplace improvements
cosmetic
dependencies and recommendations
begin nym auth approach
install wizard
restore flow and donations
* self-repair and prevention of ssl cert renewal bug
* bump to 0.2.17
* adjust ui for 0.2.17
* adds db migration
* add extra protection around ssl directory target
* liftIO
* remove all apt-get calls from check phase of startup
* Fix "n is undefined" config spec change bug (#392)
Fixes the issue where an old config with a new config spec sometimes renders the config inaccessible, with the error `n is undefined`
* updates version numbers
* version change for appmgr
* updates version numbers and welcome message
* adds migration for 0.2.15 to the agent
* actually add 0.2.15 migration to appmgr
Co-authored-by: Chris Guida <chrisguida@users.noreply.github.com>
# This folder contains GitHub Actions workflows for building the project
## backend
Runs: manually (on: workflow_dispatch) or called by product-pipeline (on: workflow_call)
This workflow uses the actions and docker/setup-buildx-action@v1 to prepare the environment for aarch64 cross complilation using docker buildx.
When execution of aarch64 containers is required the action docker/setup-qemu-action@v1 is added.
A matrix-strategy has been used to build for both x86_64 and aarch64 platforms in parallel.
### Running unittests
Unittests are run using [cargo-nextest]( https://nexte.st/). First the sources are (cross-)compiled and archived. The archive is then run on the correct platform.
## frontend
Runs: manually (on: workflow_dispatch) or called by product-pipeline (on: workflow_call)
This workflow builds the frontends.
## product
Runs: when a pull request targets the master or next branch and when a change to the master or next branch is made
This workflow builds everything, re-using the backend and frontend workflows.
The download and extraction order of artifacts is relevant to `make`, as it checks the file timestamps to decide which targets need to be executed.
Result: eos.img
## a note on uploading artifacts
Artifacts are used to share data between jobs. File permissions are not maintained during artifact upload. Where file permissions are relevant, the workaround using tar has been used. See (here)[https://github.com/actions/upload-artifact#maintaining-file-permissions-and-case-sensitive-files].
* Due to issues to cross-compile the image from a desktop, this guide will take you step-by-step through the process of compiling EmbassyOS directly on a Raspberry Pi 4 (4GB or 8GB)
* This process will go faster if you have an SSD/NVMe USB drive available.
* This build guide does **not** require a large microSD card, especially if your final build wil be used on an SSD/NVMe USB drive.
* Basic know-how of linux commands and terminal use is recommended.
* Follow the guide carefully and do not skip any steps.
# :hammer_and_wrench: Build Guide
1. Flash [Raspberry Pi OS Lite](https://www.raspberrypi.org/software/operating-systems/) to a microSD and configure your raspi to boot from SSD/NVMe USB drive
1. After flashing, create an empty text file called `ssh` in the `boot` partition of the microSD, then proceed with booting the raspi with the flashed microSD (check your router for the IP assigned to your raspi)
1. Do the usual initial update/config
```
sudo apt update
sudo raspi-config
```
1. Change `Advanced Options->Boot Order`
1. Select `USB Boot` *(it will try to boot from microSD first if it's available)*
1. Select `Finish`, then `Yes` to reboot
1. After reboot, `sudo shutdown now` to power off the raspi and remove the microSD
2. Flash the *Raspi OS Lite* (from step 1) to your SSD/NVMe drive
> :information_source: Don't worry about rootfs partition size (raspi will increase it for you on initial boot)
> :information_source: Every time you re-flash your SSD/NVMe you need to first boot with a microSD and set *Boot Order* again
1. Don't forget to create the empty `ssh` file
1. Connect the drive (remember to remove the microSD) to the raspi and start it up
1. Use `sudo raspi-config` to change the default password
1. Optional: `sudo apt upgrade -y`
1. Optional: `sudo nano /etc/apt/sources.list.d/vscode.list` comment the last line which contains `packages.microsoft.com`
3. Install GHC
```
sudo apt update
sudo apt install -y ghc
#test:
ghc --version
#example of output:
The Glorious Glasgow Haskell Compilation System, version 8.4.4
```
4. Compile Stack:
1. Install Stack v2.1.3
```
cd ~/
wget -qO- https://raw.githubusercontent.com/commercialhaskell/stack/v2.1.3/etc/scripts/get-stack.sh | sh
#test with
stack --version
#example output:
Version 2.1.3, Git revision 636e3a759d51127df2b62f90772def126cdf6d1f (7735 commits) arm hpack-0.31.2
Note: This image was uploaded as a gzipped POSIX sparse TAR file. The recommended command for unpacking it on systems that support sparse files is `tar --format=posix --sparse -zxvf eos.tar.gz`
## What's Changed
- formatting by @dr-bonez in #1698
- Update README.md by @kn0wmad in #1705
- Update README.md by @dr-bonez in #1703
- feat: migrate to Angular 14 and RxJS 7 by @waterplea in #1681
- 0312 multiple FE by @MattDHill in #1712
- Fix http requests by @MattDHill in #1717
- Add build-essential to README.md by @chrisguida in #1716
- write image to sparse-aware archive format by @dr-bonez in #1709
- fix: Add modification to the max_user_watches by @Blu-J in #1695
- [Feat] follow logs by @chrisguida in #1714
- Update README.md by @dr-bonez in #1728
- fix build for patch-db client for consistency by @elvece in #1722
- fix cli install by @chrisguida in #1720
- highlight instructions if not viewed by @MattDHill in #1731
- Feat: HttpReader by @redragonx in #1733
- Bugfix/dns by @dr-bonez in #1741
- add x86 build and run unittests to backend pipeline by @moerketh in #1682
- [Fix] websocket connecting and patchDB connection monitoring by @MattDHill in #1738
- Set pipeline job timeouts and add ca-certificates to test container by @moerketh in #1753
- Disable bluetooth properly #862 by @redragonx in #1745
- [feat]: resumable downloads by @dr-bonez in #1746
- Fix/empty properties by @elvece in #1764
- use hostname from patchDB as default server name by @MattDHill in #1758
- switch to postgresql by @dr-bonez in #1763
- remove product key from setup flow by @MattDHill in #1750
- pinning cargo dep versions for CLI by @redragonx in #1775
- fix: Js deep dir by @Blu-J in #1784
- 0.3.2 final cleanup by @dr-bonez in #1782
- expect ui marketplace to be undefined by @MattDHill in #1787
- fix init to exit on failure by @dr-bonez in #1788
- fix search to return more accurate results by @MattDHill in #1792
- update backend dependencies by @dr-bonez in #1796
- use base64 for HTTP headers by @dr-bonez in #1795
- fix: Bad cert of *.local.local is now fixed to correct. by @Blu-J in #1798
- fix duplicate patch updates, add scroll button to setup success by @MattDHill in #1800
- level_slider reclaiming that precious RAM memory by @k0gen in #1799
- stop leaking avahi clients by @dr-bonez in #1802
- fix: Deep is_parent was wrong and could be escapped by @Blu-J in #1801
- prevent cfg str generation from running forever by @dr-bonez in #1804
- better RPC error message by @MattDHill in #1803
- Bugfix/marketplace add by @elvece in #1805
- fix mrketplace swtiching by @MattDHill in #1810
- clean up code and logs by @MattDHill in #1809
- fix: Minor fix that matt wanted by @Blu-J in #1808
- onion replace instead of adding tor repository by @k0gen in #1813
- bank Start as embassy hostname from the begining by @k0gen in #1814
- add descriptions to marketplace list page by @elvece in #1812
- Fix/encryption by @elvece in #1811
- restructure initialization by @dr-bonez in #1816
- update license by @MattDHill in #1819
- perform system rebuild after updating by @dr-bonez in #1820
- ignore file not found error for delete by @dr-bonez in #1822
- Multiple by @MattDHill in #1823
- Bugfix/correctly package backend job by @moerketh in #1826
- update patch-db by @dr-bonez in #1831
- give name to logs file by @MattDHill in #1833
- play song during update by @dr-bonez in #1832
- Seed patchdb UI data by @elvece in #1835
- update patch db and enable logging by @dr-bonez in #1837
- reduce patch-db log level to warn by @dr-bonez in #1840
- update ts matches to fix properties ordering bug by @elvece in #1843
- handle multiple image tags having the same hash and increase timeout by @dr-bonez in #1844
- retry pgloader up to 5x by @dr-bonez in #1845
- show connection bar right away by @MattDHill in #1849
- dizzy Rebranding to embassyOS by @k0gen in #1851
- update patch db by @MattDHill in #1852
- camera_flash screenshots update by @k0gen in #1853
- disable concurrency and delete tmpdir before retry by @dr-bonez in #1846
## New Contributors
-@redragonx made their first contribution in #1733
# v0.3.1.1
## What's Changed
- whale2 docker stats fix by @k0gen in #1630
- update backend dependencies by @dr-bonez in #1637
- Fix/receipts health by @Blu-J in #1616
- return correct error on failed os download by @dr-bonez in #1636
- fix build by @dr-bonez in #1639
- Update product.yaml by @dr-bonez in #1638
- handle case where selected union enum is invalid after migration by @MattDHill in #1658
- fix: Resolve fighting with NM by @Blu-J in #1660
- sdk: don't allow mounts in inject actions by @chrisguida in #1653
- feat: Variable args by @Blu-J in #1667
- add readme to system-images folder by @elvece in #1665
- Mask chars beyond 16 by @MattDHill in #1666
- chore: Update to have the new version 0.3.1.1 by @Blu-J in #1668
- feat: Make the rename effect by @Blu-J in #1669
- fix migration, add logging by @dr-bonez in #1674
- run build checks only when relevant FE changes by @elvece in #1664
- trust local ca by @dr-bonez in #1670
- lower log level for docker deser fallback message by @dr-bonez in #1672
- refactor build process by @dr-bonez in #1675
- chore: enable strict mode by @waterplea in #1569
- draft releases notes for 0311 by @MattDHill in #1677
- add standby mode by @dr-bonez in #1671
- feat: atomic writing by @Blu-J in #1673
- allow server.update to update to current version by @dr-bonez in #1679
- allow falsey rpc response by @dr-bonez in #1680
- issue notification when individual package restore fails by @dr-bonez in #1685
- replace bang with question mark in html by @MattDHill in #1683
- only validate mounts for inject if eos >=0.3.1.1 by @dr-bonez in #1686
- add marketplace_url to backup metadata for service by @dr-bonez in #1688
- marketplace published at for service by @MattDHill in #1689
- sync data to fs before shutdown by @dr-bonez in #1690
- messaging for restart, shutdown, rebuild by @MattDHill in #1691
- honor shutdown from diagnostic ui by @dr-bonez in #1692
- ask for sudo password immediately during make by @dr-bonez in #1693
- sync blockdev after update by @dr-bonez in #1694
- set Matt as default assignee by @MattDHill in #1697
- NO_KEY for CI images by @dr-bonez in #1700
- fix typo by @dr-bonez in #1702
# v0.3.1
## What's Changed
- Feat bulk locking by @Blu-J in #1422
- Switching SSH keys to start9 user by @k0gen in #1321
- chore: Convert from ajv to ts-matches by @Blu-J in #1415
- Fix/id params by @elvece in #1414
- make nicer update sound by @ProofOfKeags in #1438
- adds product key to error message in setup flow when there is mismatch by @dr-bonez in #1436
- Update README.md to include yq by @cryptodread in #1385
- yin_yang For the peace of mind yin_yang by @k0gen in #1444
- Feature/update sound by @ProofOfKeags in #1439
- Feature/script packing by @ProofOfKeags in #1435
- rename ActionImplementation to PackageProcedure by @dr-bonez in #1448
- Chore/warning cleanse by @ProofOfKeags in #1447
- refactor packing to async by @ProofOfKeags in #1453
- Add nginx config for proxy redirect by @yzernik in #1421
- Proxy local frontend to remote backend by @elvece in #1452
- Feat/js action by @Blu-J in #1437
- Fix/making js work by @Blu-J in #1456
- fix: Dependency vs dependents by @Blu-J in #1462
- refactor: isolate network toast and login redirect to separate services by @waterplea in #1412
- Fix links in CONTRIBUTING.md, update ToC by @BBlackwo in #1463
- Feature/require script consistency by @ProofOfKeags in #1451
- Chore/version 0 3 1 0 by @Blu-J in #1475
- remove interactive TTY requirement from scripts by @moerketh in #1469
- Disable view in marketplace button when side-loaded by @BBlackwo in #1471
- Link to tor address on LAN setup page (#1277) by @BBlackwo in #1466
- UI version updates and welcome message for 0.3.1 by @elvece in #1479
- Update contribution and frontend readme by @BBlackwo in #1467
- Clean up config by @MattDHill in #1484
- Enable Control Groups for Docker containers by @k0gen in #1468
- Fix/patch db unwrap remove by @Blu-J in #1481
- handles spaces in working dir in make-image.sh by @moerketh in #1487
- UI cosmetic improvements by @MattDHill in #1486
- chore: fix the master by @Blu-J in #1495
- generate unique ca names based off of server id by @ProofOfKeags in #1500
- allow embassy-cli not as root by @dr-bonez in #1501
- fix: potential fix for the docker leaking the errors and such by @Blu-J in #1496
- Fix/memory leak docker by @Blu-J in #1505
- fixes serialization of regex pattern + description by @ProofOfKeags in #1509
- allow interactive TTY if available by @dr-bonez in #1508
- fix "missing proxy" error in embassy-cli by @dr-bonez in #1516
- Feat/js known errors by @Blu-J in #1514
- fixes a bug where nginx will crash if eos goes into diagnostic mode a… by @dr-bonez in #1506
- fix: restart/ uninstall sometimes didn't work by @Blu-J in #1527
- add "error_for_status" to static file downloads by @dr-bonez in #1532
- fixes #1169 by @dr-bonez in #1533
- disable unnecessary services by @dr-bonez in #1535
- chore: Update types to match embassyd by @Blu-J in #1539
- fix: found a unsaturaded args fix by @Blu-J in #1540
- chore: Update the lite types to include the union and enum by @Blu-J in #1542
- Feat: Make the js check for health by @Blu-J in #1543
- fix incorrect error message for deserialization in ValueSpecString by @dr-bonez in #1547
- fix dependency/dependent id issue by @dr-bonez in #1546
- add textarea to ValueSpecString by @dr-bonez in #1534
- Feat/js metadata by @Blu-J in #1548
- feat: uid/gid/mode added to metadata by @Blu-J in #1551
- Strict null checks by @waterplea in #1464
- fix backend builds for safe git config by @elvece in #1549
- update should send version not version spec by @elvece in #1559
- chore: Add tracing for debuging the js procedure slowness by @Blu-J in #1552
- Reset password through setup wizard by @MattDHill in #1490
- feat: Make sdk by @Blu-J in #1564
- fix: Missing a feature flat cfg by @Blu-J in #1563
- fixed sentence that didn't make sense by @BitcoinMechanic in #1565
- refactor(patch-db): use PatchDB class declaratively by @waterplea in #1562
- fix bugs with config and clean up dev options by @MattDHill in #1558
- fix: Make it so we only need the password on the backup by @Blu-J in #1566
- kill all sessions and remove ripple effect by @MattDHill in #1567
- adjust service marketplace button for installation source relevance by @elvece in #1571
- fix connection failure display monitoring and other style changes by @MattDHill in #1573
- add dns server to embassy-os by @dr-bonez in #1572
- Fix/mask generic inputs by @elvece in #1570
- Fix/sideload icon type by @elvece in #1577
- add avahi conditional compilation flags to dns by @dr-bonez in #1579
- selective backups and better drive selection interface by @MattDHill in #1576
- Feat/use modern tor by @kn0wmad in #1575
- update welcome notes for 031 by @MattDHill in #1580
- fix: Properties had a null description by @Blu-J in #1581
- fix backup lock ordering by @dr-bonez in #1582
- Bugfix/backup lock order by @dr-bonez in #1583
- preload redacted and visibility hidden by @MattDHill in #1584
- turn chevron red in config if error by @MattDHill in #1586
- switch to utc by @dr-bonez in #1587
- update patchdb for array patch fix by @elvece in #1588
- filter package ids when backing up by @dr-bonez in #1589
- add select/deselect all to backups and enum lists by @elvece in #1590
- fix: Stop the buffer from dropped pre-maturly by @Blu-J in #1591
- chore: commit the snapshots by @Blu-J in #1592
- nest new entries and message updates better by @MattDHill in #1595
- fix html parsing in logs by @elvece in #1598
- don't crash service if io-format is set for main by @dr-bonez in #1599
- strip html from colors from logs by @elvece in #1604
- feat: fetch effect by @Blu-J in #1605
- Fix/UI misc by @elvece in #1606
- display bottom item in backup list and refactor for cleanliness by @MattDHill in #1609
# v0.3.0.3
## What's Changed
- refactor: decompose app component by @waterplea in #1359
- Update Makefile by @kn0wmad in #1400
- ⬐ smarter wget by @k0gen in #1401
- prevent the kernel from OOMKilling embassyd by @dr-bonez in #1402
- attempt to heal when health check passes by @dr-bonez in #1420
- Feat new locking by @Blu-J in #1384
- version bump by @dr-bonez in #1423
- Update server-show.page.ts by @chrisguida in #1424
- Bump async from 2.6.3 to 2.6.4 in /frontend by @dependabot in #1426
- Update index.html by @mirkoRainer in #1419
## New Contributors
-@dependabot made their first contribution in #1426
-@mirkoRainer made their first contribution in #1419
# v0.3.0.2
- Minor compatibility fixes
-#1392
-#1390
-#1388
# v0.3.0.1
Minor bugfixes and performance improvements
# v0.3.0
- Websockets
- Real-time sync
- Patch DB
- Closely mirror FE and BE state. Most operating systems are connected to their GUI. Here it is served over the web. Patch DB and websockets serve to close the perceptual gap of this inherent challenge.
- Switch kernel from Raspbian to Ubuntu
- 64 bit
- Possibility for alternative hardware
- Merging of lifeline, agent, and appmgr into embassyd
- Elimination of Haskell in favor of pure Rust
- Unified API for interacting with the OS
- Easier to build from source
- OS (quarantined from OS and service data)
- Kernel/boot
- Persistent metadata (disk guid, product key)
- Rootfs (the os)
- Reserved (for updates) - swaps with rootfs
- Revamped OS updates
- Progress indicators
- Non-blocking
- Simple swap on reboot
- Revamped setup flow
- Elimination of Setup App (Apple/Google dependencies gone)
- Setup Wizard on http://embassy.local
- Revamped service config
- Dynamic, validated forms
- Diagnostic UI
- Missing disk, wrong disk, corrupt disk
- Turing complete API for actions, backup/restore, config, properties, notifications, health checks, and dependency requirements
- Optional, arbitrary inputs for actions
- Install, update, recover progress for apps
- Multiple interfaces
- E.g. rpc, p2p, ui
- Health checks
- Developer defined
- Internal, dependencies, and/or external
- Full Embassy backup (diff-based)
- External drive support/requirement
- Single at first
- Groundwork for extension and mirror drives
- Disk encryption
- Random key encrypted with static value
- Groundwork for swapping static value with chosen password
First off, thanks for taking the time to 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. 🎉
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. 🎉
> 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:
> 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
@@ -13,12 +22,14 @@ All types of contributions are encouraged and valued. See the [Table of Contents
- [Your First Code Contribution](#your-first-code-contribution)
- [Setting Up Your Development Environment](#setting-up-your-development-environment)
- [Building The Image](#building-the-image)
@@ -32,15 +43,19 @@ All types of contributions are encouraged and valued. See the [Table of Contents
- [Join The Discussion](#join-the-discussion)
- [Join The Project Team](#join-the-project-team)
## I Have a Question
> If you want to ask a question, we assume that you have read the available [Documentation](https://docs.start9labs.com).
> 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.
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:
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.
@@ -66,172 +81,260 @@ Depending on how large the project is, you may want to outsource the questioning
## 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.
>
> 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.
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://docs.start9labs.com). 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.
- 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
- 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.
- 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?
- 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 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:
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). (Since we can't be sure at this point whether it is a bug or not, we ask you not to talk about a bug yet and not to label the issue.)
- 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.
- 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 `needs-repro`. Bugs with the `needs-repro` tag will not be addressed until they are reproduced.
- If the team is able to reproduce the issue, it will be marked `needs-fix`, as well as possibly other tags (such as `critical`), and the issue will be left to be [implemented by someone](#your-first-code-contribution).
- 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.
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://docs.start9labs.com) 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.
- 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.
- 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
Embassy OS has 3 main components: `agent`, `appmgr`, and `ui`.
- The `ui` (Typescript Ionic Angular) is the code that is deployed to the browser to provide the user interface for Embassy OS
- The `agent` (Haskell) is a daemon that provides the interface for the `ui` to interact with the Embassy, as well as manage system state.
-`appmgr` (Rust) is a command line utility and (soon to be) daemon that sets up and manages services and their environments.
embassyOS is composed of the following components. Please visit the README for
each component to understand the dependency requirements and installation
instructions.
- [`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.
- [`build`](build/README.md) contains scripts and necessary for deploying
embassyOS to a debian/raspbian system.
- [`frontend`](frontend/README.md) (Typescript Ionic Angular) is the code that
is deployed to the browser to provide the user interface for embassyOS.
-`projects/ui` - Code for the user interface that is displayed when embassyOS
is running normally.
-`projects/setup-wizard`(frontend/README.md) - Code for the user interface
that is displayed during the setup and recovery process for embassyOS.
-`projects/diagnostic-ui` - Code for the user interface that is displayed
when something has gone wrong with starting up embassyOS, which provides
helpful debugging tools.
-`libs` (Rust) is a set of standalone crates that were separated out of
`backend` for the purpose of portability
-`patch-db` - A diff based data store that is used to synchronize data between
the front and backend.
- Notably, `patch-db` has a
[client](https://github.com/Start9Labs/patch-db/tree/master/client) with its
own dependency and installation requirements.
-`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).
### Your First Code Contribution
#### Setting up your development environment
##### agent
There are two main workflows to consider when developing on the agent. During the development process you will spend
most of your time developing in an environment where you cannot actually run the agent. This is because we make heavy
platform specific assumptions (by nature of the project) around what folders get used and what package management tools
are used for the underlying system. If you are running this on a platform besides Linux you won't even be able to run
the agent effectively on your dev machine. Even if you are on Linux you may not want to turn administrative control over
to the software you are currently developing. So how do you know that anything you are doing is right? We make extensive
use of Haskell's type system and surrounding tooling. For this you will want to make sure you are using the [haskell-language-server](https://github.com/haskell/haskell-language-server)
and [stack](https://github.com/commercialhaskell/stack)
#### Setting Up Your Development Environment
At some point though you will want to build the agent for the target platform (Raspberry Pi 4). This is the second build
flow that you will need to consider.
First, clone the embassyOS repository and from the project root, pull in the
submodules for dependent libraries.
At Start9 we build the agent in two different ways. The primary way we have done it is on the Raspberry Pi itself. To do
this you will need stack built for the Raspberry Pi. Unfortunately, however, FPComplete no longer
distributes ARMv7 binaries for stack. Though hopefully soon we will be able to submit the binaries we've built for this
project back to them and have them hosted more visibly. The way we bootstrap through this problem is by downloading version
[2.1.3](https://github.com/commercialhaskell/stack/releases/download/v2.1.3/stack-2.1.3-linux-arm.tar.gz) and using that
to compile v2.5.1. Before you can successfully compile anything with GHC on the Raspberry Pi. You will need to tweak the
relevant GHC config. You will need to edit the file at `~/.stack/programs/arm-linux/ghc-8.10.2/lib/ghc-8.10.2/settings`
and change the line `("C compiler flags", " -marm -fno-stack-protector -mcpu=cortex-a7")` to include `-mcpu=cortex-a7`.
You will also need to make sure you've downloaded and installed LLVM 9.
This step is for setting up an environment in which to test your code changes if
you do not yet have a embassyOS.
#### Building The Image
- Requirements
-`ext4fs` (available if running on the Linux kernel)
- [Docker](https://docs.docker.com/get-docker/)
- GNU Make
- Building
-build the [agent](#agent)
-make sure resulting artifact is agent/dist/agent
- run `make`
-see setup instructions [here](build/README.md)
-run `make embassyos-raspi.img ARCH=aarch64` from the project root
### 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.
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.
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.
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
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.
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.
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.
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.
## Join The Discussion
Current or aspiring contributors? Join our community developer [Matrix channel](https://matrix.to/#/#community-dev:matrix.start9labs.com).
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).
Current or aspiring contributors? Join our community developer
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.
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
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.
### 1.Definitions
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.
"License" means version 1 of the Start9 Non-Commercial License.
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.
"Licensor" means the Start9 Labs, Inc, or its successor(s) in interest, or a future assignee of the copyright.
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.
"You" (or "Your") means an individual or organization exercising permissions granted by this License.
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.
"Source Code" for a work means the preferred form of the work for making modifications to it.
"Object Code" means any non-source form of a work, including the machine-language output by a compiler or assembler.
"Work" means any work of authorship, whether in Source or Object form, made available under this License.
"Derivative Work" means any work, whether in Source or Object form, that is based on (or derived from) the Work.
"Distribute" means to convey or to publish and generally has the same meaning here as under U.S. Copyright law.
"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, consulting, or support services), a product or service whose value derives, entirely or substantially, from the functionality of the Work or Derivative Work.
### 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 access, audit, copy, modify, compile, run, test, distribute, or otherwise use the Software.
### 3. Limitations
1. The grant of rights under the License does NOT include, and the License does NOT grant You the right to Sell the Work or Derivative Work.
2. If you Distribute the Work or Derivative Work, you expressly undertake not to remove or modify, in any manner, the copyright notices attached to the Work or displayed in any output of the Work when run, and to reproduce these notices, in an identical manner, in any distributed copies of the Work or Derivative Work together with a copy of this License.
3. If you Distribute a Derivative Work, it must carry prominent notices stating that it has been modified from the Work, providing a relevant date.
### 4. Contributions
You hereby grant to Licensor a perpetual, irrevocable, worldwide, non-exclusive, royalty-free license to use and exploit any Derivative Work 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_ ###
EmbassyOS is a mass-market, graphical operating system designed to facilitate the discovery, installation, configuration, private self-hosting, and reliable operation of open-source software services and applications. It aims to eliminate trust and custodianship from personal computing.
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.
<img src="eos.png" width="100%">
## :warning: Caution
Some technologies supported by this software, such as [Lightning](https://lightning.network/), are considered in active development and might experience issues. Do not commit any funds you are not willing to loose. Be #reckless at your own risk.
## Running EmbassyOS
There are multiple ways to obtain and begin using EmbassyOS.
## Running embassyOS
There are multiple ways to get your hands on embassyOS.
### :moneybag: Buy an Embassy
This is the most convenient option. Simply [buy an Embassy](https://start9labs.com) from Start9 Labs and plug it in. Depending on where you live, shipping costs and import duties may vary.
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.
### :hammer_and_wrench: Build your own Embassy
### :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 already have your own hardware.
1. You want to save on shipping costs.
1. You prefer not to divulge your physical shipping address.
1. You prefer not to divulge your physical address.
1. You just like building things.
To pursue this option, follow this [guide](https://docs.start9labs.com/getting-started/diy.html).
To pursue this option, follow one of our [DIY guides](https://start9.com/latest/diy).
### :hammer_and_wrench: Build embassyOS from Source
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).
## :heart: Contributing
To build EmbassyOS from source, or to contribute to its development, see [here](https://github.com/Start9Labs/embassy-os/blob/master/CONTRIBUTING.md#building-the-image).
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://docs.start9.com/latest/contribute/) or [here](https://github.com/Start9Labs/embassy-os/blob/master/CONTRIBUTING.md).
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.