diff --git a/.gitignore b/.gitignore index defb084..8f9a59b 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,5 @@ .vscode/ build-send.sh site/_build -site/_utils/docsearch_config.json -site/_utils/docsearch_index.js -.env \ No newline at end of file +.env +site/_utils/docsearch* \ No newline at end of file diff --git a/README.md b/README.md index 9280e26..5b0c1b5 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,46 @@ The [extension](https://github.com/Holzhaus/sphinx-multiversion) used to build d ## Dependencies +Install [python3] (https://www.python.org/downloads/) +Install [poetry] (https://python-poetry.org/docs/) Install [pyenv](https://github.com/pyenv/pyenv) +For installations with MacOS: + +``` +brew install python3 +brew install poetry +``` + +## Project Setup + +1. Clone this repository and enter the project folder: + +``` +git clone https://github.com/Start9Labs/documentation.git && cd documentation +``` + +2. Install theme submodule: + +``` +git submodule update --init +``` + +3. (Optional, if you have an older build that needs to be updated) Navigate to `sphinx-scylladb-theme`, update and build with: + +``` +cd sphinx-scylladb-theme +git pull +npm i +npm run build +``` + +4. Navigate to the `site` folder and start the project: + +``` +cd site +make clean && make preview +``` ## Development When editing these files, begin a livereload environment by running `make preview` while in the `./site/` directory. @@ -47,7 +85,7 @@ Click on the "Issues" tab in the top navbar. Provide a good title and describe c ### Submitting a pull request -Click on the "Pull requests" tab in the top navbar. Select the green "New pull request button" in the top right section. Select your branch for the compare dropdown, and master as the base. Provide an appropriate title and summary of the changes in the pull request description. Changes will be reviewed and merged when satisfactory. +Click on the "Pull requests" tab in the top navbar. Select the green "New pull request button" in the top right section. Select your branch for the compare dropdown, and master as the base. Provide an appropriate title and summary of the changes in the pull request description. Changes will be reviewed and merged when satisfactory. ## Helpful Resources @@ -56,4 +94,4 @@ http://sphinx-doc.org/rest.html http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html http://www.siafoo.net/help/reST http://thomas-cokelaer.info/tutorials/sphinx/rest_syntax.html -https://sublime-and-sphinx-guide.readthedocs.io/en/latest/lists.html \ No newline at end of file +https://sublime-and-sphinx-guide.readthedocs.io/en/latest/lists.html diff --git a/site/03-todo.md b/site/03-todo.md new file mode 100644 index 0000000..7ac2e71 --- /dev/null +++ b/site/03-todo.md @@ -0,0 +1,36 @@ +# TODO +- Update all guides in service repos (link to wrapper repos in service guides) + - Lightning (Zeus) + - Vaultwarden needs screens +- Verify LAN and Tor setup steps on a Mac +- Refactor and update Roadmap +- Add / verify ALL links in the **UI** go to the right place in docs +- Initial Setup +- Alt Market Switching +- Migration / Recovery +- Backups + - CIFS + - OS guides for CIFS + - Local + - Restore from backup +- Mission / values +- Synology + +# BLOCKED: +- Possible sounds in troubleshooting (and walkthrough?) +- Alt Market Build Guide +- Launch versioned site/docs to start9.com +- Verify ALL links (especially in device guides as they are all external) + +# AFTER PUBLISHING: +- Create badges for device guide topic boxes +- Close all relevant issues (some await new processes in order to test) +- Migrate from other server projects / nodes (currently punted) +- Breakout Bitcoin / Lightning integrations into their own individual pages + +Go to the Synology UI > Control Panel > Shared Folder > select the folder you want to use > Permissions tab > make sure that you have read/write permissions for the user you're going to be logging in as (probably unnecessary but I made a separate user for this to keep things segregated) > Save +Then go to the Synology UI > Control Panel > File Services > SMB Tab > Click the SMB drop down button if it isn't already selected > Ensure that "Enable SMB service" is checked. +Under Advanced Settings on the same dropdown I have "Min SMB protocol" set to SMB2 and "Max SMB protocol set to SMB3", I got the impression somewhere that it might be important but I don't know if those are default values or if they actually matter). +On the same dropdown, under "Note" will be "PC (Windows Explorer): \". This DeviceAddressName is the "Hostname" within the Embassy New Shared Folder dialog, and note that it is case sensitive and that the \ have been removed. +Go to Synology UI > File Station > navigate so that you can see the the desired destination folder > right click on it > Properties > General Tab, next to Location: will be an folder location of the format ///, the / portion (so without the volume label) is the "Path" within the Embassy New Shared Folder dialog. +Fill in the Username and Password appropriately for the previously checked user. diff --git a/site/_utils/setup.sh b/site/_utils/setup.sh index b8f5024..96826f3 100755 --- a/site/_utils/setup.sh +++ b/site/_utils/setup.sh @@ -6,6 +6,7 @@ if pwd | egrep -q '\s'; then fi which python3 || { echo "Failed to find python3. Try installing Python for your operative system: https://www.python.org/downloads/" && exit 1; } -which poetry || curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/1.1.3/get-poetry.py | python3 - && source ${HOME}/.poetry/env +which poetry || curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3 - && source ${HOME}/.poetry/env + poetry install poetry update diff --git a/site/source/_static/custom.js b/site/source/_static/custom.js new file mode 100644 index 0000000..51ad9d1 --- /dev/null +++ b/site/source/_static/custom.js @@ -0,0 +1,16 @@ + +window.jQuery = $; +window.$ = $; + +const hideHeaderLinks = () => { + const dropdownHeader = $(".scylla-dropdown--header"); + const urlVersion = window.location.pathname.includes("0.2.x"); + if (urlVersion) { + dropdownHeader.hide(); + } +}; + + +$(document).ready(function () { + hideHeaderLinks(); +}); diff --git a/site/source/_static/images/about_screen.png b/site/source/_static/images/about_screen.png deleted file mode 100644 index 3241089..0000000 Binary files a/site/source/_static/images/about_screen.png and /dev/null differ diff --git a/site/source/_static/images/backup_warning.png b/site/source/_static/images/backup_warning.png deleted file mode 100644 index a8e08ac..0000000 Binary files a/site/source/_static/images/backup_warning.png and /dev/null differ diff --git a/site/source/_static/images/bitcoin_backup_view_no_storage.png b/site/source/_static/images/bitcoin_backup_view_no_storage.png deleted file mode 100644 index 17c039b..0000000 Binary files a/site/source/_static/images/bitcoin_backup_view_no_storage.png and /dev/null differ diff --git a/site/source/_static/images/bitcoin_backup_view_storage.png b/site/source/_static/images/bitcoin_backup_view_storage.png deleted file mode 100644 index 0fc91fe..0000000 Binary files a/site/source/_static/images/bitcoin_backup_view_storage.png and /dev/null differ diff --git a/site/source/_static/images/bitcoin_creating_backup.png b/site/source/_static/images/bitcoin_creating_backup.png deleted file mode 100644 index 5477b5d..0000000 Binary files a/site/source/_static/images/bitcoin_creating_backup.png and /dev/null differ diff --git a/site/source/_static/images/bitcoin_instructions.png b/site/source/_static/images/bitcoin_instructions.png deleted file mode 100644 index 925edd2..0000000 Binary files a/site/source/_static/images/bitcoin_instructions.png and /dev/null differ diff --git a/site/source/_static/images/bitcoin_instructions_view.png b/site/source/_static/images/bitcoin_instructions_view.png deleted file mode 100644 index 046fb65..0000000 Binary files a/site/source/_static/images/bitcoin_instructions_view.png and /dev/null differ diff --git a/site/source/_static/images/bitcoin_view.png b/site/source/_static/images/bitcoin_view.png deleted file mode 100644 index b35cac3..0000000 Binary files a/site/source/_static/images/bitcoin_view.png and /dev/null differ diff --git a/site/source/_static/images/config/basic-config0.png b/site/source/_static/images/config/basic-config0.png new file mode 100644 index 0000000..aebd97e Binary files /dev/null and b/site/source/_static/images/config/basic-config0.png differ diff --git a/site/source/_static/images/config/basic-config1.png b/site/source/_static/images/config/basic-config1.png new file mode 100644 index 0000000..860f025 Binary files /dev/null and b/site/source/_static/images/config/basic-config1.png differ diff --git a/site/source/_static/images/config/basic-config2.png b/site/source/_static/images/config/basic-config2.png new file mode 100644 index 0000000..6489e88 Binary files /dev/null and b/site/source/_static/images/config/basic-config2.png differ diff --git a/site/source/_static/images/config/basic-config3.png b/site/source/_static/images/config/basic-config3.png new file mode 100644 index 0000000..6f23dd4 Binary files /dev/null and b/site/source/_static/images/config/basic-config3.png differ diff --git a/site/source/_static/images/config/basic-config4.png b/site/source/_static/images/config/basic-config4.png new file mode 100644 index 0000000..1e3ac9e Binary files /dev/null and b/site/source/_static/images/config/basic-config4.png differ diff --git a/site/source/_static/images/config/embassy_backup.png b/site/source/_static/images/config/embassy_backup.png new file mode 100644 index 0000000..70a30e8 Binary files /dev/null and b/site/source/_static/images/config/embassy_backup.png differ diff --git a/site/source/_static/images/config/embassy_backup0.png b/site/source/_static/images/config/embassy_backup0.png new file mode 100644 index 0000000..344c7cd Binary files /dev/null and b/site/source/_static/images/config/embassy_backup0.png differ diff --git a/site/source/_static/images/config/embassy_backup1.png b/site/source/_static/images/config/embassy_backup1.png new file mode 100644 index 0000000..3aa9222 Binary files /dev/null and b/site/source/_static/images/config/embassy_backup1.png differ diff --git a/site/source/_static/images/config/embassy_backup2.png b/site/source/_static/images/config/embassy_backup2.png new file mode 100644 index 0000000..53fb6ef Binary files /dev/null and b/site/source/_static/images/config/embassy_backup2.png differ diff --git a/site/source/_static/images/config/embassy_backup3.png b/site/source/_static/images/config/embassy_backup3.png new file mode 100644 index 0000000..0e16e65 Binary files /dev/null and b/site/source/_static/images/config/embassy_backup3.png differ diff --git a/site/source/_static/images/config/embassy_backup4.png b/site/source/_static/images/config/embassy_backup4.png new file mode 100644 index 0000000..d3faef3 Binary files /dev/null and b/site/source/_static/images/config/embassy_backup4.png differ diff --git a/site/source/_static/images/config/wifi0.png b/site/source/_static/images/config/wifi0.png new file mode 100644 index 0000000..43c3517 Binary files /dev/null and b/site/source/_static/images/config/wifi0.png differ diff --git a/site/source/_static/images/config/wifi1.png b/site/source/_static/images/config/wifi1.png new file mode 100644 index 0000000..c2fa4e5 Binary files /dev/null and b/site/source/_static/images/config/wifi1.png differ diff --git a/site/source/_static/images/config/wifi2.png b/site/source/_static/images/config/wifi2.png new file mode 100644 index 0000000..3b82d64 Binary files /dev/null and b/site/source/_static/images/config/wifi2.png differ diff --git a/site/source/_static/images/config/wifi3.png b/site/source/_static/images/config/wifi3.png new file mode 100644 index 0000000..968c871 Binary files /dev/null and b/site/source/_static/images/config/wifi3.png differ diff --git a/site/source/_static/images/config/wifi4.png b/site/source/_static/images/config/wifi4.png new file mode 100644 index 0000000..8c6af20 Binary files /dev/null and b/site/source/_static/images/config/wifi4.png differ diff --git a/site/source/_static/images/config/wifi5.png b/site/source/_static/images/config/wifi5.png new file mode 100644 index 0000000..4daf51d Binary files /dev/null and b/site/source/_static/images/config/wifi5.png differ diff --git a/site/source/_static/images/decrypt_backup.png b/site/source/_static/images/decrypt_backup.png deleted file mode 100644 index 67e2280..0000000 Binary files a/site/source/_static/images/decrypt_backup.png and /dev/null differ diff --git a/site/source/_static/images/dev/instructions.png b/site/source/_static/images/dev/instructions.png new file mode 100644 index 0000000..55f22e4 Binary files /dev/null and b/site/source/_static/images/dev/instructions.png differ diff --git a/site/source/_static/images/dev/pages0.png b/site/source/_static/images/dev/pages0.png new file mode 100644 index 0000000..951ba51 Binary files /dev/null and b/site/source/_static/images/dev/pages0.png differ diff --git a/site/source/_static/images/dev/pages1.png b/site/source/_static/images/dev/pages1.png new file mode 100644 index 0000000..38669a7 Binary files /dev/null and b/site/source/_static/images/dev/pages1.png differ diff --git a/site/source/_static/images/embassy_auto_check_updates.png b/site/source/_static/images/embassy_auto_check_updates.png deleted file mode 100644 index 0e5a85e..0000000 Binary files a/site/source/_static/images/embassy_auto_check_updates.png and /dev/null differ diff --git a/site/source/_static/images/embassy_config.png b/site/source/_static/images/embassy_config.png deleted file mode 100644 index acbc759..0000000 Binary files a/site/source/_static/images/embassy_config.png and /dev/null differ diff --git a/site/source/_static/images/embassy_lan_setup.png b/site/source/_static/images/embassy_lan_setup.png deleted file mode 100644 index 0919d7b..0000000 Binary files a/site/source/_static/images/embassy_lan_setup.png and /dev/null differ diff --git a/site/source/_static/images/embassy_metrics.png b/site/source/_static/images/embassy_metrics.png deleted file mode 100644 index 6387cc7..0000000 Binary files a/site/source/_static/images/embassy_metrics.png and /dev/null differ diff --git a/site/source/_static/images/embassy_notification.png b/site/source/_static/images/embassy_notification.png deleted file mode 100644 index 3f79b9f..0000000 Binary files a/site/source/_static/images/embassy_notification.png and /dev/null differ diff --git a/site/source/_static/images/embassy_notifications.png b/site/source/_static/images/embassy_notifications.png deleted file mode 100644 index 404248f..0000000 Binary files a/site/source/_static/images/embassy_notifications.png and /dev/null differ diff --git a/site/source/_static/images/embassy_tab.png b/site/source/_static/images/embassy_tab.png deleted file mode 100644 index c5779b0..0000000 Binary files a/site/source/_static/images/embassy_tab.png and /dev/null differ diff --git a/site/source/_static/images/embassy_wifi.png b/site/source/_static/images/embassy_wifi.png deleted file mode 100644 index 73eb6e2..0000000 Binary files a/site/source/_static/images/embassy_wifi.png and /dev/null differ diff --git a/site/source/_static/images/restore_backup_menu.png b/site/source/_static/images/restore_backup_menu.png deleted file mode 100644 index ac80123..0000000 Binary files a/site/source/_static/images/restore_backup_menu.png and /dev/null differ diff --git a/site/source/_static/images/restore_backup_submenu.png b/site/source/_static/images/restore_backup_submenu.png deleted file mode 100644 index 5d9627a..0000000 Binary files a/site/source/_static/images/restore_backup_submenu.png and /dev/null differ diff --git a/site/source/_static/images/restoring_backup.png b/site/source/_static/images/restoring_backup.png deleted file mode 100644 index f158e41..0000000 Binary files a/site/source/_static/images/restoring_backup.png and /dev/null differ diff --git a/site/source/_static/images/secure_lan_setup_page.png b/site/source/_static/images/secure_lan_setup_page.png deleted file mode 100644 index 0202f83..0000000 Binary files a/site/source/_static/images/secure_lan_setup_page.png and /dev/null differ diff --git a/site/source/_static/images/service/bitcoin_config.png b/site/source/_static/images/service/bitcoin_config.png deleted file mode 100644 index 8e9af32..0000000 Binary files a/site/source/_static/images/service/bitcoin_config.png and /dev/null differ diff --git a/site/source/_static/images/service/bitcoin_instructions.png b/site/source/_static/images/service/bitcoin_instructions.png deleted file mode 100644 index 4529e7a..0000000 Binary files a/site/source/_static/images/service/bitcoin_instructions.png and /dev/null differ diff --git a/site/source/_static/images/service/bitcoin_rpc.png b/site/source/_static/images/service/bitcoin_rpc.png deleted file mode 100644 index 9e6e145..0000000 Binary files a/site/source/_static/images/service/bitcoin_rpc.png and /dev/null differ diff --git a/site/source/_static/images/service/boolean_toggle.png b/site/source/_static/images/service/boolean_toggle.png deleted file mode 100644 index df07547..0000000 Binary files a/site/source/_static/images/service/boolean_toggle.png and /dev/null differ diff --git a/site/source/_static/images/service/btcproxy_config.png b/site/source/_static/images/service/btcproxy_config.png deleted file mode 100644 index cede6fc..0000000 Binary files a/site/source/_static/images/service/btcproxy_config.png and /dev/null differ diff --git a/site/source/_static/images/service/btcproxy_rpc.png b/site/source/_static/images/service/btcproxy_rpc.png deleted file mode 100644 index 9da9efa..0000000 Binary files a/site/source/_static/images/service/btcproxy_rpc.png and /dev/null differ diff --git a/site/source/_static/images/service/service_properties.png b/site/source/_static/images/service/service_properties.png deleted file mode 100644 index 4a8bee2..0000000 Binary files a/site/source/_static/images/service/service_properties.png and /dev/null differ diff --git a/site/source/_static/images/services/acts.png b/site/source/_static/images/services/acts.png new file mode 100644 index 0000000..0ec5cfb Binary files /dev/null and b/site/source/_static/images/services/acts.png differ diff --git a/site/source/_static/images/services/config.png b/site/source/_static/images/services/config.png new file mode 100644 index 0000000..ddd6fda Binary files /dev/null and b/site/source/_static/images/services/config.png differ diff --git a/site/source/_static/images/services/deps.png b/site/source/_static/images/services/deps.png new file mode 100644 index 0000000..8e380a2 Binary files /dev/null and b/site/source/_static/images/services/deps.png differ diff --git a/site/source/_static/images/services/donate.png b/site/source/_static/images/services/donate.png new file mode 100644 index 0000000..f577619 Binary files /dev/null and b/site/source/_static/images/services/donate.png differ diff --git a/site/source/_static/images/services/instruct.png b/site/source/_static/images/services/instruct.png new file mode 100644 index 0000000..fb24754 Binary files /dev/null and b/site/source/_static/images/services/instruct.png differ diff --git a/site/source/_static/images/services/ints.png b/site/source/_static/images/services/ints.png new file mode 100644 index 0000000..382b711 Binary files /dev/null and b/site/source/_static/images/services/ints.png differ diff --git a/site/source/_static/images/services/logs.png b/site/source/_static/images/services/logs.png new file mode 100644 index 0000000..a2cb36f Binary files /dev/null and b/site/source/_static/images/services/logs.png differ diff --git a/site/source/_static/images/services/market.png b/site/source/_static/images/services/market.png new file mode 100644 index 0000000..11ecdca Binary files /dev/null and b/site/source/_static/images/services/market.png differ diff --git a/site/source/_static/images/services/menu.png b/site/source/_static/images/services/menu.png new file mode 100644 index 0000000..407324c Binary files /dev/null and b/site/source/_static/images/services/menu.png differ diff --git a/site/source/_static/images/services/overview.png b/site/source/_static/images/services/overview.png new file mode 100644 index 0000000..3c1de9e Binary files /dev/null and b/site/source/_static/images/services/overview.png differ diff --git a/site/source/_static/images/services/props.png b/site/source/_static/images/services/props.png new file mode 100644 index 0000000..d840268 Binary files /dev/null and b/site/source/_static/images/services/props.png differ diff --git a/site/source/_static/images/services/service-instruct.png b/site/source/_static/images/services/service-instruct.png new file mode 100644 index 0000000..7914732 Binary files /dev/null and b/site/source/_static/images/services/service-instruct.png differ diff --git a/site/source/_static/images/services/service-ints.png b/site/source/_static/images/services/service-ints.png new file mode 100644 index 0000000..0f32590 Binary files /dev/null and b/site/source/_static/images/services/service-ints.png differ diff --git a/site/source/_static/images/services/service-ints0.png b/site/source/_static/images/services/service-ints0.png new file mode 100644 index 0000000..80dc5ed Binary files /dev/null and b/site/source/_static/images/services/service-ints0.png differ diff --git a/site/source/_static/images/services/service-needs-config.png b/site/source/_static/images/services/service-needs-config.png new file mode 100644 index 0000000..2ecb07f Binary files /dev/null and b/site/source/_static/images/services/service-needs-config.png differ diff --git a/site/source/_static/images/services/service-properties.png b/site/source/_static/images/services/service-properties.png new file mode 100644 index 0000000..bbcacef Binary files /dev/null and b/site/source/_static/images/services/service-properties.png differ diff --git a/site/source/_static/images/services/service0.png b/site/source/_static/images/services/service0.png new file mode 100644 index 0000000..79e0992 Binary files /dev/null and b/site/source/_static/images/services/service0.png differ diff --git a/site/source/_static/images/services/service00.png b/site/source/_static/images/services/service00.png new file mode 100644 index 0000000..c0b64a4 Binary files /dev/null and b/site/source/_static/images/services/service00.png differ diff --git a/site/source/_static/images/services/service1.png b/site/source/_static/images/services/service1.png new file mode 100644 index 0000000..e23eb3d Binary files /dev/null and b/site/source/_static/images/services/service1.png differ diff --git a/site/source/_static/images/services/service2.png b/site/source/_static/images/services/service2.png new file mode 100644 index 0000000..6e78e2d Binary files /dev/null and b/site/source/_static/images/services/service2.png differ diff --git a/site/source/_static/images/services/service3.png b/site/source/_static/images/services/service3.png new file mode 100644 index 0000000..8493aee Binary files /dev/null and b/site/source/_static/images/services/service3.png differ diff --git a/site/source/_static/images/services/service4.png b/site/source/_static/images/services/service4.png new file mode 100644 index 0000000..318a73d Binary files /dev/null and b/site/source/_static/images/services/service4.png differ diff --git a/site/source/_static/images/services/service5.png b/site/source/_static/images/services/service5.png new file mode 100644 index 0000000..20b6fbf Binary files /dev/null and b/site/source/_static/images/services/service5.png differ diff --git a/site/source/_static/images/services/service6.png b/site/source/_static/images/services/service6.png new file mode 100644 index 0000000..a27ae69 Binary files /dev/null and b/site/source/_static/images/services/service6.png differ diff --git a/site/source/_static/images/services/service7.png b/site/source/_static/images/services/service7.png new file mode 100644 index 0000000..f6e9797 Binary files /dev/null and b/site/source/_static/images/services/service7.png differ diff --git a/site/source/_static/images/services/service8.png b/site/source/_static/images/services/service8.png new file mode 100644 index 0000000..e2042ea Binary files /dev/null and b/site/source/_static/images/services/service8.png differ diff --git a/site/source/_static/images/services/service8.svg b/site/source/_static/images/services/service8.svg new file mode 100644 index 0000000..e2042ea Binary files /dev/null and b/site/source/_static/images/services/service8.svg differ diff --git a/site/source/_static/images/services/synapseconfig.png b/site/source/_static/images/services/synapseconfig.png new file mode 100644 index 0000000..c5a4223 Binary files /dev/null and b/site/source/_static/images/services/synapseconfig.png differ diff --git a/site/source/_static/images/setup/setup0.png b/site/source/_static/images/setup/setup0.png new file mode 100644 index 0000000..58df9e5 Binary files /dev/null and b/site/source/_static/images/setup/setup0.png differ diff --git a/site/source/_static/images/setup/setup1.png b/site/source/_static/images/setup/setup1.png new file mode 100644 index 0000000..5c148bd Binary files /dev/null and b/site/source/_static/images/setup/setup1.png differ diff --git a/site/source/_static/images/setup/setup2.png b/site/source/_static/images/setup/setup2.png new file mode 100644 index 0000000..bd1bb30 Binary files /dev/null and b/site/source/_static/images/setup/setup2.png differ diff --git a/site/source/_static/images/setup/setup3.png b/site/source/_static/images/setup/setup3.png new file mode 100644 index 0000000..d471b11 Binary files /dev/null and b/site/source/_static/images/setup/setup3.png differ diff --git a/site/source/_static/images/setup/setup4.png b/site/source/_static/images/setup/setup4.png new file mode 100644 index 0000000..40bf7a2 Binary files /dev/null and b/site/source/_static/images/setup/setup4.png differ diff --git a/site/source/_static/images/setup/setup5.png b/site/source/_static/images/setup/setup5.png new file mode 100644 index 0000000..b4797d3 Binary files /dev/null and b/site/source/_static/images/setup/setup5.png differ diff --git a/site/source/_static/images/ssl/android/droidLAN0.png b/site/source/_static/images/ssl/android/droidLAN0.png new file mode 100644 index 0000000..732031c Binary files /dev/null and b/site/source/_static/images/ssl/android/droidLAN0.png differ diff --git a/site/source/_static/images/ssl/android/droidLAN1.png b/site/source/_static/images/ssl/android/droidLAN1.png new file mode 100644 index 0000000..d11bb7b Binary files /dev/null and b/site/source/_static/images/ssl/android/droidLAN1.png differ diff --git a/site/source/_static/images/ssl/browser/brave_security.png b/site/source/_static/images/ssl/browser/brave_security.png new file mode 100644 index 0000000..fd7cdfa Binary files /dev/null and b/site/source/_static/images/ssl/browser/brave_security.png differ diff --git a/site/source/_static/images/ssl/browser/brave_security_settings.png b/site/source/_static/images/ssl/browser/brave_security_settings.png index 97f4e1f..ebec7fd 100644 Binary files a/site/source/_static/images/ssl/browser/brave_security_settings.png and b/site/source/_static/images/ssl/browser/brave_security_settings.png differ diff --git a/site/source/_static/images/ssl/browser/brave_settings.png b/site/source/_static/images/ssl/browser/brave_settings.png new file mode 100644 index 0000000..0bfee1a Binary files /dev/null and b/site/source/_static/images/ssl/browser/brave_settings.png differ diff --git a/site/source/_static/images/ssl/browser/chrome_authorities.png b/site/source/_static/images/ssl/browser/chrome_authorities.png new file mode 100644 index 0000000..87c6c89 Binary files /dev/null and b/site/source/_static/images/ssl/browser/chrome_authorities.png differ diff --git a/site/source/_static/images/ssl/browser/chrome_https.png b/site/source/_static/images/ssl/browser/chrome_https.png new file mode 100644 index 0000000..0b4dfc3 Binary files /dev/null and b/site/source/_static/images/ssl/browser/chrome_https.png differ diff --git a/site/source/_static/images/ssl/browser/chrome_s9ca.png b/site/source/_static/images/ssl/browser/chrome_s9ca.png new file mode 100644 index 0000000..52d5972 Binary files /dev/null and b/site/source/_static/images/ssl/browser/chrome_s9ca.png differ diff --git a/site/source/_static/images/ssl/browser/chrome_settings.png b/site/source/_static/images/ssl/browser/chrome_settings.png new file mode 100644 index 0000000..2a368b6 Binary files /dev/null and b/site/source/_static/images/ssl/browser/chrome_settings.png differ diff --git a/site/source/_static/images/ssl/browser/chrome_trust.png b/site/source/_static/images/ssl/browser/chrome_trust.png new file mode 100644 index 0000000..eda3327 Binary files /dev/null and b/site/source/_static/images/ssl/browser/chrome_trust.png differ diff --git a/site/source/_static/images/ssl/embassy_lan_setup.png b/site/source/_static/images/ssl/embassy_lan_setup.png new file mode 100644 index 0000000..c9ec9e8 Binary files /dev/null and b/site/source/_static/images/ssl/embassy_lan_setup.png differ diff --git a/site/source/_static/images/ssl/embassy_lan_setup0.png b/site/source/_static/images/ssl/embassy_lan_setup0.png new file mode 100644 index 0000000..2875585 Binary files /dev/null and b/site/source/_static/images/ssl/embassy_lan_setup0.png differ diff --git a/site/source/_static/images/ssl/embassy_lan_setup1.png b/site/source/_static/images/ssl/embassy_lan_setup1.png new file mode 100644 index 0000000..b360fa6 Binary files /dev/null and b/site/source/_static/images/ssl/embassy_lan_setup1.png differ diff --git a/site/source/_static/images/ssl/mobile/ssl_certificate_install_page.PNG b/site/source/_static/images/ssl/ios/ssl_certificate_install_page.png similarity index 100% rename from site/source/_static/images/ssl/mobile/ssl_certificate_install_page.PNG rename to site/source/_static/images/ssl/ios/ssl_certificate_install_page.png diff --git a/site/source/_static/images/ssl/mobile/ssl_ipad_cert_trust.PNG b/site/source/_static/images/ssl/ios/ssl_ipad_cert_trust.png similarity index 100% rename from site/source/_static/images/ssl/mobile/ssl_ipad_cert_trust.PNG rename to site/source/_static/images/ssl/ios/ssl_ipad_cert_trust.png diff --git a/site/source/_static/images/ssl/mobile/ssl_ipad_cert_trust_settings.PNG b/site/source/_static/images/ssl/ios/ssl_ipad_cert_trust_settings.png similarity index 100% rename from site/source/_static/images/ssl/mobile/ssl_ipad_cert_trust_settings.PNG rename to site/source/_static/images/ssl/ios/ssl_ipad_cert_trust_settings.png diff --git a/site/source/_static/images/ssl/mobile/ssl_ipad_general_settings.PNG b/site/source/_static/images/ssl/ios/ssl_ipad_general_settings.png similarity index 100% rename from site/source/_static/images/ssl/mobile/ssl_ipad_general_settings.PNG rename to site/source/_static/images/ssl/ios/ssl_ipad_general_settings.png diff --git a/site/source/_static/images/ssl/mobile/ssl_ipad_install_profile.PNG b/site/source/_static/images/ssl/ios/ssl_ipad_install_profile.png similarity index 100% rename from site/source/_static/images/ssl/mobile/ssl_ipad_install_profile.PNG rename to site/source/_static/images/ssl/ios/ssl_ipad_install_profile.png diff --git a/site/source/_static/images/ssl/mobile/ssl_ipad_profiles.PNG b/site/source/_static/images/ssl/ios/ssl_ipad_profiles.png similarity index 100% rename from site/source/_static/images/ssl/mobile/ssl_ipad_profiles.PNG rename to site/source/_static/images/ssl/ios/ssl_ipad_profiles.png diff --git a/site/source/_static/images/ssl/mobile/ssl_setup_app_advanced.PNG b/site/source/_static/images/ssl/mobile/ssl_setup_app_advanced.PNG deleted file mode 100644 index 19def4e..0000000 Binary files a/site/source/_static/images/ssl/mobile/ssl_setup_app_advanced.PNG and /dev/null differ diff --git a/site/source/_static/images/ssl/mobile/ssl_setup_app_complete.PNG b/site/source/_static/images/ssl/mobile/ssl_setup_app_complete.PNG deleted file mode 100644 index d077c5e..0000000 Binary files a/site/source/_static/images/ssl/mobile/ssl_setup_app_complete.PNG and /dev/null differ diff --git a/site/source/_static/images/ssl/windows/windows_download_cert.png b/site/source/_static/images/ssl/windows/windows_download_cert.png deleted file mode 100644 index 249eabe..0000000 Binary files a/site/source/_static/images/ssl/windows/windows_download_cert.png and /dev/null differ diff --git a/site/source/_static/images/tor/orbot_apps.png b/site/source/_static/images/tor/orbot_apps.png index f0b3e49..61a194d 100644 Binary files a/site/source/_static/images/tor/orbot_apps.png and b/site/source/_static/images/tor/orbot_apps.png differ diff --git a/site/source/_static/images/tor/orbot_vpn.png b/site/source/_static/images/tor/orbot_vpn.png index 8371b0f..e9af1e3 100644 Binary files a/site/source/_static/images/tor/orbot_vpn.png and b/site/source/_static/images/tor/orbot_vpn.png differ diff --git a/site/source/_static/images/tor/os_ff_settings.png b/site/source/_static/images/tor/os_ff_settings.png new file mode 100644 index 0000000..dad30c5 Binary files /dev/null and b/site/source/_static/images/tor/os_ff_settings.png differ diff --git a/site/source/_static/images/walkthrough/embassytab.png b/site/source/_static/images/walkthrough/embassytab.png new file mode 100644 index 0000000..00ad956 Binary files /dev/null and b/site/source/_static/images/walkthrough/embassytab.png differ diff --git a/site/source/_static/images/walkthrough/markettab.png b/site/source/_static/images/walkthrough/markettab.png new file mode 100644 index 0000000..c27418b Binary files /dev/null and b/site/source/_static/images/walkthrough/markettab.png differ diff --git a/site/source/_static/images/walkthrough/notiftab.png b/site/source/_static/images/walkthrough/notiftab.png new file mode 100644 index 0000000..b70659f Binary files /dev/null and b/site/source/_static/images/walkthrough/notiftab.png differ diff --git a/site/source/_static/images/walkthrough/reorder0.png b/site/source/_static/images/walkthrough/reorder0.png new file mode 100644 index 0000000..cddd847 Binary files /dev/null and b/site/source/_static/images/walkthrough/reorder0.png differ diff --git a/site/source/_static/images/walkthrough/reorder1.png b/site/source/_static/images/walkthrough/reorder1.png new file mode 100644 index 0000000..3529fc8 Binary files /dev/null and b/site/source/_static/images/walkthrough/reorder1.png differ diff --git a/site/source/_static/images/walkthrough/servicepage.png b/site/source/_static/images/walkthrough/servicepage.png new file mode 100644 index 0000000..77ce2be Binary files /dev/null and b/site/source/_static/images/walkthrough/servicepage.png differ diff --git a/site/source/_static/images/walkthrough/servicestab.png b/site/source/_static/images/walkthrough/servicestab.png new file mode 100644 index 0000000..4d6acfa Binary files /dev/null and b/site/source/_static/images/walkthrough/servicestab.png differ diff --git a/site/source/_static/images/walkthrough/sessions0.png b/site/source/_static/images/walkthrough/sessions0.png new file mode 100644 index 0000000..0dbd2bb Binary files /dev/null and b/site/source/_static/images/walkthrough/sessions0.png differ diff --git a/site/source/about/contact.rst b/site/source/about/contact.rst new file mode 100644 index 0000000..9b5124c --- /dev/null +++ b/site/source/about/contact.rst @@ -0,0 +1,35 @@ +.. _contact: + +========== +Contact Us +========== + +Community Channels +------------------ + +`Matrix Start9 Community `_ + +`Matrix Community Developers `_ + +`Matrix Start9 Tor Community (Tor required) `_ + +`Telegram `_ + +Social Media +------------ +`Mastodon `_ + +`Twitter `_ + +`GitHub `_ + +Email +----- + +General Inquiries - info@start9labs.com + +Support - support@start9labs.com + +Operations - ops@start9labs.com + +Affiliates - affiliate@start9labs.com diff --git a/site/source/about/index.rst b/site/source/about/index.rst new file mode 100644 index 0000000..fafed3e --- /dev/null +++ b/site/source/about/index.rst @@ -0,0 +1,84 @@ +.. _about: + +===== +About +===== + + Here you will find out how to join the community and give back! + +.. raw:: html + +
+ +
+ +.. topic-box:: + :title: Start9 Labs + :link: start9 + :icon: scylla-icon scylla-icon--comparison + :class: large-4 + :anchor: View + + Get acquainted with the Start9 principles. + +.. topic-box:: + :title: Roadmap + :link: roadmap + :icon: scylla-icon scylla-icon--roadmap + :class: large-4 + :anchor: See what's coming + + Check out the ambitious future of Start9. + +.. topic-box:: + :title: Privacy Policy + :link: privacy + :icon: scylla-icon scylla-icon--release-note + :class: large-4 + :anchor: View + + Take a look at our privacy policy. + +.. topic-box:: + :title: License + :link: license + :icon: scylla-icon scylla-icon--whitepapers + :class: large-4 + :anchor: View + + Read our product license agreement. + +.. topic-box:: + :title: Jobs + :link: jobs + :icon: scylla-icon scylla-icon--about-team + :class: large-4 + :anchor: Join us + + See what open jobs we have available. + +.. topic-box:: + :title: Contact Us + :link: contact + :icon: scylla-icon scylla-icon--contact-us + :class: large-4 + :anchor: Reach out + + Get in touch with any questions, concerns, or feedback. Your input is always welcome! + +.. raw:: html + +
+ +.. This is for the side navigation display +.. toctree:: + :maxdepth: 2 + :hidden: + + start9 + roadmap + privacy + license + team + jobs + contact diff --git a/site/source/about/jobs.rst b/site/source/about/jobs.rst new file mode 100644 index 0000000..2434c09 --- /dev/null +++ b/site/source/about/jobs.rst @@ -0,0 +1,16 @@ +.. _jobs: + +============== +Open Positions +============== + +Please check back soon!! + +.. Get a jerb ya bum + +.. Engineering Manager +.. ------------------- + + +.. Customer Support +.. ---------------- diff --git a/site/source/about/license.rst b/site/source/about/license.rst new file mode 100644 index 0000000..8542f30 --- /dev/null +++ b/site/source/about/license.rst @@ -0,0 +1,34 @@ +.. _license: + +======================= +Start9 Software License +======================= + +START9 PERSONAL USE LICENSE v1.0 +-------------------------------- + +This license governs the use of the accompanying Software. If you use the Software, you accept this license. If you do not accept the license, do not use the Software. + +1. **Definitions.** + 1. “Licensor” means the copyright owner, Start9 Labs, Inc, or its successor(s) in interest, or a future assignee of the copyright. + 2. “Source Code” means the preferred form of the Software for making modifications to it. + 3. “Object Code” means any non-source form of the Software, including the machine-language output by a compiler or assembler. + 4. “Distribute” means to convey or to publish and generally has the same meaning here as under U.S. Copyright law. + 5. “Sell” means practicing any or all of the rights granted to you under the License to provide to third parties, for a fee or other consideration (including without limitation fees for hosting or consulting/support services related to the Software), a product or service whose value derives, entirely or substantially, from the functionality of the Software. + +2. **Grant of Rights.** Subject to the terms of this license, the Licensor grants you, the licensee, a non-exclusive, worldwide, royalty-free copyright license to: + 1. Access, audit, copy, modify, compile, or distribute the Source Code or modifications to the Source Code. + 2. Run, test, or otherwise use the Object Code. + +3. **Limitations.** + 1. The grant of rights under the License will NOT include, and the License does NOT grant you the right to: + 1. Sell the Software or any derivative works based thereon. + 2. Distribute the Object Code. + 2. If you Distribute the Source Code, or if permission is separately granted to Distribute the Object Code, you expressly undertake not to remove, or modify, in any manner, the copyright notices attached to the Source Code, and displayed in any output of the Object Code when run, and to reproduce these notices, in an identical manner, in any distributed copies of the Software together with a copy of this license. If you Distribute a modified copy of the Software, or a derivative work based thereon, the work must carry prominent notices stating that you modified it, and giving a relevant date. + 3. The terms of this license will apply to anyone who comes into possession of a copy of the Software, and any modifications or derivative works based thereon, made by anyone. + +4. **Contributions.** You hereby grant to Licensor a perpetual, irrevocable, worldwide, non-exclusive, royalty-free license to use and exploit any modifications or derivative works based on the Source Code of which you are the author. + +5. **Disclaimer.** THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. LICENSOR HAS NO OBLIGATION TO SUPPORT RECIPIENTS OF THE SOFTWARE. + +.. note:: Last updated Dec 17, 2020, please see `Github `_ for latest edits diff --git a/site/source/about/privacy.rst b/site/source/about/privacy.rst new file mode 100644 index 0000000..94e76a6 --- /dev/null +++ b/site/source/about/privacy.rst @@ -0,0 +1,24 @@ +.. _privacy: + +============== +Privacy Policy +============== + +General Principles +------------------ + +At Start9 Labs, Inc (“Start9”, “we”, “us”, “our”), we believe that privacy is a basic human right and have designed our devices and software systems (“Products”) to uphold this principle. + +Start9 does not collect, does not want to collect, and has no reasonable means of collecting, your personal information from the usage of our Products. + +Voluntary Provisions +-------------------- + +When you visit start9.com or our other public websites, our visitors (“customers”, “you”, “your”) may voluntarily provide us with certain personal information, such as your name or email address, for the purpose of receiving updates about our Products, or to receive a response to an inquiry. We use this information internally and do not share it with third parties. You will only receive communications from us, email or otherwise, if you have explicitly opted in to such communications, and you may opt out at any time. + +Online Purchases +---------------- + +When you purchase Products from our website, we necessarily collect certain personal information, such as name, email, shipping address, and payment details, in order to facilitate the transaction and conduct shipment. We do not use the information for any other purpose. Start9 relies on third party payment processors and shipping partners to conduct transactions, and have no control over their collection or usage of your information. + +.. note:: This Privacy Policy was last updated on July 28, 2020 diff --git a/site/source/about/roadmap.rst b/site/source/about/roadmap.rst new file mode 100644 index 0000000..4ea38d4 --- /dev/null +++ b/site/source/about/roadmap.rst @@ -0,0 +1,252 @@ +.. _roadmap: + +======= +Roadmap +======= + +Under Construction +------------------ + +Please pardon our dust... + + +.. .. raw:: html + +..
+..
+..

Roadmap

+..

The Past, Present, and Future of Start9

+..
+ +..
+..
+..
+..
+ +..
+..

the beginning

+..

Start9 Labs founded

+.. 2019 +..
+..
+ +..
+..
+..
+ +..
+..

early days

+..

EmbassyOS v0.1.0

+..
    +..
  • Services Marketplace
  • +..
  • One-click installs of open source, self-hosted software
  • +..
+..

Services

+..
    +..
  • Bitcoin Core
  • +..
  • Bitwarden
  • +..
  • Cups messenger
  • +..
+.. 2020 Q1 / Q2 +..
+..
+ +..
+..
+..
+ +..
+..

laying the foundation

+..

EOS v0.2.0

+..
    +..
  • UI self-hosted on Embassy
  • +..
  • Automated dependency management
  • +..
  • User-generated private keys
  • +..
  • User-generated passwords
  • +..
  • Service data backups
  • +..
  • Wifi credentials for additional networks
  • +..
  • Many more 'under-the-hood' upgrades
  • +..
+..

Services

+..
    +..
  • File Browser
  • +..
+..

Consulate Browser released

+.. 2020 Q3 +..
+..
+ +..
+..
+..
+ +..
+..

forging lightning

+..

EOS v0.2.5

+..
    +..
  • Radical new dependency management and configuration system
  • +..
+..

Services

+..
    +..
  • BTC Proxy
  • +..
  • LND
  • +..
  • C-Lightning
  • +..
  • Ride the Lightning
  • +..
  • Spark Wallet
  • +..
  • Burn After Reading
  • +..
+.. 2020 Q4 +..
+..
+ +..
+..
+..
+ +..
+..

entering the fediverse

+..

EOS v0.2.10

+..
    +..
  • LAN support
  • +..
  • Service Actions
  • +..
  • User-generated private keys
  • +..
  • User-generated passwords
  • +..
+..

Services

+..
    +..
  • Mastodon
  • +..
  • BTCPay Server
  • +..
+..

Team expanded

+.. 2021 Q1 +..
+..
+ +..
+..
+..
+ +..
+..

new use-cases

+..

Services

+..
    +..
  • Sphinx Chat
  • +..
  • Embassy Pages
  • +..
  • Photoview
  • +..
+..

Further team expansion

+.. 2021 Q2 +..
+..
+ +..
+..
+..
+ +..
+..

rebirth of embassyos

+..

EOS v0.3.0

+..
    +..
  • Complete OS overhaul
  • +..
  • External drive support
  • +..
  • OS / Service data segregation
  • +..
  • New streamlined setup, migration, backup, & recovery processes
  • +..
  • Many, many more details coming soon
  • +..
+..

Services

+..
    +..
  • Thunderhub
  • +..
  • See wishlist below...
  • +..
+.. 2021 Q3 +..
+..
+ +..
+..
+..
+ +..
+..

coming soon...

+..

EOS v0.3.x

+..
    +..
  • Additional storage features
  • +..
  • Additional networking options
  • +..
  • Data encryption
  • +..
  • Remote backups
  • +..
  • Non-Anonymous Hidden Services
  • +..
+..

Expected Services*

+..
    +..
  • Bitcoin Wallet Tracker
  • +..
  • Mempool.Space
  • +..
  • Monero
  • +..
  • See wishlist below...
  • +..
+.. 2021 Q4 +..
+..
+ +..
+..
+..
+ +..
+..

on the horizon

+..

New Embassy form factor

+..

Expected Services*

+..
    +..
  • Nextcloud
  • +..
  • Wireguard
  • +..
  • PiHole
  • +..
  • See wishlist below...
  • +..
+.. 2022 Q1 +..
+..
+ +..
+..
+..
+ +..
+..

current research & development

+..

New devices

+..

Multi-Embassy syncing

+..

Advanced networking & mesh capabilities

+.. 2022 and Beyond +..
+..
+..
+ +..
+..
+..
+..

*Start9 Services Wishlist

+..

It is difficult to predict new service releases as some are released in an on-demand fashion, others might be determined +.. to be a good or bad fit in the moment, and still others can be packaged up by community developers at any time! We do pay +.. close attention to the community's desire for certain services, which can be monitored on this unofficial list.

+..

Services

+..
    +..
  • Firefox Sync server
  • +..
  • IPFS
  • +..
  • Home Assistant
  • +..
  • Conduit Matrix implementation
  • +..
  • Zeronet
  • +..
  • Wordpress
  • +..
  • Plex Media Server
  • +..
+..

Miscellaneous

+..
    +..
  • 2FA hardware key servers
  • +..
  • Bitcoin mixing
  • +..
  • Wikis / notes
  • +..
  • Security camera monitoring
  • +..
  • Search engine
  • +..
+..

To better understand the full potential of Embassy, check out this list of self-hosted services. All of these open-source projects can be made to work with the Start9 Labs Embassy platform.

+..

Is there a particular service you want to see? Contact us and let us know.

+..
+..
+..
+..
diff --git a/site/source/about/start9.rst b/site/source/about/start9.rst new file mode 100644 index 0000000..1d6e56b --- /dev/null +++ b/site/source/about/start9.rst @@ -0,0 +1,61 @@ +.. _start9: + +=========== +Start9 Labs +=========== + +Privacy and free speech are fundamental human rights and essential ingredients for a free society. Human history demonstrates that, when entrusted to others, these rights are invariably denied, resulting in great suffering. As such, it is necessary for individuals to protect their own privacy and right to speak freely. Fortunately, modern technologies, in the form of personal computers, encryption, and open, decentralized network protocols such as the Internet and Bitcoin, make this a real possibility. What is needed is a revolution in personal computing away from the current, hosted, custodial model that breeds dependency and corruption, towards a decentralized model, where individuals have absolute control over their data and communications. + +.. _mission: + +The Mission +----------- +To accelerate the transition of power back to the individual via technology + +.. _values: + +Values +------ +Decentralization - While centralization can offer some efficiency gains, the costs are simply too high. Decentralized systems afford more power (and responsibility) to the users. More nodes of control means more accountability on each node. Start9 will make it easier for anyone to act as a "check and balance" in the Internet, as opposed to being a passive "user" at the whims of more powerful entities. + +Openness - The power of open systems has been well proven over the years. Start9 will, to the best of our ability, keep our code, processes, and intentions transparant. This allows others to assist in this tremendous undertaking, or audit what we are doing to make sure it is in line with our Mission, Values, and Virtues. + +Community - Start9 IS the community. Start9 will help build a worldwide movement of empowered individuals for the cause of freedom through technology. Start9 will lead by example, without desire for control. This will always be as important as our technology itself. + +Dignity - Start9 strongly believes that respect is a basic decency that each individual deserves, regardless of their background or circumstance. We will do our best to treat all users in a timely, upstanding manner. + +Independence - In order for individuals to have symbiotic relationships, it is important that they not have an unhealthy reliance on one another. Start9 will help its users "Declare Digital Independence" from 'Big Tech' by giving them back control over their data and software. From this position, users will decide when and how they want to share their data, receive data from others, communicate, and transact. This will help bring balance to the digital realm, as well as the physical. + +.. _virtues: + +Virtues +------- +Audacity - Start9 will not just produce a freedom-oriented technology stack, it will do so **boldly**. We will not apologize for, nor shy away from the disruptions that our tools will create in the industry. + +Tenacity - Start9 is determined to manifest our values in the world and will do so ferociously. We will create resilient tools and push the boundaries of what is possible for individually-controlled tools. + +Excellence - We will create the best possible tools that we can, period. We will often release a MVP (Minimum Viable Product) to prove a concept and then improve upon it, but we will never release a half-baked solution. "Do it right, or don't do it at all." + +Courtesy - When interacting with a team member, you will always be treated with kindness and empathy. We endeavour to empower people through education, regardless of their technical skill level. If you ever feel that you were not treated courteously, please let a team member know. + +Generosity - + +Fortitude - Start9 fully expects to encounter adversity in the course of duty to its mission. We will face this with courage and persistance against all odds and never back down. + +Integrity - With help from the community, Start9 will stay accountable and dedicated to the words written on this page. Honesty and fairness will remain paramount in any decision we make. + +.. _start9-origin: + +The Origin of “Start9” (the name) +--------------------------------- +Pokemon is a game for Gameboy. Twitch is a live video streaming app. “Twitch Plays Pokemon” was a popular phenomenon where Twitch users would collaborate to play a SHARED game of Pokemon on Gameboy. Here’s how it worked: + +Participants would use the Twitch message board to enter commands that then got executed in the gameplay. For example, if someone entered the command "right”, that would cause the player to move 1 space to the right. Commands would execute immediately after they were received, and anyone could enter a valid command at any time. You can think of Twitch Plays Pokemon as the more practical equivalent of placing a Gameboy in the middle of a crowded room and telling everyone to push buttons at the same time. As you might expect, the gameplay of Twitch Plays Pokemon was quite “twitchy”, but in a very "infinite monkey theory" way, progress could eventually be made. + +In an effort to streamline play, a new game mode was devised in which players would “vote” for the next command and, every 4 seconds, whatever command received the most votes over the previous 4 seconds would execute in the game. Also introduced in this mode was the ability to attach multipliers to a command, such that the command would execute that number of times. For example, “right2” would cause the player to move 2 spaces to the right. “right3” would cause the player to move 3 spaces to the right, and so on. The highest number any participant could place after a command was 9, meaning whatever command they entered would execute 9 times. As you might expect, gameplay in this mode was less chaotic, more efficient, but it also meant each participant had less direct and immediate influence over the game. If a group of even 5-10 got together and colluded on their votes, they could practically take over the game and make contrarian ideas irrelevant. The new game mode was called “Democracy”, and the original game mode became known as “Anarchy”. Which game mode was engaged was itself governed by a democratic process: if more participants wanted to play in Democracy mode, then Democracy mode engaged; if more wanted to play in Anarchy mode, then Anarchy mode engaged. + +To summarize: in Anarchy mode, everyone had equal influence over the game, but progress was slow and clunky. In Democracy mode, progress was fast and efficient, but colluding groups could marginalize individual participants and ruin the game for them. + +So…individual participants discovered a means of effective protest whenever Democracy mode became suffocating, but they could not garner enough votes to switch back to Anarchy mode. Someone would type the command “start9” into the comments. This command meant “open the start menu 9 times in a row”, which, as you might imagine, would be enormously disruptive if executed. The entire screen would be blocked by the start menu, over and over. Typing “start9” was a participant’s way of signaling to other participants that they felt marginalized by Democracy mode, and they were ready to fight back. If others felt the same, they could also begin typing “start9” - then, sure enough, “start9” would finally receive more votes than the colluding group’s command, and the menu opening would begin. Every 4 seconds, the menu would open 9 times…again, and again, and again…until finally, the colluding group would be forced to either cooperate in reverting the game mode back to Anarchy mode or quit altogether. + +Playing in Anarchy mode was impractical, but people did not want to play a game where they had no voice, where a group of insiders had taken total control. And so “start9” became the battle cry of the individual, the out-group, a means of signaling to other individuals that it was time to fight back against the usurpers - to use their own rules against them, until there was no alternative but to return control to the individual participants. diff --git a/site/source/about/team.rst b/site/source/about/team.rst new file mode 100644 index 0000000..fd54ffc --- /dev/null +++ b/site/source/about/team.rst @@ -0,0 +1,7 @@ +.. _team: + +=============== +The Start9 Team +=============== + +Please check back soon!! diff --git a/site/source/conf.py b/site/source/conf.py index 5407171..1dfd11c 100644 --- a/site/source/conf.py +++ b/site/source/conf.py @@ -32,6 +32,7 @@ needs_sphinx = "1.8" extensions = [ "sphinx.ext.autodoc", "sphinx.ext.todo", + "sphinx.ext.viewcode", "sphinx.ext.mathjax", "sphinx.ext.extlinks", "sphinx_scylladb_theme", @@ -69,7 +70,7 @@ notfound_template = "404.html" TAGS = [] smv_tag_whitelist = multiversion_regex_builder(TAGS) # Whitelist pattern for branches (set to None to ignore all branches) -BRANCHES = ["versioning", "master"] +BRANCHES = ["integration/0.3.0", "master"] smv_branch_whitelist = multiversion_regex_builder(BRANCHES) # Defines which version is considered to be the latest stable version. # Must be listed in smv_tag_whitelist or smv_branch_whitelist. @@ -96,7 +97,7 @@ html_theme_options = { "banner_button_text": "Learn more", "banner_button_url": "https://docs.start9.com/latest", "banner_icon_path": "_static/logo.png", - "banner_title_text": "Start9 Docs 0.3.0 is now released 🥳", + "banner_title_text": "Start9 0.3.0 is now released 🥳", "hide_edit_this_page_button": "false", "hide_sidebar_index": "true", "hide_banner": "true", @@ -106,7 +107,6 @@ html_theme_options = { "site_description": "Start9 Product Documentation and Education Guides", } - # Last updated format html_last_updated_fmt = "%d %b %Y" @@ -117,10 +117,10 @@ templates_path = ['_templates'] html_sidebars = {"**": ["side-nav.html"]} # Output file base name for HTML help builder. -htmlhelp_basename = "Start9Documentationdoc" +htmlhelp_basename = "Start9Documentation" # URL which points to the root of the HTML documentation. -html_baseurl = "https://docs.start9.com" +html_baseurl = "https://start9.com" # Dictionary of values to pass into the template engine’s context for all pages html_context = {"html_baseurl": html_baseurl} @@ -134,4 +134,6 @@ html_logo = "_static/logo.png" html_title = "Docs" -html_favicon = "_static/favicon.ico" \ No newline at end of file +html_favicon = "_static/favicon.ico" + +html_js_files = ["custom.js"] \ No newline at end of file diff --git a/site/source/contribute/decentralize.rst b/site/source/contribute/decentralize.rst new file mode 100644 index 0000000..6218ee1 --- /dev/null +++ b/site/source/contribute/decentralize.rst @@ -0,0 +1,10 @@ +.. _decentralize: + +============ +Decentralize +============ + +EmbassyOS allows users to swap to an alternative Marketplace in case they want a service not offered in the official `Start9 Marketplace `_, would like a backup registry, or have for some reason lost trust in :ref:`Start9 `. + +- In order to change to an unofficial Marketplace, you can see our documentaion :ref:`here `. +- If you'd like to run your own Marketplace, and help decentralize the ecosystem, please see our guide `here `_. diff --git a/site/source/contribute/index.rst b/site/source/contribute/index.rst new file mode 100644 index 0000000..42e01c2 --- /dev/null +++ b/site/source/contribute/index.rst @@ -0,0 +1,63 @@ +.. _contribute: + +========== +Contribute +========== + + Here you will find out how to join the community and give back! + +.. raw:: html + +
+ +
+ +.. topic-box:: + :title: Teach + :link: teach + :icon: scylla-icon scylla-icon--tech-talks + :class: large-4 + :anchor: Join the movement + + Share your knowledge with the community. + +.. topic-box:: + :title: Provide Support + :link: provide-support + :icon: scylla-icon scylla-icon--support + :class: large-4 + :anchor: Help + + Learn how you can help provide community support. + +.. topic-box:: + :title: Decentralize + :link: decentralize + :icon: scylla-icon scylla-icon--cloud + :class: large-4 + :anchor: View + + See how you can aid in decentralizing our architecture. + +.. topic-box:: + :title: Promote + :link: promote + :icon: scylla-icon scylla-icon--summit + :class: large-4 + :anchor: Join + + Become an affiliate and help promote Start9. + +.. raw:: html + +
+ +.. This is for the side navigation display +.. toctree:: + :maxdepth: 2 + :hidden: + + teach + provide-support + decentralize + promote diff --git a/site/source/contribute/promote.rst b/site/source/contribute/promote.rst new file mode 100644 index 0000000..6b0b4ad --- /dev/null +++ b/site/source/contribute/promote.rst @@ -0,0 +1,11 @@ +.. _promote: + +======= +Promote +======= + +If you have an audience of any kind, you could qualify for Start9's affiliate program. + +- Get a unique affilitate code to pass along to your audience. +- A discount for your audience, and a kickback for you, if you choose. +- Email us at affiliate@start9labs.com for more information. diff --git a/site/source/contribute/provide-support.rst b/site/source/contribute/provide-support.rst new file mode 100644 index 0000000..0ec2aaa --- /dev/null +++ b/site/source/contribute/provide-support.rst @@ -0,0 +1,11 @@ +.. _provide-support: + +=============== +Provide Support +=============== + +We aim to offer world-class support, but we need all the help we can get! + +- If you see a question in one of our :ref:`Community Channels ` that has not been answered yet, answer it! We ask that you please be certain that you know the correct answer. You can always verify with a team member first or direct the inquirer to the relevant section of these docs. +- Participate in our `Github Discussions `_ channel. +- If you would like to take on a more significant role in Support, please reach out to us at support@start9labs.com, or in one of our :ref:`Community Channels `. diff --git a/site/source/contribute/teach.rst b/site/source/contribute/teach.rst new file mode 100644 index 0000000..7cfcaf6 --- /dev/null +++ b/site/source/contribute/teach.rst @@ -0,0 +1,11 @@ +.. _teach: + +===== +Teach +===== + +One of the most important things an individual can do to help the movement is to get the word out about sovereign computing and help others learn how to declare their own independence. + +- Write reviews or blog posts on Medium, Substack, Reddit, Mastodon, Twitter, etc. +- Contribute to our `Documentation `_, whether you find a typo, have an FAQ to add, or tutorial to improve. You can also find a link to submit a fix or report an issue near the top of this page (labeled ``Contribute``). +- Create videos - how-tos, comparisons, unboxings, and reviews are all helpful. diff --git a/site/source/contributing/embassyos.rst b/site/source/contributing/embassyos.rst deleted file mode 100644 index e096bb4..0000000 --- a/site/source/contributing/embassyos.rst +++ /dev/null @@ -1,14 +0,0 @@ -.. _embassyos_contribute: - -********* -EmbassyOS -********* - -We ❤️ contributions! - -Please follow the guide `here `_ and reach out to the `community dev `_ channel on Matrix with any questions. - -.. role:: raw-html(raw) - :format: html - -:raw-html:`
` \ No newline at end of file diff --git a/site/source/contributing/services/backups.rst b/site/source/contributing/services/backups.rst deleted file mode 100644 index 87d6e6b..0000000 --- a/site/source/contributing/services/backups.rst +++ /dev/null @@ -1,29 +0,0 @@ -.. _service_backups: - -*************** -Service Backups -*************** - -Everything within the root of the mounted volume directory will be stored in an EmbassyOS backup. This includes the config (config.yaml) and properties (stats.yaml) files, as well as any other persisted data within the volume directory. - -For restoration purposes, it might be beneficial to ignore certain files or folders. For instance, ignore the shared/public folder that is mounted for dependencies that expose this feature as it causes data inconsistencies on restore. - -In this case, create a `.backupignore` file. This file contains a list of relative paths to the ignored files. - - -Example -======= - -The `btcpayserver wrapper `_ demonstrates a good use of a backupignore template. - -Ultimately, ``/datadir/.backupignore`` gets populated with: - -.. code:: - - /root/volumes/btcpayserver/start9/public - /root/volumes/btcpayserver/start9/shared - -.. role:: raw-html(raw) - :format: html - -:raw-html:`
` \ No newline at end of file diff --git a/site/source/contributing/services/docker.rst b/site/source/contributing/services/docker.rst deleted file mode 100644 index 823ff96..0000000 --- a/site/source/contributing/services/docker.rst +++ /dev/null @@ -1,40 +0,0 @@ -.. _service_docker: - -****************** -Service Dockerfile -****************** - -Dockerfile -========== - -This purpose of the Dockerfile is to define how to build the image for the service. It declares the environment and building stages. -The Dockerfile is responsible for mounting the service application to whatever volume the manifest specifies, typically ``/root/.``. - -Since the build requires specific arm runtime environments, these base images can be imported into the Dockerfile as a starting point so the base system does not need to be completely redefined. This enables importing a specific build environment version that encapsulates any necessary libraries for running the service build, eg. golang, rust. - -For instance: - -``FROM alpine:3.12`` - -``FROM arm32v7/alpine`` - -``FROM arm32v7/golang:alpine`` - -We recommended using ``alpine`` since it produces the smallest image. We try to keep the image under 100MB when possible. - -Entry-point -=========== - -The ``docker_entrypoint.sh`` defines what to do when the service application starts. - -It consists of a bash script that completes any environment setup (eg. creating folder substructure), sets any environment variables, and executes the run command. The only required feature of this file is to execute the run commands for EmbassyOS. - -Example -======= - -The `LND wrapper `_ features a well defined Dockerfile, for example. - -.. role:: raw-html(raw) - :format: html - -:raw-html:`
` \ No newline at end of file diff --git a/site/source/contributing/services/index.rst b/site/source/contributing/services/index.rst deleted file mode 100644 index dca0b86..0000000 --- a/site/source/contributing/services/index.rst +++ /dev/null @@ -1,44 +0,0 @@ -.. _service_pacakge: - -*********************** -Service Packaging Guide -*********************** - -Welcome! If you are here, you are interested in becoming part of the mission to change the future of personal computing. This guide will take you through the process of packaging a service for EmbassyOS, a novel, self-hosted, sovereign computing platform. - -A service in this context is any open source project that has been bundled into the appropriate format to run on EmbassyOS. By configuring and packaging a project according to this guide, it can be installed on EmbassyOS with no command line or technical expertise required. This opens up an entire platform for self-hosted software to run independent of third parties in a completely private and sovereign way for all individuals. - -This guide is technical, but breaks down the steps for deployment. If you have any feedback or questions concerning this guide, please don't hesitate to `reach out `_ or submit a pull request with alterations. - -To start, you will need to acquire EmbassyOS for testing the packaged service. This can be done by: - -- building from `source `_ -- following the :ref:`DIY ` guide -- :ref:`purchasing ` the ready to run personal server - -While you are waiting to receive or assemble a device, you can begin the process of packaging a project. The sections below outline these steps in detail. - -Happy building! - -.. toctree:: - :maxdepth: 1 - - Overview - Wrapper - Manifest - Docker - Makefile - Config - Properties - Instructions - Backups - -Submission process ------------------- - -When you have built and tested your project for EmbassyOS, please send Start9 a submission with the project repository to ``dev@start9labs.com``. After being reviewed for security and compatibility, the service will be deployed to the marketplace and available for all EmbassyOS users to download. - -.. role:: raw-html(raw) - :format: html - -:raw-html:`
` \ No newline at end of file diff --git a/site/source/contributing/services/instructions.rst b/site/source/contributing/services/instructions.rst deleted file mode 100644 index 103bfa5..0000000 --- a/site/source/contributing/services/instructions.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. _service_instructions: - -************************************ -Service Instructions & Documentation -************************************ - -Within each wrapper repository should exist a ``docs`` directory. This folder should include any pertinent documentation, instructions, external integrations, or other details about the service that users or developers might find relevant. - -If an ``instructions.md`` file is included, this markdown formatted file will be rendered in the "Instructions" tab within the service detail menu on EmbassyOS: - -.. figure:: /_static/images/service/bitcoin_instructions.png - :width: 80% - :alt: Bitcoin Instructions - -Example -======= - -The `bitcoind wrapper `_ demonstrates a good use of instructions and external integrations. - -.. role:: raw-html(raw) - :format: html - -:raw-html:`
` \ No newline at end of file diff --git a/site/source/contributing/services/manifest.rst b/site/source/contributing/services/manifest.rst deleted file mode 100644 index ea1de68..0000000 --- a/site/source/contributing/services/manifest.rst +++ /dev/null @@ -1,352 +0,0 @@ -.. _service_manifest: - -**************** -Service Manifest -**************** - -Overview -======== - -This file describes the service and it's requirements. It is used to: - -- create a listing in the marketplace -- denote any installation considerations -- define dependency requirements - -Each time a service is updated, the manifest should be updated to include the new version, release notes, and any pertinent updates to the install, uninstall, or restoration flows. All this information is displayed in the marketplace listing, and the optionally denoted alerts will be displayed when appropriate to provide the user with more information. - -For instance, `LND displays alerts `_ around restoration since data will be overwritten. - -There is nothing you need to do as a developer to set up Tor for running a service. This is *completely* handled by EmbassyOS - a Tor address will be automatically generated when the service is installed. Just define the port and which version of Tor the service needs in this manifest file! You do, however, need to ensure the service is in fact capable of running over Tor. - -The manifest is also responsible for outlining service :ref:`dependencies `. By defining rules using the :ref:`EmbassyOS DSL specification `, users can easily and selectively install, uninstall, and update any service without getting stuck in dependency hell. EmbassyOS presents this information in a polished install/uninstall/update wizard, so there's no need for editing configuration files or jumping into the command line. For you as a developer, this simply means populating this key in the manifest! - -Formatting -========== - -- Serialization language:``.yaml`` -- Case style: ``kebab-case`` - -Type definitions -================ -Below are the types and sub-type definitions, with necessary elaborations. Any item that contains ``Option<>`` is an optional field. - -.. code:: yaml - - # manifest version compatibility ie. v0 (this is currently the only option) - compat: v0 - # service id, used for uniqueness and BE identification ie. bitcoind - id: String - # version number of the release conforming to the semantic versioning scheme - version: String - # display name of service - title: String - # an object containing a short and long description of the service. TODO character lengths - description: - short: String - long: String - # a link to the release tag notes in GitHub, or a short description TODO character length - release-notes: String - # a notification message that should caution the user with any service particularities, eg. beta tech - install-alert: Option - # a notification message warning users of potential problems with uninstalling, such as dependency failures or data loss - uninstall-alert: Option - # a notification message containing warning or details about backup restoration - restore-alert: Option - # denoting the existence of instructions.md - has-instructions: Boolean - # required semver version range of EmbassyOS to run service eg. ">=1.0.0" - os-version-required: VersionReq - # recommended semver version range of EmbassyOS to run service eg."^1.0.0" - os-version-recommended: VersionReq - # a list of objects of ports to run the service on localhost and tor - ports: - - internal: String - tor: String - # currently only tar is supported - image: - type: String - # shared memory container size - shm-size-mb: Option - # path to mount the image on the volume, ie: /root/bitcoind - mount: String - # read only data exposed to dependencies (path is relevant to mount) - public: Option - # shared filesystem segment with each of your dependencies (path is relevant to mount) - shared: Option - # deprecated - will default to an empty vector - assets: [] - # version of tor support, eg. v2, v3 - hidden-service-version: String - # A map of dependent services, see below for more details - dependencies: Dependencies - -.. _dependencies: - -Dependencies -============ - -Many services depend on other libraries and services on EmbassyOS (such as Bitcoin), sometimes even a particular version of those services, which need to be specified by the developers so that EmbassyOS can handle installing these dependencies under the hood. - -The key of each field in the dependencies object is the lowercase, kebab-case app ID of the service that is depended on. Each dependency contains a set of rules that need to be fulfilled as true if the dependency is to be properly installed. The "config rules" here are for auto-configuring dependencies - the action defined by the rule will be executed if the service is auto configured with defaults during initial setup. This simplifies and streamlines the user experience. The interface should provide suggestions for the behavior if the denoted rule cannot be met with previous configurations. - -Let's take this snippet for example: - -.. code:: yaml - - ... - dependencies: - btc-rpc-proxy: - version: "^0.1.0" - optional: Can configure an external bitcoin node. - description: Required for fetching validated blocks. - config: - - rule: '''users.*.name = "c-lightning"' - description: 'Must have an RPC user named "c-lightning"' - suggestions: - - PUSH: - to: 'users' - value: - name: c-lightning - ... - -.. role:: raw-html(raw) - :format: html - -:raw-html:`
` - -The service ``btc-rpc-proxy`` is a dependency of the service ``c-lightning``. ``c-lightning`` requires it to be installed at a version >=0.1.0 <0.2.0. There exists a rule that states the config option ``user.name`` must be equal to "c-lightning". If this value does not exist for ``user.name`` when accessed, ``PUSH`` the value "c-lighting" to the field. This all takes place during the initial service configuration, before the service is started for the first time. - -.. note:: - Dependency config rules are processed in order. - -Type definitions ----------------- - -Types for ``manifest.yaml`` fields: - -.. code:: typescript - - interface Dependencies [{ - serviceId: DepInfo - }] - - interface DepInfo { - version: String // ie. 0.11.1.1 - optional?: String, - description?: String, - config: [ConfigRule], - ], - } - - interface ConfigRule { - rule: String, // ie. 'users.*.name = "lnd" - description: String, - suggestions: [SuggestionVariant] - } - - interface SuggestionVariant { - SET: { - var: String, - to: SetVariant, - }, - DELETE: { - src: String, - }, - PUSH: { - to: String, - value: Value, - }, - } - - interface SetVariant { - to: Option, - to-value: Option, // ie. true/false - to-entropy: Option<{ - charset: String // ie. 'a-z,A-Z,0-9' - len: number - }> - } - -.. role:: raw-html(raw) - :format: html - -:raw-html:`
` - -Examples --------- - -Actual ``manifest.yaml`` files for existing services: - -LND -^^^ - -.. code:: yaml - - compat: v0 - id: lnd - version: 0.11.1.1 - title: Lightning Network Daemon - description: - short: "A complete implementation of a Lightning Network node by Lightning Labs" - long: "LND fully conforms to the Lightning Network specification (BOLTs). BOLT stands for: Basis of Lightning Technology. In the current state lnd is capable of: creating channels, closing channels, managing all channel states (including the exceptional ones!), maintaining a fully authenticated+validated channel graph, performing path finding within the network, passively forwarding incoming payments, sending outgoing onion-encrypted payments through the network, updating advertised fee schedules, and automatic channel management (autopilot)." - release-notes: https://github.com/lightningnetwork/lnd/releases/tag/v0.11.1-beta - ports: - - internal: 8080 - tor: 8080 - - internal: 9735 - tor: 9735 - - internal: 9911 - tor: 9911 - - internal: 10009 - tor: 10009 - image: - type: tar - mount: /root/.lnd - public: public - has-instructions: true - os-version-required: ">=0.2.8" - os-version-recommended: ">=0.2.8" - install-alert: | - READ CAREFULLY! LND and the Lightning Network are considered beta software. Please use with caution and do not risk more money than you are willing to lose. We encourage frequent backups. If for any reason, you need to restore LND from a backup, your on-chain wallet will be restored, but all your channels will be closed and their funds returned to your on-chain wallet, minus fees. It may also take some time for this process to occur. - uninstall-alert: "READ CAREFULLY! Uninstalling LND will result in permanent loss of data, including its private keys for its on-chain wallet and all channel states. Please make a backup if you have any funds in your on-chain wallet or in any channels. Recovering from backup will restore your on-chain wallet, but due to the architecture of the Lightning Network, your channels cannot be recovered. All your channels will be closed and their funds returned to your on-chain wallet, minus fees. \n" - restore-alert: | - Restoring LND will overwrite its current data, including its on-chain wallet and channels. Any channels opened since the last backup will be forgotten and may linger indefinitely, and channels contained in the backup will be closed and their funds returned to your on-chain wallet, minus fees. - assets: [] - hidden-service-version: v3 - dependencies: - btc-rpc-proxy: - version: "^0.2.4" - optional: Can alternatively configure an external bitcoin node. - description: Used to fetch validated blocks. - config: - - rule: '''users.*.name = "lnd"' - description: 'Must have an RPC user named "lnd"' - suggestions: - - PUSH: - to: "users" - value: - name: lnd - allowed-calls: [] - - SET: - var: 'users.[first(item => ''item.name = "lnd")].password' - to-entropy: - charset: "a-z,A-Z,0-9" - len: 22 - - rule: '''users.[first(item => ''item.name = "lnd")].allowed-calls.* = "getinfo"' - description: 'RPC user "lnd" must have "getinfo" enabled' - suggestions: - - PUSH: - to: 'users.[first(item => ''item.name = "lnd")].allowed-calls' - value: "getinfo" - - rule: '''users.[first(item => ''item.name = "lnd")].allowed-calls.* = "getbestblockhash"' - description: 'RPC user "lnd" must have "getbestblockhash" enabled' - suggestions: - - PUSH: - to: 'users.[first(item => ''item.name = "lnd")].allowed-calls' - value: "getbestblockhash" - - rule: '''users.[first(item => ''item.name = "lnd")].allowed-calls.* = "gettxout"' - description: 'RPC user "lnd" must have "gettxout" enabled' - suggestions: - - PUSH: - to: 'users.[first(item => ''item.name = "lnd")].allowed-calls' - value: "gettxout" - - rule: '''users.[first(item => ''item.name = "lnd")].allowed-calls.* = "getblockchaininfo"' - description: 'RPC user "lnd" must have "getblockchaininfo" enabled' - suggestions: - - PUSH: - to: 'users.[first(item => ''item.name = "lnd")].allowed-calls' - value: "getblockchaininfo" - - rule: '''users.[first(item => ''item.name = "lnd")].allowed-calls.* = "sendrawtransaction"' - description: 'RPC user "lnd" must have "sendrawtransaction" enabled' - suggestions: - - PUSH: - to: 'users.[first(item => ''item.name = "lnd")].allowed-calls' - value: "sendrawtransaction" - - rule: '''users.[first(item => ''item.name = "lnd")].allowed-calls.* = "getblockhash"' - description: 'RPC user "lnd" must have "getblockhash" enabled' - suggestions: - - PUSH: - to: 'users.[first(item => ''item.name = "lnd")].allowed-calls' - value: "getblockhash" - - rule: '''users.[first(item => ''item.name = "lnd")].allowed-calls.* = "getblock"' - description: 'RPC user "lnd" must have "getblock" enabled' - suggestions: - - PUSH: - to: 'users.[first(item => ''item.name = "lnd")].allowed-calls' - value: "getblock" - - rule: '''users.[first(item => ''item.name = "lnd")].allowed-calls.* = "getblockheader"' - description: 'RPC user "lnd" must have "getblockheader" enabled' - suggestions: - - PUSH: - to: 'users.[first(item => ''item.name = "lnd")].allowed-calls' - value: "getblockheader" - - rule: '''users.[first(item => ''item.name = "lnd")].allowed-calls.* = "estimatesmartfee"' - description: 'RPC user "lnd" must have "estimatesmartfee" enabled' - suggestions: - - PUSH: - to: 'users.[first(item => ''item.name = "lnd")].allowed-calls' - value: "estimatesmartfee" - - rule: '''users.[first(item => ''item.name = "lnd")].allowed-calls.* = "getnetworkinfo"' - description: 'RPC user "lnd" must have "getnetworkinfo" enabled' - suggestions: - - PUSH: - to: 'users.[first(item => ''item.name = "lnd")].allowed-calls' - value: "getnetworkinfo" - - rule: 'users.[first(item => ''item.name = "lnd")].fetch-blocks?' - description: 'RPC user "lnd" must have "Fetch Blocks" enabled' - suggestions: - - SET: - var: 'users.[first(item => ''item.name = "lnd")].fetch-blocks' - to-value: true - bitcoind: - version: "^0.21.0" - optional: Can alternatively configure an external bitcoin node. - description: Used to subscribe to new block events. - config: - - rule: "zmq-enabled?" - description: "Must have an ZeroMQ enabled" - suggestions: - - SET: - var: "zmq-enabled" - to-value: true - -Cups -^^^^ - -.. code:: yaml - - compat: v0 - id: cups - version: "0.3.6" - title: "Cups Messenger" - description: - short: "Real private messaging" - long: "Cups is a private, self-hosted, peer-to-peer, Tor-based, instant messenger. Unlike other end-to-end encrypted messengers, with Cups on the Embassy there are no trusted third parties." - release-notes: | - Features - - Adds instructions defined by EmbassyOS 0.2.4 instructions feature - ports: - - internal: 59001 - tor: 59001 - - internal: 80 - tor: 80 - image: - type: tar - mount: /root - has-instructions: true - os-version-required: ">=0.2.4" - os-version-recommended: ">=0.2.4" - assets: - - src: httpd.conf - dst: "." - overwrite: true - - src: www - dst: "." - overwrite: true - hidden-service-version: v3 - -.. role:: raw-html(raw) - :format: html - -:raw-html:`
` \ No newline at end of file diff --git a/site/source/contributing/services/overview.rst b/site/source/contributing/services/overview.rst deleted file mode 100644 index ab9912f..0000000 --- a/site/source/contributing/services/overview.rst +++ /dev/null @@ -1,103 +0,0 @@ -.. _service_package_overview: - -************************ -Service Package Overview -************************ - -There are several main components that comprise a service package for EmbassyOS. This overview will introduce them and following sections will dive into technical specifics. - -First, let's get your system setup with the necessary software dependencies. - -Environment Setup -================= - -At minimum, ``docker``, ``docker-buildx``, and ``appmgr`` are required. The rest of the recommendations serve to optimize the build process. - -Recommended Dependencies ------------------------- - - `docker `_ - - `docker-buildx `_ - - `appmgr `_ - - `cargo `_ - - `yq (version 4) `_ - - `make `_ - - `musl `_ - -Package Components -================== - -Image ------ - -Each service boils down to a Docker image. We're not going to dive into Docker specifics in this guide, since there exists tons of `resources `_ for developing with this containerization tool. - -Because the service ultimately runs on a Raspberry Pi, the created Docker image should be a snapshot of an arm based linux environment. The service image is then mounted to the EmbassyOS image during installation. This path is defined in the :ref:`manifest ` configuration file. - -The image is immutable, meaning that when the service is updated, the image is replaced with a completely new image containing the updated features. - -Volume ------- -Each service application gets a volume allocated to it by EmbassyOS. All service application data is stored in this directory and is persisted across updates. - -The volume directory (for seeding data into the volume) is typically: ``/root/volumes/``. - -.. warning:: - Any files that are in the image at the volume path will be overwritten when a backup restore occurs. - -Dependencies ------------- - -When it comes to running your own server, managing dependencies is perhaps the most difficult part. The term "dependency hell" emerged from this sentiment. Even the best developers have lost significant amounts of time trying to find, correct, or clarify documentation for dependencies or dependency configuration. Individuals who manage their own servers have specific technical skills and are willing to devote the time and effort necessary to maintain them. Companies have entire departments dedicated to this feat. - -Some other personal server products aimed at non-technical individuals tackle this problem by simply hard coding dependencies. Since EmbassyOS is a platform for running all open-source, self-hosted software, it is not possible to hard code every possible service, service dependency, and service dependency configuration forever. Instead, Start9 built a new, unprecedented operating system that touts a generalized, intuitive approach to dependency management and service configuration. EmbassyOS enables users to easily and selectively install, uninstall, and update any service they want without getting stuck in dependency hell. - -This may sound cool or neat, but it is more than that: *it’s novel*. This has never been done before. - -The key to making the system work is a new, domain-specific-language (DSL) and set of standards that are used by developers to define the rules and requirements of their services. Run in the context of EmbassyOS, these rules and requirements appear as simple UI elements, such as inputs, toggles, and drop downs, and they are enforced by validations and clear user instructions. Using this system, what previously required involved time and expertise, can now be done by anyone in a matter of seconds. - -This DSL is utilized in the :ref:`config rules ` and :ref:`dependencies ` key in the service manifest. - -Manifest --------- - -This file describes the service and its requirements. It is used to: - -- create a listing in the marketplace -- denote any installation considerations -- define dependency requirements - -Each time a service is updated, the manifest should be updated to include the new version, release notes, and any pertinent updates to the install, uninstall, or restoration flows. All this information is displayed in the marketplace listing, and the optionally denoted alerts will be displayed when appropriate to provide the user with more information about the particularities of the service. - -For instance, `LND displays alerts `_ around restoration since data will be overwritten. - -There is nothing you need to do as a developer to enable the service to run over Tor. This is *completely* handled by EmbassyOS - a Tor address will be automatically generated and an Nginx server configured (if a client application) when the service is installed. Just define which version of Tor your service needs in this manifest file! - -Config ------- - -Most self-hosted applications require the user to tell the app how to behave using a config file in a specific format, environment variables, command-line arguments, or some combination of these inputs. One of the coolest features of EmbassyOS is that, when packaged correctly, the app's :ref:`configuration ` will be available to the user as a slick GUI that always produces a valid configuration no matter how little experience or skill the user has. - -With EmbassyOS, this means a service wrappers' configuration requires a particular format and rule structure to ensure it integrates smoothly with the user interface. This format enables clean handling of improper values and configuration dependencies. - -.s9pk Bundle ------------- - -The configuration and manifest files get bundled into the ``.s9pk`` package, which is `built using appmgr `_. Each new version release should include the updated version of these files re-bundled into a new binary. This is the file that will be downloaded from the marketplace. Upon user initiation, EmbassyOS then un-packages and installs the service. - -Hello World Example -------------------- - -For reference, the `Hello world `_ repository should be used as an example. A project template can be cloned using the "Use this template" button in GitHub. - - -.. role:: raw-html(raw) - :format: html - -:raw-html:`
` diff --git a/site/source/contributing/services/properties.rst b/site/source/contributing/services/properties.rst deleted file mode 100644 index 7dd14fd..0000000 --- a/site/source/contributing/services/properties.rst +++ /dev/null @@ -1,25 +0,0 @@ -.. _service_properties: - -****************** -Service Properties -****************** - -The output of this step is a file titled ``stats.yaml``. This file contains a mapping of the values that will be displayed in the ``Properties`` section in a service's menu. - -.. figure:: /_static/images/service/service_properties.png - :width: 80% - :alt: Service Properties - - Service Properties Tab - -Due to the fact that config variables are only available when the service is running, this file can only be populated at runtime. In services Start9 has wrapped or created, we typically handle this in ``configurator/src/main.rs``. This file is essentially a script that acquires the necessary values at runtime from config (eg. ``/root/.lnd/start9/config.yaml``), and dynamically populating them to the ``stats.yaml`` file, marking each value with the appropriate keys for UI display (ie. masked or copyable). Running the configurator is typically included in the ``docker_entrypoint.sh`` file. - -Example -======= - -A good example of the configurator producing the ``stats.yaml`` file can be found `here `_. - -.. role:: raw-html(raw) - :format: html - -:raw-html:`
` \ No newline at end of file diff --git a/site/source/contributing/services/wrapper.rst b/site/source/contributing/services/wrapper.rst deleted file mode 100644 index aa84887..0000000 --- a/site/source/contributing/services/wrapper.rst +++ /dev/null @@ -1,42 +0,0 @@ -.. _service_wrapper: - -*************** -Service Wrapper -*************** - -Each service is bound with a wrapper repository, which contains everything you need to build a service. - -The purpose of this repo is: - -- Denote any dependencies required to run and build the project -- To define the necessary, ``config_rules.yaml``, ``config_spec.yaml`` and ``manifest.yaml`` options -- To build the project into the ``.s9pk`` format digestible to EmbassyOS -- Link to the source project as a git submodule -- Define the docker file for running the project on EmbassyOS -- Provide documentation for the project, especially user runbook instructions -- symlink of ``instructions.md`` from ``docs`` directory to wrapper repo root, if included - -File Structure -============== - -The project structure should be used as a model: - -.. code-block:: bash - - ├── Dockerfile - ├── Makefile (optional) - ├── README.md - ├── config_rules.yaml - ├── config_spec.yaml - ├── - ├── docker_entrypoint.sh - ├── docs - │ └── instructions.md - └── manifest.yaml - -Submodule -========== - -`Git submodules `_ allow use of another project while in the working project directory. Setting up this feature enables linking of the source service repository so that its context is available. - -Run ``git submodule add `` \ No newline at end of file diff --git a/site/source/getting-started/diy.rst b/site/source/getting-started/diy.rst index 0894eef..044afe4 100644 --- a/site/source/getting-started/diy.rst +++ b/site/source/getting-started/diy.rst @@ -14,7 +14,6 @@ By popular demand, we are pleased to present this "Do it Yourself" (DIY) guide f .. warning:: This DIY guide has directions for EmbassyOS version 0.2.x. When 0.3.0 launches it will REQUIRE hardware updates, which you can find `here `__. Please keep in mind that version 0.3.x is not yet available for purchase or DIY!! Please stay tuned to our community channels for updates. - Motivation ========== @@ -30,73 +29,8 @@ There are four reasons you might prefer to build your own Embassy instead of pur #. You just like building things. -Building EmbassyOS Versions 0.2.x -================================= - -Hardware: Components --------------------- - -#. `Raspberry Pi 4B (8GB) `_ -#. `Power supply for Raspberry Pi 4B `_ -#. Case for Raspberry Pi 4B (`passive cooling recommended `_ `*`) -#. `High endurance microSD `_ (recommended 128GB or more) -#. `GPIO mini speaker/buzzer `_ (We simply include an Amazon search here, as vendors often sell out) -#. Ethernet cable -#. MicroSD → USB adapter (or you may have a microSD port on your computer) - -`*` If you use a fan, **DO NOT** use the official Raspberry Pi fan, as it requires the same GPIO pins as the audio speaker. Instead, we recommend `this fan `_. - -Hardware: Assembly Instructions -------------------------------- - -#. Insert mini speaker/buzzer into GPIO pins 6/8/10/12 with the word "speaker" facing out, `away from the board`. - - .. figure:: /_static/images/diy/pins.png - :width: 60% - :alt: Speaker board spec - -That's it. Place the Raspberry Pi 4 board (with speaker attached), into its case. - -Getting EmbassyOS: Purchasing ------------------------------ - -You can purchase EmbassyOS `here `_. This is by far the easiest path to get up and running. - -Depending on your Internet speed, the download should take between 5 and 30 minutes. - -Getting EmbassyOS: Building from Source ---------------------------------------- - -If you have the proper tooling and are comfortable using the command line, you can build EmbassyOS from `source `_, which is made available under the `Start9 Personal Use License `_. - -Thanks to our community members who have kindly put together these guides! - -* A comprehensive and user friendly guide by `Bitcoin Mechanic `_ -* A technically focused guide by `t0mmysm1th `_ - -Installing EmbassyOS --------------------- - -Whether you purchase EmbassyOS from us or build it yourself, you need to flash it onto a microSD card. - -#. Download `balenaEtcher `_ onto your Mac, Windows, or Linux computer. -#. Insert the microSD card into your computer, either directly or using an adapter. -#. Open balenaEtcher. -#. Click `Select Image`, then find and select your copy of EmbassyOS. -#. Click `Select Target`, then find and select your micro SD card. -#. Click `Flash!` You may be asked to (1) approve the unusually large disk target or (2) enter your password. Both are normal. - - .. figure:: /_static/images/diy/balena.png - :width: 60% - :alt: Balena Etcher Dashboard - -#. Once the image is flashed and verified, you may remove the micro SD, insert it into your Embassy, and power up the device. -#. The Embassy is now ready for use, and you may following the normal :ref:`setup ` instructions. ``*`` - -``*`` The first time you power it on, your Embassy will make more noises than future attempts, and it may take several minutes to finally complete. - -.. Building EmbassyOS Versions 0.3.x -.. ================================= +Building an Embassy +=================== .. Hardware: Components .. -------------------- diff --git a/site/source/getting-started/introduction.rst b/site/source/getting-started/introduction.rst deleted file mode 100644 index 112e1b2..0000000 --- a/site/source/getting-started/introduction.rst +++ /dev/null @@ -1,13 +0,0 @@ -************ -Introduction -************ - -Embassy is a new kind of personal computer - one that sits quietly on your shelf and runs all day and night. It has no screen and no keyboard. You access your Embassy from anywhere in the world in total, trustless privacy, simply by visiting its unique Tor address (.onion URL) right from the browser. - -Embassy is composed of commonly available hardware components that can be sourced and assembled by anyone, anywhere, for a marginal fee. Embassy is powered by EmbassyOS, the open-source operating system by Start9. - -So, what do you do with your Embassy? You use it to run services: Bitcoin, Lightning, personal cloud storage, P2P messaging, password management, etc. The list of available services is growing quickly and will eventually encompass the entirety of open-source, self-hosted software. - -Every communication between you and your Embassy is end-to-end encrypted and onion routed over the Tor network. All services are open-source and self-hosted, meaning there are no trusted third parties of any kind. - -To get an Embassy, you can :ref:`purchase` one directly from Start9, or you can :ref:`build one yourself`. \ No newline at end of file diff --git a/site/source/getting-started/purchasing.rst b/site/source/getting-started/purchasing.rst deleted file mode 100644 index 0a2fc43..0000000 --- a/site/source/getting-started/purchasing.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _purchasing: - -********** -Purchasing -********** - -For maximum convenience, you can purchase an Embassy device directly from Start9 through our `Shopify Store `_. The device comes in a beautiful box, fully-assembled, and pre-installed with the latest version of EmbassyOS. We do our own hardware assembly and fulfillment, and we only collect the minimal information necessary to fulfill your order. And yes, we accept Bitcoin. - -If you prefer to build your own Embassy, you can follow the :ref:`DIY Guide `. \ No newline at end of file diff --git a/site/source/index.rst b/site/source/index.rst index 8c26c6d..f36087c 100644 --- a/site/source/index.rst +++ b/site/source/index.rst @@ -5,8 +5,9 @@
.. hero-box:: - :title: Documentation + :title: Become unstoppable :button_icon: scylla-icon scylla-icon--monitoring + :image: /_static/img/eos_0.3.0.png Here you will find guidance and information about the Start9 Embassy personal server and its operating system, EmbassyOS. @@ -21,31 +22,40 @@
.. topic-box:: - :title: Getting Started - :link: getting-started - :icon: scylla-icon scylla-icon--knowledge-base - :class: large-6 - :anchor: Begin + :title: Purchasing + :link: https://store.start9.com + :icon: scylla-icon scylla-icon--bitcoin + :class: large-4 + :anchor: Buy now - Dive into the Embassy documentation and other helpful guides + Learn about how you can purchase Start9 products + +.. topic-box:: + :title: Build your own + :link: support/user-manual/tuning/diy + :icon: scylla-icon scylla-icon--integrations + :class: large-4 + :anchor: Get started + + Build from source with our DIY guide + +.. topic-box:: + :title: Service Marketplace + :link: https://marketplace.start9.com + :icon: scylla-icon scylla-icon--monitoring + :class: large-4 + :anchor: Browse + + See what Services are available .. topic-box:: :title: User Manual - :link: user-manual - :icon: scylla-icon scylla-icon--integrations + :link: support/user-manual + :icon: scylla-icon scylla-icon--knowledge-base :class: large-6 :anchor: View - Get started with learning how to use EmbassyOS - -.. topic-box:: - :title: Misc Guides - :link: misc-guides - :icon: scylla-icon scylla-icon--docs - :class: large-6 - :anchor: View - - Setup your devices and Embassy for better connectivity and performance + Get started with your Embassy .. topic-box:: :title: Support @@ -54,61 +64,73 @@ :class: large-6 :anchor: Get help - Learn about or troubleshoot your Embassy + Find answers to your questions + +.. topic-box:: + :title: Learn + :link: learn + :icon: scylla-icon scylla-icon--webinars + :class: large-3 + :anchor: Get started + + Read our FAQ and learn about platform concepts + +.. topic-box:: + :title: SDK + :link: service-packaging + :icon: scylla-icon scylla-icon--open-source + :class: large-3 + :anchor: View + + Package a service for the Embassy Marketplace .. topic-box:: :title: Contribute - :link: contributing - :icon: scylla-icon scylla-icon--apps - :class: large-6 - :anchor: Get started + :link: contribute + :icon: scylla-icon scylla-icon--networking + :class: large-3 + :anchor: Join us Use your skills to add to the Start9 ecosystem .. topic-box:: - :title: FAQ - :link: support/FAQ - :icon: scylla-icon scylla-icon--search - :class: large-6 - :anchor: Get answers + :title: About Start9 + :link: about + :icon: scylla-icon scylla-icon--about-team + :class: large-3 + :anchor: Learn more - Find answers to common questions + Explore Start9's mission, history, and future -.. .. topic-box:: -.. :title: Learn -.. :link: support/FAQ -.. :icon: scylla-icon scylla-icon--webinars -.. :class: large-6 -.. :anchor: Get started +.. raw:: html -.. Read our FAQ and learn about platform concepts +
-.. .. topic-box:: -.. :title: Purchasing -.. :link: https://store.start9.com -.. :icon: scylla-icon scylla-icon--bitcoin -.. :class: large-4 -.. :anchor: Buy now - -.. Learn about how you can purchase Start9 products - -.. .. topic-box:: -.. :title: Build your own -.. :link: user-manual/tuning/diy -.. :icon: scylla-icon scylla-icon--integrations -.. :class: large-4 -.. :anchor: Get started - -.. Build from source with our DIY guide +.. raw:: html + .. This is for the side navigation display .. toctree:: :maxdepth: 2 :hidden: - getting-started/index - user-manual/index - misc-guides/index - contributing/index support/index + learn/index + contribute/index + about/index + service-packaging/index + +.. raw:: html + + \ No newline at end of file diff --git a/site/source/learn/concepts/bitcoin-lightning.rst b/site/source/learn/concepts/bitcoin-lightning.rst new file mode 100644 index 0000000..2fac312 --- /dev/null +++ b/site/source/learn/concepts/bitcoin-lightning.rst @@ -0,0 +1,49 @@ +.. _bitcoin-lightning: + +===================== +Bitcoin and Lightning +===================== + +.. _bitcoin: + +Bitcoin +------- + +Bees knees + +.. _bitcoin-node: + +Bitcoin Node +------------ + +The Embassy runs a Bitcoin Full Node. When most people say "full node" what they mean (or ought to mean) is "fully validating node", meaning that the node is capable of enforcing the consensus rules of Bitcoin by accepting, validating, and relaying every transaction and block produced by the network. Fully validating nodes are necessary for Bitcoin to exist and function properly and are what protect the network from attackers attempting to bypass the consensus rules. A fully validating node (aka full node) does not need to store the entire blockchain to accomplish this. A node that stores the entire blockchain is called a "full archival node". It is the same as a full node, except that it stores every single valid transaction and block ever produced by the network. There are not many reasons why an individual would want to run a full archival node. Most of the benefits of node operatorship are encompassed by a basic full node described above. Full archival nodes have the added benefit of enabling a block explorer. For instace, if you were interested in looking up the history of a particular address or viewing the details of a transaction, neither of which were your own. If an address or transaction is your own, you can view those details using a pruned node. + +All that said, it will soon be possible to run a full archival node with he embassy, should you determine you want block explorer functionality. This will require plugging in an external hard drive to the embassy and changing a setting in the app, and also a resycnhing of the blockchain from genesis. + +A video explainin the importance of running a node can be found `here `__. + +You can learn more about Bitcoin `here `__. + +.. _btc-wallets: + +Bitcoin Wallets +--------------- + +The word "wallet" has come to mean a lot of things, depending on who you ask and what software you are using. There are (1) software "wallets", (2) hardware "wallets", (3) seed "wallets", and (4) branch "wallets". The one thing all these wallets have in common is that they have almost nothing in common. As the terms are used today, here is usually what they mean. + +(1) SOFTWARE WALLETS - (such as FullyNoded and Specter) Software applications capable of interfacing with hardware wallets (see below), interfacing with one or more nodes, as well as address creation, transaction creation, transaction broadcasting, and transaction display. Most software wallets are also capable of creating and storing public/private keypairs, granting them properties of both hardware wallets (see below) and seed wallets (see below). When we say "wallet", we are referring to software applications that posses a user interface for interacting with the Bitcoin network. If a wallet is capable of creating, storing and using private keys, it should be referred to as just a wallet with signer ability. + +(2) HARDWARE WALLETS – (such as ColdCard and Trezor) Physical devices that create and store public/private keypairs, exporting the public keys, NEVER exporting the private keys, and using the private keys to sign transactions on demand. Hardware wallets must interface with a software wallet in order to be useful to a user. For this reason, some have proposed renaming hardware wallets to "hardware signers" for clarity. + +(3) SEED WALLETS - Basically just the root of a hierarchical deterministic tree of keypairs. It usually takes the form of a mnemonic phrase of 12 or 24 words. Why people refer to their mnemonic seed as a "wallet" is confusing. Just call it a seed. + +(4) BRANCH WALLETS - This is how Specter uses the word wallet, and it is causing a lot of confusion. Whenever you create a new "wallet" in specter, you are actually creating a new hierarchical deterministic branch of your mnemonic seed - or in the case of multisig, multiple seeds. The branch you create can be based on "purpose" (segwit, non-segwit, single-sig, multi-sig, etc), "coin type" (Bitcoin, Doegecoin, etc), or "account" (for personal accounting). Change any of these parameters, and you have yourself a new wallet, which again is just a different branch of the same mnemonic seed that potentially abides by a different set of rules. Perhaps a better name for this concept is "bank". Instead of "wallets", you should be able to create different "banks" from your seed. + +.. _lightning-network: + +Lightning Network +----------------- + +The Lightning Network is a "payment layer" that sits on top of the Bitcoin blockchain, which it uses for final settlement. This allows Bitcoin to scale without affecting the security of the protocol layer. It is easiest to think of Lightning Network as a system that allows anyone to use their Bitcoin to have a running tab (think bar tab) of money they owe each other. For example, 2 friends may have a "channel" (tab) between them that they use for exchanging value. The channel keeps track of who owes what. Those payments can be settled at any time on the Bitcoin blockchain if either or both parties decide to close out. One big incentive to use Lightning is that payments are extremely fast and fees are extremely low. You can find an introductory video explanation `here `__. + +You can learn more about Lightning `here `__. diff --git a/site/source/learn/concepts/embassy.rst b/site/source/learn/concepts/embassy.rst new file mode 100644 index 0000000..f57309a --- /dev/null +++ b/site/source/learn/concepts/embassy.rst @@ -0,0 +1,86 @@ +.. _embassy-concepts: + +===================== +Embassy and EmbassyOS +===================== + +.. _embassy: + +Embassy +------- +Embassy is the plug 'n' play hardware device sold by Start9. The current iteration is a Raspberry Pi with an internal speaker in a custom, passively cooled case. The Embassy comes pre-loaded with EmbassyOS. Check out the video below to get a brief overview: + +.. youtube:: GfMvXJxYamw + +.. _embassy-os: + +EmbassyOS +--------- +EmbassyOS (EOS) is a Linux-based operating system custom built for self-hosting open source software. EOS has a range of features that allow anyone to run their own server software without needing all the traditionally required systems administration skills. Advanced dependency management, sensibly defaulted configuration with customization, and minimal reliance on the developers are just a few; all wrapped into a sleek GUI that anyone can operate. No command line required! + +.. _product-key: + +EmbassyOS Product Key +--------------------- +Whether you purchase a device, download an image, or build yourself from source, every copy of EmbassyOS has it's own unique Product Key, which is generated with the creation of each EOS image. + +If you purchase a device from us, this is printed on the bottom of your Embassy. If you purchase a download, we provide you the key. If you build from source, the key is created during the build. + +The first and foremost use of the Product Key is to encrypt data that is sent to Embassy at :ref:`Initial Setup`. There are several other usecases. Start9 keeps an anonymous database of all Product Keys that have been purchased by us (ZERO additional data is associated) so that we can verify someone is a "paid user." Currently this is just to allow someone to get a new copy of the EOS image if they have a problem, but in future we intend to give added bonuses to customers who have chosen to pay us for a copy of the software. + +.. _services-eos: + +Services +-------- +The server-side software available on EmbassyOS are referred to as "Services." It's important to distinguish the difference between *services* and *applications*. Applications are generally *client-side*. This means that they are either standalone software, or they reach out to a server in order to operate. Services are *server-side*. These generally run 24/7, waiting for commands from a user via an application. + +.. _sessions: + +Session +------- +A session is simply a logged-in connection to your Embassy. You can view your :ref:`Active Sessions`, and kill one if you suspect it is not legitimate, or no longer use it. + +.. _service-container: + +Service Container +----------------- +Each service is compartmentalilzed into its own "container," at this time, this normally means a `Docker `_ container. There are several reasons for this, including security, ease of use, and maintenance. + +.. _service-dependencies: + +Dependencies +------------ +Some services have dependencies on other services. A service may even require its dependency to be *configured* in a particular way. + +Traditionally, managing dependencies was a massive headache and a huge barrier to running a personal server. But no more! The Embassy's revolutionary dependency management system makes the process transparent and simple. + +If a service has one or more dependencies, or a dependency needs to be configured in a particular way, your Embassy will inform you and offer solutions. + +Sometimes, a dependency can be satisfied in multiple ways. For example, Lightning has a dependency on Bitcoin. But that does not necessarily mean you need to have Bitcoin installed on your Embassy. You could just as easily configure Lightning to use another Bitcoin node located somewhere else! + +.. _web-ui: + +Web User Interface (UI) +----------------------- +A User Interface, or UI, is as the name suggests, the way in which the user interacts with some software, typically in our context it will be a graphical interface (GUI). A WebUI is basically a website that is served (often by your Embassy) specifically for a user to issue commands or view data. A great example of this is EmbassyOS itself, which serves a WebUI for the user to add/remove services, make configurations, etc. This is your main point of contact with EOS. + +.. _interfaces: + +Service Interfaces +------------------ +In EmbassyOS versions 0.2.x, each installed service received its own Tor hidden service URL. For some services, such as File Browser, the URL represented a website that could be visited in the browser; for other services, such as Bitcoin, the URL had to be input into a native client wallet such as Fully Noded or Specter. + +Certain services, such as Bitcoin, actually have multiple interfaces. Bitcoin has an RPC interface, a P2P interface, and could potentially even have a graphical interface, such as a dashboard displaying important node information. Using the same URL for these various interfaces is not only confusing, it could potentially pose a security vulnerability. For example, a user may want to share their P2P interface address with someone for peering but not want to give out their UI address, which is for private use only. + +As such, EmbassyOS 0.3.0 permits services to have multiple interfaces, each receiving its own Tor address and/or LAN address. Users can then view and access all interfaces for a given service inside the new :ref:`Interfaces ` section of the service dashboard. + + +.. _health-checks: + +Health Checks +------------- +One of the most critical duties of a sysadmin or devops engineer is to build systems to monitor health. For example, a simple health check that monitors the availability of an LND node could mean the difference between that node having a poor reputation or a great one. Sometimes, it is not obvious when a service is unhealthy, especially since “health” is a subjective term depending on the subject. For example, is your Bitcoin node “healthy” if it is not fully synced? Is it healthy if the user interface is unreachable but everything else is working ok? + +In EmbassyOS 0.3.0, package developers define what constitutes health and implement health checks according to subjective criteria that are then displayed to the user in easily digestible messages, complete with icons and colors. Even better, health checks are completely arbitrary and turing complete, meaning they can include anything, including config options and internal or external dependencies! For example, a Lightning wallet package developer could say “this service is only healthy if (1) it is fully synced, (2) Bitcoin is fully synced, (3) LND is fully synced, and (4) if and only if the user has opted for real-time pricing from a third party website, that third party website must be reachable.” Enormous power. + + diff --git a/site/source/learn/concepts/index.rst b/site/source/learn/concepts/index.rst new file mode 100644 index 0000000..570419e --- /dev/null +++ b/site/source/learn/concepts/index.rst @@ -0,0 +1,16 @@ +.. _concepts: + +======== +Concepts +======== + +An overview of the ideas and technologies surrounding Start9 Labs and Embassy + +.. toctree:: + :maxdepth: 2 + + open-source + networks + self-hosting + embassy + bitcoin-lightning diff --git a/site/source/learn/concepts/networks.rst b/site/source/learn/concepts/networks.rst new file mode 100644 index 0000000..2577477 --- /dev/null +++ b/site/source/learn/concepts/networks.rst @@ -0,0 +1,84 @@ +.. _networks: + +======== +Networks +======== + +.. _lan: + +LAN +--- +A Local Area Network (LAN) is a computer network that interconnects computers within a limited area such as a residence, school, laboratory, university campus, or office building. + +Devices on a LAN are private and protected, such that only devices connected to the same Ethernet or WiFi network can see or communicate with them. + +Your Embassy hosts itself on the LAN and is reachable by visiting its ``embassy.local`` URL in the browser while also connected to the LAN. + +.. note:: Any device connected to a LAN can inspect all communications on that LAN. To avoid snooping, your Embassy's LAN communications are encrypted using :ref:`ssl`, which requires :ref:`additional setup `. + +.. _lan-cert: + +LAN Certificate +--------------- +When you visit an SSL secured website (https://), in addition to the connection being secured using SSL/TSL encryption, the website will present your browser with an SSL certificate showing that it (or more accurately ownership of the website's public key) has been authenticated by a recognized Certificate Authority (CA). In the case of your Embassy, this certificate is "self-signed," and as such, the CA is you. + +Your certificate is created when you initially setup your Embassy, or migrate to a new version, such as 0.3.0. + +.. _mdns: + +MDNS +---- +Multicast Domain Name System (MDNS) is a protocol that resolves a human-readable hostname to an IP address on a small network, such as the home or office network you might host your Embassy on. + +This is known as a "zeroconf," or zero-configuration service, meaning that you can instantly visit a human-recognizable domain name, such as ``embassy.local`` from your network. + +This domain is not broadcast outside of your local network, so it is as private and secure as your LAN. + +.. _ssl: + +SSL +--- +Visiting websites on the Tor network is slow. We wanted to provide a better option to access the Embassy at home. That's why we created an address for the Embassy that can be accessed on your Local Area Network. + +By default, this ``.local`` address is served like a regular website, over HTTP. Browsers make it noticeable when visiting a site over HTTP in the URL bar - it could be red, show an unlocked lock, or warn that the connection is not secure. + +SSL certificates are what enable websites to move from HTTP to HTTPS, which increases security and makes browsers happy. Using the Secure Sockets Layer protocol, HTTPS enabled websites use certificates to establish authenticated and encrypted links between networked computers. It’s the standard technology for keeping an internet connection secure and safeguarding any sensitive data that is being sent between two devices, preventing third parties from reading and modifying any personal information transferred. They also verify ownership of a website. + +Valid SSL certificates are typically issued and obtained from Certificate Authorities. These trusted third parties generate and distribute certificates, signing them with their trusted private key, which allows the clients who use them to verify their authenticity. Websites obtain a certificate from a CA then load it onto their website’s hosting service or server, allowing the website to load over HTTPS and have all traffic to and from the website be encrypted and secure. + +We decided to have the Embassy act as a Certificate Authority. It creates a self-signed certificate, which means that the private key used to sign the digital certificate is the Embassy’s own private key instead of a third party’s. + +When you setup SSL for your Embassy and device, the certificate communicates to the client (a browser) that the server (the Embassy) demonstrated ownership of the domain (the ``embassy-xxxxxxxx.local`` address) to the certificate authority (created on the Embassy) at the time of certificate issuance (during the setup process). The Embassy dashboard can then be accessed from a home network (LAN) using a secure HTTPS connection! + +For more information on how to setup your devices to enable this feature visit :ref:`lan-setup`. + + +.. _tor: + +Tor +--- +The Onion Router, or Tor, is a free and open source software that enables anonymous communication. By routing Internet traffic though a worldwide, volunteer overlay network of nodes, requests are bundled in layers of encryption like the layers of an onion. The request is relayed across nodes, decrypting a layer only to reveal the next relay destination, until the request meets its final destination, without revealing the source IP address. + +If a malicious third party were to intercept a request, they would see a garbled mess of the remaining onion encryption, and would only know that it came from some onion node and was heading to some other onion node. The contents, source, and destination of the message are totally anonymous. + +When you use Tor to communicate with services running on the Embassy, all the traffic is onion routed and encrypted, and there are no Tor exit nodes involved - it's totally private with no configuration needed. + +Furthermore, every service on the Embassy has a different Tor address, including the device itself. This is for privacy reasons - should one Tor address be exposed, the others will not be compromised. Tor addresses are actually ed25519 keys, which means they also provide all the benefits of cryptographically secure private/public keys. + +Here's an introductory video on `Tor `__. + +.. _tor-browser: + +Tor Browser +----------- +The Tor Browser is a version of Firefox specifically made for use with the Tor Network. Tor Browser has Tor built-in, so that you do not need to be running Tor natively in order to use the network. This makes it a great browser for use with your Embassy. + +.. caution:: Tor Browser has some advanced security and privacy settings, which can be useful, but please keep in mind that if you raise them from the standard level, you may be unable to use some websites, such as your Embassy UI. + +.. _hidden-service: + +Tor Hidden Service +------------------ +A Tor Hidden Service is essentially just software or a website that is only broadcast on the Tor network. These are identified by a long, random public key, and end with the ``.onion`` suffix. For example, you can visit http://privacy34kn4ez3y3nijweec6w4g54i3g54sdv7r5mr6soma3w4begyd.onion to view the Start9 homepage on Tor. + +In order to reach a Hidden Service, you must use a browser that can handle ``.onion`` domains, such as `The Tor Browser `_ or by configuring :ref:`Firefox `. diff --git a/site/source/learn/concepts/open-source.rst b/site/source/learn/concepts/open-source.rst new file mode 100644 index 0000000..c2d39b8 --- /dev/null +++ b/site/source/learn/concepts/open-source.rst @@ -0,0 +1,28 @@ +.. _open-source: + +=========== +Open Source +=========== + +The Internet itself was built on free and publicly available code, with the values of collaboration, peer review, communication, and openness built into its very foundation. This decentralized model evolved into the open source movement, which uses these values to discover new ways to solve problems across boundaries and industries. + +Open source software centered around the concept of user freedoms: freedom to see, modify, and redistribute the code to make it work for the user in whatever way they needed. It does not necessarily mean free to use. It means that the software will be better, cheaper, and more flexible if it is freely accessible, openly modifiable, and shared. + +If anyone can inspect, modify, and distribute the code, bugs are more rapidly resolved, security vulnerabilities are more quickly audited and exposed. Community driven development efforts enable diverse collaboration which increases project reliability and longevity. + +Distinct from open source software is proprietary, or closed source, software. Closed source software is strictly moderated, cannot legally be altered, copied, or distributed, and is paid for to be used as intended without modification. Only the code owners have the right to access the code. + +As a company founded on the principles of freedom, every service we support is open source. We believe in contributing to the future of this vibrant and passionate ecosystem. + +Open Source ideas explained in `Lego `_. + +Dependencies +------------ + +Some software has dependencies on other software. Software may even require its dependency to be *configured* in a particular way. + +Traditionally, managing dependencies was a massive headache and a huge barrier to running a personal server. But no more! The Embassy's revolutionary dependency management system makes the process transparent and simple. + +If a :ref:`service` has one or more dependencies, or a dependency needs to be configured in a particular way, your Embassy will inform you and offer solutions. + +Sometimes, a dependency can be satisfied in multiple ways. For example, Lightning has a dependency on Bitcoin. But that does not necessarily mean you need to have Bitcoin installed on your Embassy. You could just as easily configure Lightning to use another Bitcoin node located somewhere else! diff --git a/site/source/learn/concepts/self-hosting.rst b/site/source/learn/concepts/self-hosting.rst new file mode 100644 index 0000000..7ab6d66 --- /dev/null +++ b/site/source/learn/concepts/self-hosting.rst @@ -0,0 +1,17 @@ +.. _self-hosting: + +======= +Hosting +======= + +Client-Server Model +------------------- + +The Internet is not so great atm... + +Self-Hosting +------------ + +blah blah self-host ya shmuck. For an overview of this idea in relation to EmbassyOS, please check out the video below: + +.. youtube:: dc741XwqlyU diff --git a/site/source/learn/index.rst b/site/source/learn/index.rst new file mode 100644 index 0000000..86f35b2 --- /dev/null +++ b/site/source/learn/index.rst @@ -0,0 +1,62 @@ +.. _learn: + +===== +Learn +===== + + Here you will find information on concepts that will help you understand the technologies used by and relevant to your device, as well as find answers to common questions, and a video library with a wide array of content, from educational to how-to. + +.. raw:: html + +
+ +
+ +.. topic-box:: + :title: Concepts + :link: concepts + :icon: scylla-icon scylla-icon--operator + :class: large-4 + :anchor: Learn + + An overview of the ideas and technologies surrounding Start9 Labs and Embassy. + +.. topic-box:: + :title: FAQ + :link: ../support/faq + :icon: scylla-icon scylla-icon--monitoring + :class: large-4 + :anchor: Get Answers + + Answers to Frequently Asked Questions from Embassy users. + +.. topic-box:: + :title: Videos + :link: https://youtube.com/c/Start9 + :icon: scylla-icon scylla-icon--training + :class: large-4 + :anchor: Watch + + Our video archives, with educational content, including how-tos and DIY guides. + +.. topic-box:: + :title: Media + :link: media + :icon: scylla-icon scylla-icon--news + :class: large-4 + :anchor: View + + Check out interviews, podcasts, and articles featuring Start9 and Embassy. + +.. raw:: html + +
+ + +.. This is for the side navigation display +.. toctree:: + :maxdepth: 2 + :hidden: + + concepts/index + media/index diff --git a/site/source/learn/media/articles.rst b/site/source/learn/media/articles.rst new file mode 100644 index 0000000..f5a2f62 --- /dev/null +++ b/site/source/learn/media/articles.rst @@ -0,0 +1,25 @@ +.. _articles: + +======== +Articles +======== + +Articles featuring Start9 Labs and/or Embassy + +.. topic-box:: + :title: March 11, 2021 - Start9 Labs Pitches a Private At-Home Server. And It Works + :image: https://static.coindesk.com/wp-content/uploads/2021/03/Graph-radicle-710x458.jpg?format=webp + :link: https://www.coindesk.com/start9-labs-self-sovereign-private-internet-solutions-funding + :anchor: Coindesk + + Start9 Labs to Build on Its Self-Sovereign, Private Internet Solutions With $1.2M in Funding + +.. topic-box:: + :title: July 8, 2020 - Start9 Labs Pitches a Private At-Home Server. And It Works + :image: https://static.coindesk.com/wp-content/uploads/2020/07/harrison-broadbent-hSHNPyND_dU-unsplash-300x185.jpg + :link: https://www.coindesk.com/tech/2020/07/08/start9-labs-pitches-a-private-at-home-server-and-it-works/ + :anchor: Coindesk + + Start9 Labs' Embassy server sets up its own private internet network and comes with its own operating system. We tried it. + + diff --git a/site/source/learn/media/index.rst b/site/source/learn/media/index.rst new file mode 100644 index 0000000..58dc570 --- /dev/null +++ b/site/source/learn/media/index.rst @@ -0,0 +1,14 @@ +.. _media: + +===== +Media +===== + +Start9 Labs "in the news" + +.. toctree:: + :maxdepth: 1 + + articles + podcasts + videos diff --git a/site/source/learn/media/podcasts.rst b/site/source/learn/media/podcasts.rst new file mode 100644 index 0000000..8038c2f --- /dev/null +++ b/site/source/learn/media/podcasts.rst @@ -0,0 +1,191 @@ +.. _podcasts: + +======== +Podcasts +======== + +Podcasts featuring Start9 Labs and/or Embassy + +.. topic-box:: + :title: January 25, 2022 - On The Record with Start9 + :link: https://www.youtube.com/watch?v=jMV_DWAMtmc + :image: https://i3.ytimg.com/vi/jMV_DWAMtmc/maxresdefault.jpg + :anchor: On The Record + + Start9 demo the latest version of EmbassyOS + +.. topic-box:: + :title: November 29, 2021 - Episode #101: Securing your own data with Matt Hill of Start9 + :link: https://www.agoristnexus.com/securing-your-own-data-with-matt-hill-of-start9-episode-101/ + :image: https://www.agoristnexus.com/wp-content/uploads/2021/11/paste-147-750x450.png + :anchor: Agorist Nexus + + In this episode Brandon and Dag speak with Matt Hill of Start9 Labs about securing your own data with Embassy + +.. topic-box:: + :title: November 22, 2021 - Episode #287: EmbassyOS v0.3.0, building out the independent stack, and philosophy with Matt Hill + :link: https://talesfromthecrypt.libsyn.com/287-embassyos-v030-building-out-the-independent-stack-and-philosophy-with-matt-hill + :image: https://assets.libsyn.com/secure/content/63745304 + :anchor: Tales From The Crypt + + Join Marty as he sits down with Matt Hill, co-founder of Start9 Labs + +.. topic-box:: + :title: November 21, 2021 - Matt Hill on Sovereign Computing, The Private Web, & Truly Owning Your Own Data + :link: https://bitcoinmatrix.libsyn.com/matt-hill-on-soverign-computing-the-private-web-truly-owning-your-own-data + :image: https://assets.libsyn.com/secure/item/21234746 + :anchor: The Bitcoin Matrix + + Matt Hill sits down with Cedric to discuss Start9, building technology for the individual, the Embassy personal server, and how you can leverage the dark net for private Bitcoin, Lightning Network, data, messaging and social media + +.. topic-box:: + :title: October 5, 2021 - Anarchast Episode 566 + :link: https://odysee.com/@Anarchast:2/Become-a-Digital-Sovereign-with-Start9:f + :image: https://i1.sndcdn.com/avatars-h52MnISbZ9tcP7DC-4nV1iQ-t500x500.jpg + :anchor: Anarchast + + Today we are introduced to David from Start9 to get a demo of their potentially world changing project -- the Embassy! Become a Digital Sovereign with Start9 + +.. topic-box:: + :title: August 18, 2021 - The Survival Podcast Episode 2937 + :link: http://www.thesurvivalpodcast.com/true-digital-sovereignty-c + :image: http://survivalpodcast.net/store/images/tspmsblogo.png + :anchor: The Survival Podcast + + Matt Hill of Start9 on True Digital Sovereignty + +.. topic-box:: + :title: July 23, 2021 - FreedomFest: David Croisant of Start9 Labs + :link: https://redcircle.com/shows/ba745a38-25bd-4396-a820-adf83d3914d1/episodes/fdc76a50-d0be-4eb7-8e4e-23f0e4211f95 + :image: https://media.redcircle.com/images/2021/5/7/21/d23734d0-b96a-4c42-b2d4-02659ac998ad_f919_2ad158df-2f4c-40c1-b4c9-60f859481887_blob.jpg?d=280x280 + :anchor: Pauls to the Wall + + Start9 Labs is a company based out of Denver that builds computers for self-sovereign software hosting + +.. topic-box:: + :title: July 13, 2021 - Matt Hill and Vlad Costea + :link: https://bitcoin-takeover.com/s4-e5-matt-hill-on-the-philosophy-of-sovereignty/ + :image: https://i2.wp.com/bitcoin-takeover.com/wp-content/uploads/2021/07/BTCTKVR-S9-E5-Matt-Hill-Start9-Labs-EmbassyOS-Embassy-OS-Sovereignty-Node-in-a-Box-Bitcoin-Lightning-Takeover.jpg?w=1920&ssl=1 + :anchor: Bitcoin Takeover + + Bitcoin Takeover S4 E5: Matt Hill on the Philosophy of Sovereignty + +.. topic-box:: + :title: June 15, 2021 - Matt Odell, @raspiblitz, @ronindojoui, @mynodebtc, @nodl_it, and @start9labs + :link: https://citadeldispatch.com/cd26/ + :image: https://citadeldispatch.com/wp-content/uploads/2021/04/cropped-cit2color.png + :anchor: Citadel Dispatch + + Citadel Dispatch e0.2.6 - Using a Bitcoin Node, Bitcoin node projects, tradeoffs, software licenses, and monetization + +.. topic-box:: + :title: April 29, 2021 - Matt Hill and Alex Dischinger + :link: https://www.youtube.com/watch?v=BNNOK357QZY + :image: https://i.ytimg.com/vi/BNNOK357QZY/maxresdefault.jpg + :anchor: Tuscon Bitcoin + + This is a clip from a conversation with Matt Hill from Start9 about fixing problems with big tech. + +.. topic-box:: + :title: April 18, 2021 - Phil Gibson and Matt Hill + :link: https://pgibs.io/2021/04/18/matt-hill/ + :image: https://i.scdn.co/image/58faa7fe387f952064c4a88654458d9ea9efb89b + :anchor: A Boy Named Pseu + + In this episode: Matt's Background, sovereign computing, Libertarianism, learning to code, the dirty truth of the internet and data, Bitcoin, Taekwondo, and then some… + +.. topic-box:: + :title: April 13, 2021 - Matt Odell, Keagan McClelland, and Paul Miller + :link: https://citadeldispatch.com/cd17/ + :image: https://citadeldispatch.com/wp-content/uploads/2021/04/cropped-cit2color.png + :anchor: Citadel Dispatch + + Citadel Dispatch e0.1.7 - Bitcoin nodes and self hosting with @futurepaul and @proofofkeags + +.. topic-box:: + :title: March 24, 2021 - Interview with Matt Hill and Aiden McClelland + :link: https://www.freedomsphoenix.com/Media/301737-2021-03-24-03-24-21-todays-show-will-be-a-podcast-matt.htm + :image: https://is2-ssl.mzstatic.com/image/thumb/Podcasts/62/f0/38/ps.tbxsjaqa.jpg/626x0w.webp + :anchor: Declare Your Independence + + Matt Hill (Co-Founder & CEO) and Aiden McClelland (Co-Founder & Lead Developer) of Start9 Labs on the self-sovereign, private internet solutions, 'pirate communications', pirate box, etc + +.. topic-box:: + :title: March 23, 2021 - Matt Hill and John Vallis + :link: https://www.youtube.com/watch?v=0n9DRGJWr_0 + :image: https://i.ytimg.com/vi/0n9DRGJWr_0/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAYvHlEb0Sy9ySqm-sbHTUJhOGulQ + :anchor: Bitcoin Rapid Fire + + The best way to establish greater sovereignty, privacy and freedom in life is not to ask for it, but to engage the tools that make it possible. This series explores the people and companies that are developing those tools + +.. topic-box:: + :title: March 23, 2021 - Bitcoin Failure Scenarios + :link: http://bitcoinmagazine.btc.libsynpro.com/bitcoin-failure-scenarios-with-keagan-mcclelland + :image: https://assets.libsyn.com/secure/item/18438839?height=250&width=250&overlay=true + :anchor: Bitcoin Magazine Podcast + + This week for the Bitcoin Magazine podcast, host Christian Keroles sits down with Bitcoin engineers and cofounder of Start9 Keagan McClelland to discuss different ways he sees Bitcoin potentially filing in the future + +.. topic-box:: + :title: March 22, 2021 - Privacy is sovereignty + :link: https://www.youtube.com/watch?v=QYYY9Iw1aXE + :image: https://i.ytimg.com/vi/QYYY9Iw1aXE/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCbQy80EnPsOR1s_pW_xYzY64Ufcw + :anchor: Tucson Bitcoin + + Lucy Cifferello explains how Start9 is a company dedicated to lowering the bar of entry into Self-Sovereignty. Their flagship product, The Embassy, allows for one click installs of privacy oriented apps + +.. topic-box:: + :title: March 12, 2021 - Interview with David Croisant + :link: https://www.freedomsphoenix.com/Media/Media-Files/687-0312194940-DYI2021-03-12.mp3 + :image: https://is2-ssl.mzstatic.com/image/thumb/Podcasts/62/f0/38/ps.tbxsjaqa.jpg/626x0w.webp + :anchor: Declare Your Independence + + David Croisant (Start9 Labs) on the self-sovereign, private internet solution - Mike Swatek (PPM Silver Cosmetics; Coder/Developer) joins the conversation to discuss 'pirate communications' + +.. topic-box:: + :title: February 9, 2021 - Inteview with Matt Hill + :link: https://www.thebitcoinpath.com/podcast/16-matt-hill-sovereign-computing-with-the-embassy-by-start-9-labs/ + :image: https://m.media-amazon.com/images/I/41-qTKOsR-L._SL500_.jpg + :anchor: The Bitcoin Path + + Jon talk with Matt about sovereign computing, privacy, and the Start9 Embassy personal server + +.. topic-box:: + :title: December 29, 2020 - Inteview with Matt Hill + :link: https://anchor.fm/tales-from-the-crypt/episodes/220-Matt-Hill-eob5h7 + :image: https://assets.libsyn.com/secure/content/63745304 + :anchor: Tales From The Crypt + + Marty sits down with Matt Hill to discuss: Founding Start9 Labs - The Embassy - Routing around Apple's App Store - Why personal hardware is an imperative moving forward - Self-sovereign surveillance - Making all of this easy + +.. topic-box:: + :title: September 29, 2020 - Sovereignty in a Box + :link: https://anchor.fm/thecryptoconomy/episodes/Chat-48---Sovereignty-in-a-Box-with-Matt-Hill-ekc088 + :image: https://s3-us-west-2.amazonaws.com/anchor-generated-image-bank/production/podcast_uploaded400/1250935/1250935-1589316789653-0f6f16e4dd3ea.jpg + :anchor: Bitcoin Audible Podcast + + Are we on the verge of a new revolution in personal computing? Matt Hill and the team at Start9Labs believes we are, and are helping to build our path through it to a brighter future + +.. topic-box:: + :title: August 7, 2020 - The Bitcoin Cypherpunk Box with Matt Hill & Aaron Greenspan + :link: https://www.whatbitcoindid.com/podcast/the-bitcoin-cypherpunk-box-with-matt-hill-aaron-greenspan + :image: https://images.squarespace-cdn.com/content/v1/59641a28ff7c5099c12a5eda/1574808585863-2DZ15K3ESY6KJDUA27ZK/ke17ZwdGBToddI8pDm48kODEHMGUBRgRRplOmqRomK1Zw-zPPgdn4jUwVcJE1ZvWhcwhEtWJXoshNdA9f1qD7Rb66VC8y5UmDKESC3gpGyXuuE80dFkeX9PanWgM3V4qRJePadRz66WmX0L5eMAEew/favicon.ico?format=100w + :anchor: What Bitcoin Did + + In this interview, I talk to Matt and Aaron from Start9. We discuss the growing demand for a private internet, retaining control of personal data, encryption and why bitcoin is fundamental to all of this + +.. topic-box:: + :title: July 3, 2020 - Matt Hill and Keagan McClelland | Tangents from Coin Center + :link: https://coincenter.simplecast.com/episodes/matt-hill-and-keagan-mcclelland + :image: https://cdn.simplecast.com/images/a4d6c0aa-baf2-4e83-a98e-33370aed293d/9a45b5c3-d9b4-443c-83fa-5a66cbdbae91/pod.jpg + :anchor: Coin Center + + Peter Van Valkenburgh interviews Matt Hill and Keagan McClelland about self-sovereign technology + +.. topic-box:: + :title: April 3, 2020 - Matt Hill from Start9 Labs + :link: https://www.youtube.com/watch?v=fZFS3RO8XEE + :image: https://i.ytimg.com/vi/fZFS3RO8XEE/maxresdefault.jpg + :anchor: Crypto Cousins + + A great talk with Matt Hill as he explains their new personal server diff --git a/site/source/learn/media/videos.rst b/site/source/learn/media/videos.rst new file mode 100644 index 0000000..7330096 --- /dev/null +++ b/site/source/learn/media/videos.rst @@ -0,0 +1,33 @@ +.. _videos: + +====== +Videos +====== + +Videos featuring Start9 Labs and/or Embassy devices. + +.. topic-box:: + :title: August 17, 2021 - HODL Day + :link: https://www.youtube.com/watch?v=gmkSODUraoM&t=8594s + :image: https://bullbitcoin.com/images/logo-bullbitcoin-hd-crop.png + :anchor: Bitcoin Summer In Montreal + + Matt Hill, CEO of Start9 labs, talks about the Embassy product and sovereign computing + +.. topic-box:: + :title: August 28, 2020 - Computing and Bitcoin + :link: https://youtu.be/xNfbiyv7OIM + :image: https://img.youtube.com/vi/xNfbiyv7OIM/hqdefault.jpg + :anchor: Bit Block Boom + + Matt Hill discusses the importance of building decentralized computing infrastructure and provides a glimpse of the future of personal computing. + + + +.. This is quite old and now irrelevant, leaving out for now +.. :title: July 27, 2020 - How to Set Up the START9 Embassy Personal Server With the Fully Noded App +.. :image: https://i.ytimg.com/vi/YMStLevc034/maxresdefault.jpg +.. :link: https://www.coindesk.com/tech/2020/07/08/start9-labs-pitches-a-private-at-home-server-and-it-works/ +.. :anchor: Bitcoin Magazine + +.. This Bitcoin Magazine breakdown video is all about the Start9 Embassy. The Embassy is a radical, uncompromising, plug-and-play private server diff --git a/site/source/misc-guides/available-services.rst b/site/source/misc-guides/available-services.rst deleted file mode 100644 index 3859217..0000000 --- a/site/source/misc-guides/available-services.rst +++ /dev/null @@ -1,29 +0,0 @@ -.. _available-services: - -****************** -Available Services -****************** - -A list of currently-available services for the Embassy. - -Bitcoin-related services -======================== - -* `Bitcoin `_ -* `Bitcoin Proxy `_ -* `Lightning Network Daemon (LND) `_ -* `c-lightning `_ -* `Ride the Lightning (RTL) `_ -* `Spark Wallet `_ -* `BTCPayServer `_ -* `Sphinx Chat `_ - -Other services -============== - -* `Bitwarden `_ -* `Burn After Reading `_ -* `Cups `_ -* `File Browser `_ -* `Mastodon `_ -* `Embassy Pages `_ \ No newline at end of file diff --git a/site/source/misc-guides/bitcoin-cli.rst b/site/source/misc-guides/bitcoin-cli.rst deleted file mode 100644 index baebd5a..0000000 --- a/site/source/misc-guides/bitcoin-cli.rst +++ /dev/null @@ -1,26 +0,0 @@ -.. _bitcoin-cli: - -***************** -Using Bitcoin-Cli -***************** - -Instructions for accessing the bitcoind service in order to issue commands directly. - -.. warning:: This is an advanced feature and should be used with caution. Start9 is not responsible for any damage you might cause through SSH access. - -1. First, you will need SSH access. Please see the :ref:`setup instructions ` for details. -2. Access your Embassy and then you can interact with the bitcoind docker container using the following syntax:: - - sudo docker exec bitcoind bitcoin-cli COMMAND - -.. admonition:: Example - - sudo docker exec bitcoind bitcoin-cli getnetworkinfo - -A list of possible commands can be found `here `_. - -You can also drop into a shell using:: - - sudo docker exec -it bitcoind bash - -and then enter ``bitcoin-cli`` commands. When you are finished, simply type ``exit``. \ No newline at end of file diff --git a/site/source/misc-guides/tor-firefox/android.rst b/site/source/misc-guides/tor-firefox/android.rst deleted file mode 100644 index 05d5df6..0000000 --- a/site/source/misc-guides/tor-firefox/android.rst +++ /dev/null @@ -1,46 +0,0 @@ -.. _firefox-tor-android: - -************************************** -Setting up Firefox with Tor on Android -************************************** - -.. warning:: - This guide assumes you have completed :ref:`setting up Tor for Android`. Please visit this section before proceeding as it is required for Firefox to properly work with Tor. - -Once Tor is setup on your system, you can proceed to setup Firefox: - -1. Download `Firefox Beta `_ from the Play Store, or `Fennec `_ from F-Droid. - -2. Next, download a `Proxy Auto Config` file that will use Orbot to resolve `.onion` URLs. We have one hosted `here `_. - -3. Navigate to ``about:config`` in the Firefox URL bar. - -.. figure:: /_static/images/tor/about_config.png - :width: 50% - :alt: Firefox about config - -4. You are going to have to change a few options in here. First, type ``network.proxy.type`` into the search bar, and set the value to ``2``. - -.. figure:: /_static/images/tor/network_proxy_type.png - :width: 50% - :alt: Firefox network proxy type setting screenshot - -5. Search for ``network.proxy.autoconfig_url``, and set the value to ``file:///storage/emulated/0/Download/proxy.pac``. - -.. figure:: /_static/images/tor/autoconfig_url.png - :width: 50% - :alt: Firefox autoconfig url setting screenshot - -6. Search for ``network.proxy.socks_remote_dns``, and set the value to ``true``. - -.. figure:: /_static/images/tor/socks_remote_dns.png - :width: 50% - :alt: Firefox socks remote dns setting screenshot - -7. Search for ``dom.securecontext.whitelist_onions`` and set the value to ``true``. - -.. figure:: /_static/images/tor/firefox_whitelist_mobile.png - :width: 50% - :alt: Firefox whitelist onions screenshot - -8. Restart Firefox, and you’re all set! You should now be able to navigate to `.onion` URLs in Firefox. This means you can bookmark Cups Messenger, and use your Bitwarden Tor address in the `Bitwarden Password Manager `_ native application. diff --git a/site/source/misc-guides/tor-firefox/desktop.rst b/site/source/misc-guides/tor-firefox/desktop.rst deleted file mode 100644 index 5c2a501..0000000 --- a/site/source/misc-guides/tor-firefox/desktop.rst +++ /dev/null @@ -1,94 +0,0 @@ -.. _firefox-tor-desktop: - -************************************** -Setting up Firefox with Tor on Desktop -************************************** - -.. warning:: - This guide assumes you have completed :ref:`setting up Tor`. Please visit this section first before you proceed as it is required for Firefox to properly work with Tor. - -1. Open Firefox. - -2. Enter ``about:config`` in the URL bar. Accept any warnings that may appear about accessing advanced settings. - -3. Search for ``dom.securecontext.whitelist_onions`` and set the value to ``true``. - - .. figure:: /_static/images/tor/firefox_whitelist.png - :width: 80% - :alt: Firefox whitelist onions screenshot - -4. Download a `Proxy Auto Config` file to inform Firefox how to use the Tor daemon running on your computer. You can get Start9's standard file by following the OS-specific instructions below: - Windows: - - Click `here `_ to get the file and save the file somewhere you won’t delete it. Please remember the location you save the file in if you do not use our example location. For this example: - - .. code-block:: - - C:\Program Files\Tor Browser\proxy.pac - - Mac: - - Open the ``Terminal`` App on your Mac. You can find it in your list of Applications. In the terminal, enter: - - .. code-block:: - - brew install wget - - And then: - - .. code-block:: - - wget -P /usr/local/etc/tor https://registry.start9labs.com/sys/proxy.pac - - Linux: - - From a terminal, enter: - - .. code-block:: - - sudo wget -P /etc/tor https://registry.start9labs.com/sys/proxy.pac - - -5. Now open your Firefox web browser, and select options (Windows), or preferences (Mac/Linux): - - .. figure:: /_static/images/tor/firefox_options_windows.png - :width: 80% - :alt: Firefox options screenshot - - Select :menuselection:``Settings --> Options`` - - -6. Search for the term “proxy” in the search bar in the upper right, then select the button that says ``Settings…``: - - .. figure:: /_static/images/tor/firefox_search.png - :width: 80% - :alt: Firefox search screenshot - -7. This should open a menu that will allow you to configure your proxy settings. Select ``Automatic proxy configuration URL`` and paste in the path to your PAC file from earlier, prefixed with ``file://``. For example: - Windows: - - .. code-block:: - - file://C:/Program Files/Tor Browser/proxy.pac - - Mac: - - .. code-block:: - - file:///usr/local/etc/tor/proxy.pac - - Linux: - - .. code-block:: - - file:///etc/tor/proxy.pac - -8. Then, check the box labeled ``Proxy DNS when using SOCKS v5``: - - .. figure:: /_static/images/tor/firefox_proxy.png - :width: 80% - :alt: Firefox proxy settings screenshot - -9. Click ``OK`` and then restart Firefox for the changes to take effect. - -10. You’re all set! You should now be able to navigate to ``.onion`` URLs in Firefox. This means you can bookmark Cups Messenger, and use your Bitwarden Tor address in the `Bitwarden Firefox Plugin `_. diff --git a/site/source/misc-guides/tor-firefox/index.rst b/site/source/misc-guides/tor-firefox/index.rst deleted file mode 100644 index 5f4ef38..0000000 --- a/site/source/misc-guides/tor-firefox/index.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. _configure_firefox_tor: - -*************************** -Configuring Firefox for Tor -*************************** - -.. warning:: - This guide assumes you are already :ref:`running Tor on your phone or computer`. - -Once you have completed the above guide, select your device's operating system below: - -.. toctree:: - :maxdepth: 2 - - Desktop - Mobile diff --git a/site/source/misc-guides/tor-firefox/ios.rst b/site/source/misc-guides/tor-firefox/ios.rst deleted file mode 100644 index 141befb..0000000 --- a/site/source/misc-guides/tor-firefox/ios.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _firefox-tor-ios: - -********************************** -Setting up Firefox with Tor on iOS -********************************** - -Unfortunately, Apple does not allow tor to be run natively on iOS. This means that Firefox cannot be configured to use tor. This leaves the following options for iOS users: - -You can use Start9's own Consulate Browser, which is available `here `_, or you can select another Tor Browser by searching the `App Store `_. diff --git a/site/source/misc-guides/tor-firefox/mobile.rst b/site/source/misc-guides/tor-firefox/mobile.rst deleted file mode 100644 index 9b290f6..0000000 --- a/site/source/misc-guides/tor-firefox/mobile.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. _firefox-tor-mobile: - -************************************** -Setting up Firefox with Tor on Mobile -************************************** - -If you are on Android, you can continue after setting up Tor on your device. If you are on iOS, click below for your options. - -.. toctree:: - :maxdepth: 1 - - Android - iOS diff --git a/site/source/misc-guides/tor-os/android.rst b/site/source/misc-guides/tor-os/android.rst deleted file mode 100644 index e822781..0000000 --- a/site/source/misc-guides/tor-os/android.rst +++ /dev/null @@ -1,84 +0,0 @@ -.. _tor-android: - -********************** -Running Tor on Android -********************** - -Some apps, such as Tor Browser or Cups Messenger, have Tor built in. They do not require additional software or configurations to utilize Tor. Most apps, however, do not have Tor built in. They require an app called Orbot to be installed in order to utilize Tor. - -.. youtube:: b__mVfN-BP8 - -Running Orbot -------------- - -Orbot is a system wide proxy for your Android or Graphene device that enables communications over Tor. - -1. Download Orbot from the `Play Store `_ , or from `F-Droid `_. - -2. Launch Orbot. - -3. Open the kebab menu in the upper right hand corner and select `Settings`: - -.. figure:: /_static/images/tor/orbot_menu.png - :width: 50% - :alt: Orbot menu - -4. Make sure the options for `Start Orbot on Boot` and `Allow Background Starts` are checked: - -.. figure:: /_static/images/tor/orbot_settings.png - :width: 50% - :alt: Orbot settings - -5. Go back, and tap start: - -.. figure:: /_static/images/tor/orbot_start.png - :width: 50% - :alt: Orbot start - -6. Orbot will start up the Tor service. Once complete, you will see: - -.. figure:: /_static/images/tor/orbot_started.png - :width: 50% - :alt: Orbot started - -7. That's it. Certain apps, such as Firefox or DuckDuckGo will now just work. Other apps, however, require that Orbot be running VPN mode. - -Orbot VPN mode --------------- - -To utilize Tor, most apps require that Orbot be running in VPN mode. - -1. Disable Private DNS on your device. To do so, navigate to: - - ``Settings > Network & Internet > Advanced > Private DNS > Off`` - -.. figure:: /_static/images/tor/private_dns_off.png - :width: 50% - :alt: Private DNS off - - Toggle Private DNS to "off" - -2. Launch Orbot and toggle VPN Mode on: - -.. figure:: /_static/images/tor/orbot0.png - :width: 50% - :alt: Orbot vpn mode - - Toggle VPN Mode to "on" - -Under `Tor-Enabled Apps`, click the gear icon and add apps you want to utilize Tor. - -.. figure:: /_static/images/tor/orbot1.png - :width: 50% - :alt: Orbot apps - -Examples of applications that need this feature are: - -- Bitwarden -- Element -- Zeus - -You can also add the following browsers to the Tor-Enabled Apps list to easily access Tor addresses (`.onion` URLs): - -- Chrome -- Brave diff --git a/site/source/misc-guides/tor-os/index.rst b/site/source/misc-guides/tor-os/index.rst deleted file mode 100644 index 6bdd88b..0000000 --- a/site/source/misc-guides/tor-os/index.rst +++ /dev/null @@ -1,18 +0,0 @@ -.. _running-tor: - -*********** -Running Tor -*********** - -Running Tor on your phone or computer enables apps that are not Tor-enabled to communicate over Tor. - -Select your operating system to get started: - -.. toctree:: - :maxdepth: 1 - - MacOS - Windows - Linux - Android - iOS diff --git a/site/source/misc-guides/tor-os/ios.rst b/site/source/misc-guides/tor-os/ios.rst deleted file mode 100644 index 73ee67e..0000000 --- a/site/source/misc-guides/tor-os/ios.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _tor-ios: - -********************* -Setting up Tor on iOS -********************* - -Unfortunately, Apple does not allow tor to be run natively on iOS. This leaves 2 options for iOS users: - -You can use Start9's own Consulate Browser, which is available `here `_, or you can select another Tor Browser by searching the `App Store `_. diff --git a/site/source/misc-guides/tor-os/linux.rst b/site/source/misc-guides/tor-os/linux.rst deleted file mode 100644 index 3c5ddaa..0000000 --- a/site/source/misc-guides/tor-os/linux.rst +++ /dev/null @@ -1,15 +0,0 @@ -.. _tor-linux: - -******************** -Running Tor on Linux -******************** - -For Debian and Debian-based systems, such as Ubuntu, Mint, etc. - -#. Install the Tor proxy service to your system. To do so, open your terminal and run the following command: - - .. code-block:: - - sudo apt update && sudo apt install tor - -#. That's it! Your Linux machine is now setup to natively use Tor. diff --git a/site/source/misc-guides/tor-os/mac.rst b/site/source/misc-guides/tor-os/mac.rst deleted file mode 100644 index cf13c5d..0000000 --- a/site/source/misc-guides/tor-os/mac.rst +++ /dev/null @@ -1,98 +0,0 @@ -.. _tor-mac: - -******************** -Running Tor on MacOS -******************** - -For macOS running on ARM chips (ie. newer macs): -================================================ - -Install Homebrew ----------------- - -.. warning:: macOS Homebrew running natively on M1/Apple Silicon/ARM has partial functionality. Therefore, some additional steps are needed to setup Homebrew. - -#. Open a command line editor (Terminal), and run the following commands: - - .. code-block:: - - softwareupdate --install-rosetta - arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" - -Install Tor ------------ - -.. warning:: If you have the Tor Browser open, close it and quit the application. - -#. In the command line, install Tor: - - .. code-block:: - - arch -x86_64 brew install tor - -#. Then start Tor: - - .. code-block:: - - arch -x86_64 brew services start tor - -This will start Tor and ensure that it is always running, even after a restart. See the `Tor Project `_ for more details. - -For macOS Big Sur/Catalina: -=========================== - -Install Homebrew ----------------- - -1. If you do not have Homebrew installed, follow the installation instructions `here `_. - - TLDR: Open the command line editor (Terminal) and paste the following line: - - .. code-block:: - - /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" - -2. You will be prompted for your system password before installation; proceed with entering your password: - -.. figure:: /_static/images/tor/install_homebrew.png - :width: 80% - :alt: Homebrew installation - - Enter your password - -3. You will be notified which directories Homebrew is going to create, hit :code:`RETURN`: - -.. figure:: /_static/images/tor/install_homebrew1.png - :width: 80% - :alt: Homebrew installation - -Homebrew creates the directories and downloads any other files it needs e.g. “Command Line Tool for Xcode” and “Homebrew”. - -Wait a few minutes while it downloads and installs what it needs. - -.. warning:: Surprisingly, Homebrew uses Google Analytics to collect anonymous usage data. You can deselect the option to share usage data by `opting out `_. - -Install Tor ------------ - -.. warning:: If you have the Tor Browser open, close it and quit the application. - -#. In the command line, install Tor: - - .. code-block:: - - brew install tor - - Once it is finished you have the following options: - - .. figure:: /_static/images/tor/install_tor.png - :width: 80% - :alt: Tor installation - -#. Then run Tor with: - - .. code-block:: - - brew services start tor - -This will start Tor and ensure that it is always running, even after a restart. See the `Tor Project `_ for more details. diff --git a/site/source/service-packaging/advanced/dev-tools/embassy-cli.rst b/site/source/service-packaging/advanced/dev-tools/embassy-cli.rst new file mode 100644 index 0000000..73ef4da --- /dev/null +++ b/site/source/service-packaging/advanced/dev-tools/embassy-cli.rst @@ -0,0 +1,52 @@ +.. _embassy-cli: + +============================== +Embassy Command Line Interface +============================== + +.. warning:: This is for advanced users only!! Anything you do while SSH'd into your Embassy is NOT SUPPORTED, unless under the guidance of a Start9 technician. + +When interacting with Embassy directly, you will invariably want to use ``embassy-cli``. Embassy-CLI can control EmbassyOS in many of the same ways that the UI can, but with finer controls and deeper insights. + +In order to use Embassy-CLI, you will first need to authorize yourself with the following command... + + .. code-block:: bash + + embassy-cli auth login + + and enter your Embassy Master Password at the prompt. + + +You can enter ``embassy-cli help`` or ``embassy-cli