Update flashing guide for all platforms

This commit is contained in:
kn0wmad
2022-10-27 13:29:05 -06:00
parent 81f20dc852
commit 2f6ed2a547
63 changed files with 230 additions and 245 deletions

105
poetry.lock generated
View File

@@ -59,8 +59,8 @@ python-versions = ">=3.6.0"
soupsieve = ">1.2" soupsieve = ">1.2"
[package.extras] [package.extras]
lxml = ["lxml"]
html5lib = ["html5lib"] html5lib = ["html5lib"]
lxml = ["lxml"]
[[package]] [[package]]
name = "certifi" name = "certifi"
@@ -83,11 +83,11 @@ unicode_backport = ["unicodedata2"]
[[package]] [[package]]
name = "colorama" name = "colorama"
version = "0.4.5" version = "0.4.6"
description = "Cross-platform colored terminal text." description = "Cross-platform colored terminal text."
category = "main" category = "main"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
[[package]] [[package]]
name = "commonmark" name = "commonmark"
@@ -98,7 +98,7 @@ optional = false
python-versions = "*" python-versions = "*"
[package.extras] [package.extras]
test = ["hypothesis (==3.55.3)", "flake8 (==3.7.8)"] test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"]
[[package]] [[package]]
name = "docutils" name = "docutils"
@@ -274,8 +274,8 @@ py = ">=1.5.0"
wcwidth = "*" wcwidth = "*"
[package.extras] [package.extras]
testing = ["xmlschema", "requests", "nose", "mock", "hypothesis (>=3.56)", "argcomplete"]
checkqa-mypy = ["mypy (==v0.761)"] checkqa-mypy = ["mypy (==v0.761)"]
testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"]
[[package]] [[package]]
name = "pytz" name = "pytz"
@@ -376,9 +376,9 @@ sphinxcontrib-qthelp = "*"
sphinxcontrib-serializinghtml = ">=1.1.5" sphinxcontrib-serializinghtml = ">=1.1.5"
[package.extras] [package.extras]
test = ["typed-ast", "cython", "html5lib", "pytest-cov", "pytest"]
lint = ["types-requests", "types-typed-ast", "docutils-stubs", "mypy (>=0.931)", "isort", "flake8 (>=3.5.0)"]
docs = ["sphinxcontrib-websupport"] docs = ["sphinxcontrib-websupport"]
lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.931)", "docutils-stubs", "types-typed-ast", "types-requests"]
test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"]
[[package]] [[package]]
name = "sphinx-autobuild" name = "sphinx-autobuild"
@@ -409,8 +409,8 @@ python-versions = ">=3.7"
sphinx = ">=3" sphinx = ">=3"
[package.extras] [package.extras]
test = ["pytest", "pre-commit"]
doc = ["alabaster"] doc = ["alabaster"]
test = ["pre-commit", "pytest"]
[[package]] [[package]]
name = "sphinx-copybutton" name = "sphinx-copybutton"
@@ -424,8 +424,8 @@ python-versions = ">=3.6"
sphinx = ">=1.8" sphinx = ">=1.8"
[package.extras] [package.extras]
rtd = ["sphinx-book-theme", "myst-nb", "ipython", "sphinx"]
code_style = ["pre-commit (==2.12.1)"] code_style = ["pre-commit (==2.12.1)"]
rtd = ["sphinx", "ipython", "myst-nb", "sphinx-book-theme"]
[[package]] [[package]]
name = "sphinx-multiversion-scylla" name = "sphinx-multiversion-scylla"
@@ -496,8 +496,8 @@ docutils = ">=0.15"
sphinx = ">=4.0.0" sphinx = ">=4.0.0"
[package.extras] [package.extras]
dev = ["autoflake (==1.4)", "black (==22.1.0)", "check-manifest (==0.47)", "doc8 (==0.10.1)", "flake8-commas (==2.1.0)", "flake8-quotes (==3.3.1)", "flake8 (==4.0.1)", "isort (==5.10.1)", "mypy (==0.931)", "pip-check-reqs (==2.3.2)", "pydocstyle (==6.1.1)", "pyenchant (==3.2.2)", "pylint (==2.12.2)", "pyroma (==3.2)", "pytest-cov (==3.0.0)", "pytest (==7.0.1)", "types-docutils (==0.17.5)", "vulture (==2.3)"]
prompt = ["sphinx-prompt (>=0.1)"] prompt = ["sphinx-prompt (>=0.1)"]
dev = ["vulture (==2.3)", "types-docutils (==0.17.5)", "pytest (==7.0.1)", "pytest-cov (==3.0.0)", "pyroma (==3.2)", "pylint (==2.12.2)", "pyenchant (==3.2.2)", "pydocstyle (==6.1.1)", "pip-check-reqs (==2.3.2)", "mypy (==0.931)", "isort (==5.10.1)", "flake8 (==4.0.1)", "flake8-quotes (==3.3.1)", "flake8-commas (==2.1.0)", "doc8 (==0.10.1)", "check-manifest (==0.47)", "black (==22.1.0)", "autoflake (==1.4)"]
[[package]] [[package]]
name = "sphinx-tabs" name = "sphinx-tabs"
@@ -526,8 +526,8 @@ optional = false
python-versions = ">=3.5" python-versions = ">=3.5"
[package.extras] [package.extras]
lint = ["flake8", "mypy", "docutils-stubs"]
test = ["pytest"] test = ["pytest"]
lint = ["docutils-stubs", "mypy", "flake8"]
[[package]] [[package]]
name = "sphinxcontrib-devhelp" name = "sphinxcontrib-devhelp"
@@ -538,8 +538,8 @@ optional = false
python-versions = ">=3.5" python-versions = ">=3.5"
[package.extras] [package.extras]
lint = ["flake8", "mypy", "docutils-stubs"]
test = ["pytest"] test = ["pytest"]
lint = ["docutils-stubs", "mypy", "flake8"]
[[package]] [[package]]
name = "sphinxcontrib-htmlhelp" name = "sphinxcontrib-htmlhelp"
@@ -550,8 +550,8 @@ optional = false
python-versions = ">=3.6" python-versions = ">=3.6"
[package.extras] [package.extras]
test = ["html5lib", "pytest"] lint = ["flake8", "mypy", "docutils-stubs"]
lint = ["docutils-stubs", "mypy", "flake8"] test = ["pytest", "html5lib"]
[[package]] [[package]]
name = "sphinxcontrib-jsmath" name = "sphinxcontrib-jsmath"
@@ -562,7 +562,7 @@ optional = false
python-versions = ">=3.5" python-versions = ">=3.5"
[package.extras] [package.extras]
test = ["mypy", "flake8", "pytest"] test = ["pytest", "flake8", "mypy"]
[[package]] [[package]]
name = "sphinxcontrib-qthelp" name = "sphinxcontrib-qthelp"
@@ -573,8 +573,8 @@ optional = false
python-versions = ">=3.5" python-versions = ">=3.5"
[package.extras] [package.extras]
lint = ["flake8", "mypy", "docutils-stubs"]
test = ["pytest"] test = ["pytest"]
lint = ["docutils-stubs", "mypy", "flake8"]
[[package]] [[package]]
name = "sphinxcontrib-serializinghtml" name = "sphinxcontrib-serializinghtml"
@@ -585,8 +585,8 @@ optional = false
python-versions = ">=3.5" python-versions = ">=3.5"
[package.extras] [package.extras]
lint = ["flake8", "mypy", "docutils-stubs"]
test = ["pytest"] test = ["pytest"]
lint = ["docutils-stubs", "mypy", "flake8"]
[[package]] [[package]]
name = "sphinxcontrib-youtube" name = "sphinxcontrib-youtube"
@@ -601,7 +601,7 @@ requests = "*"
Sphinx = ">=0.6" Sphinx = ">=0.6"
[package.extras] [package.extras]
doc = ["furo", "sphinx-copybutton"] doc = ["sphinx-copybutton", "furo"]
[[package]] [[package]]
name = "tornado" name = "tornado"
@@ -677,13 +677,8 @@ argh = [
{file = "argh-0.26.2-py2.py3-none-any.whl", hash = "sha256:a9b3aaa1904eeb78e32394cd46c6f37ac0fb4af6dc488daa58971bdc7d7fcaf3"}, {file = "argh-0.26.2-py2.py3-none-any.whl", hash = "sha256:a9b3aaa1904eeb78e32394cd46c6f37ac0fb4af6dc488daa58971bdc7d7fcaf3"},
{file = "argh-0.26.2.tar.gz", hash = "sha256:e9535b8c84dc9571a48999094fda7f33e63c3f1b74f3e5f3ac0105a58405bb65"}, {file = "argh-0.26.2.tar.gz", hash = "sha256:e9535b8c84dc9571a48999094fda7f33e63c3f1b74f3e5f3ac0105a58405bb65"},
] ]
atomicwrites = [ atomicwrites = []
{file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, attrs = []
]
attrs = [
{file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"},
{file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"},
]
babel = [ babel = [
{file = "Babel-2.10.3-py3-none-any.whl", hash = "sha256:ff56f4892c1c4bf0d814575ea23471c230d544203c7748e8c68f0089478d48eb"}, {file = "Babel-2.10.3-py3-none-any.whl", hash = "sha256:ff56f4892c1c4bf0d814575ea23471c230d544203c7748e8c68f0089478d48eb"},
{file = "Babel-2.10.3.tar.gz", hash = "sha256:7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51"}, {file = "Babel-2.10.3.tar.gz", hash = "sha256:7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51"},
@@ -692,18 +687,9 @@ beautifulsoup4 = [
{file = "beautifulsoup4-4.11.1-py3-none-any.whl", hash = "sha256:58d5c3d29f5a36ffeb94f02f0d786cd53014cf9b3b3951d42e0080d8a9498d30"}, {file = "beautifulsoup4-4.11.1-py3-none-any.whl", hash = "sha256:58d5c3d29f5a36ffeb94f02f0d786cd53014cf9b3b3951d42e0080d8a9498d30"},
{file = "beautifulsoup4-4.11.1.tar.gz", hash = "sha256:ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693"}, {file = "beautifulsoup4-4.11.1.tar.gz", hash = "sha256:ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693"},
] ]
certifi = [ certifi = []
{file = "certifi-2022.9.24-py3-none-any.whl", hash = "sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382"}, charset-normalizer = []
{file = "certifi-2022.9.24.tar.gz", hash = "sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14"}, colorama = []
]
charset-normalizer = [
{file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"},
{file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"},
]
colorama = [
{file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"},
{file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"},
]
commonmark = [ commonmark = [
{file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"}, {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"},
{file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"}, {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"},
@@ -712,18 +698,12 @@ docutils = [
{file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"},
{file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"},
] ]
idna = [ idna = []
{file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"},
{file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"},
]
imagesize = [ imagesize = [
{file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"},
{file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"},
] ]
importlib-metadata = [ importlib-metadata = []
{file = "importlib_metadata-5.0.0-py3-none-any.whl", hash = "sha256:ddb0e35065e8938f867ed4928d0ae5bf2a53b7773871bfe6bcc7e4fcdc7dea43"},
{file = "importlib_metadata-5.0.0.tar.gz", hash = "sha256:da31db32b304314d044d3c12c79bd59e307889b287ad12ff387b3500835fc2ab"},
]
jinja2 = [ jinja2 = [
{file = "Jinja2-3.0.3-py3-none-any.whl", hash = "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8"}, {file = "Jinja2-3.0.3-py3-none-any.whl", hash = "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8"},
{file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"}, {file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"},
@@ -773,10 +753,7 @@ markupsafe = [
{file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"}, {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"},
{file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"}, {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"},
] ]
more-itertools = [ more-itertools = []
{file = "more-itertools-9.0.0.tar.gz", hash = "sha256:5a6257e40878ef0520b1803990e3e22303a41b5714006c32a3fd8304b26ea1ab"},
{file = "more_itertools-9.0.0-py3-none-any.whl", hash = "sha256:250e83d7e81d0c87ca6bd942e6aeab8cc9daa6096d12c5308f3f92fa5e5c1f41"},
]
packaging = [ packaging = [
{file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"},
{file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"},
@@ -795,10 +772,7 @@ py = [
{file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"},
{file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"},
] ]
pygments = [ pygments = []
{file = "Pygments-2.13.0-py3-none-any.whl", hash = "sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42"},
{file = "Pygments-2.13.0.tar.gz", hash = "sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1"},
]
pyparsing = [ pyparsing = [
{file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"},
{file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"},
@@ -807,10 +781,7 @@ pytest = [
{file = "pytest-5.4.3-py3-none-any.whl", hash = "sha256:5c0db86b698e8f170ba4582a492248919255fcd4c79b1ee64ace34301fb589a1"}, {file = "pytest-5.4.3-py3-none-any.whl", hash = "sha256:5c0db86b698e8f170ba4582a492248919255fcd4c79b1ee64ace34301fb589a1"},
{file = "pytest-5.4.3.tar.gz", hash = "sha256:7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8"}, {file = "pytest-5.4.3.tar.gz", hash = "sha256:7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8"},
] ]
pytz = [ pytz = []
{file = "pytz-2022.5-py2.py3-none-any.whl", hash = "sha256:335ab46900b1465e714b4fda4963d87363264eb662aab5e65da039c25f1f5b22"},
{file = "pytz-2022.5.tar.gz", hash = "sha256:c4d88f472f54d615e9cd582a5004d1e5f624854a6a27a6211591c251f22a6914"},
]
pyyaml = [ pyyaml = [
{file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"},
{file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"},
@@ -885,10 +856,7 @@ sphinx-copybutton = [
sphinx-multiversion-scylla = [ sphinx-multiversion-scylla = [
{file = "sphinx-multiversion-scylla-0.2.10.tar.gz", hash = "sha256:b54d664ecedcf45b98d6be1e939eac596719daa514e4a35f58d8e6330fb05d22"}, {file = "sphinx-multiversion-scylla-0.2.10.tar.gz", hash = "sha256:b54d664ecedcf45b98d6be1e939eac596719daa514e4a35f58d8e6330fb05d22"},
] ]
sphinx-notfound-page = [ sphinx-notfound-page = []
{file = "sphinx-notfound-page-0.8.3.tar.gz", hash = "sha256:f728403280026b84c234540bebbed7f710b9ea582e7348a35a5becefe4024332"},
{file = "sphinx_notfound_page-0.8.3-py2.py3-none-any.whl", hash = "sha256:c4867b345afccef72de71fb410c412540dfbb5c2de0dc06bde70b331b8f30469"},
]
sphinx-scylladb-theme = [ sphinx-scylladb-theme = [
{file = "sphinx-scylladb-theme-1.2.1.tar.gz", hash = "sha256:55923651acb74988755fd818175999e953e018d372cb778dd5120b03f71fe5ab"}, {file = "sphinx-scylladb-theme-1.2.1.tar.gz", hash = "sha256:55923651acb74988755fd818175999e953e018d372cb778dd5120b03f71fe5ab"},
{file = "sphinx_scylladb_theme-1.2.1-py3-none-any.whl", hash = "sha256:2666a6990c87c9601beb0c49f118e87d03b27c248ad263e553c3c9dbd9247ec9"}, {file = "sphinx_scylladb_theme-1.2.1-py3-none-any.whl", hash = "sha256:2666a6990c87c9601beb0c49f118e87d03b27c248ad263e553c3c9dbd9247ec9"},
@@ -945,14 +913,8 @@ tornado = [
{file = "tornado-6.2-cp37-abi3-win_amd64.whl", hash = "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b"}, {file = "tornado-6.2-cp37-abi3-win_amd64.whl", hash = "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b"},
{file = "tornado-6.2.tar.gz", hash = "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13"}, {file = "tornado-6.2.tar.gz", hash = "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13"},
] ]
typing-extensions = [ typing-extensions = []
{file = "typing_extensions-4.4.0-py3-none-any.whl", hash = "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e"}, urllib3 = []
{file = "typing_extensions-4.4.0.tar.gz", hash = "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa"},
]
urllib3 = [
{file = "urllib3-1.26.12-py2.py3-none-any.whl", hash = "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997"},
{file = "urllib3-1.26.12.tar.gz", hash = "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e"},
]
watchdog = [ watchdog = [
{file = "watchdog-2.1.9-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a735a990a1095f75ca4f36ea2ef2752c99e6ee997c46b0de507ba40a09bf7330"}, {file = "watchdog-2.1.9-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a735a990a1095f75ca4f36ea2ef2752c99e6ee997c46b0de507ba40a09bf7330"},
{file = "watchdog-2.1.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b17d302850c8d412784d9246cfe8d7e3af6bcd45f958abb2d08a6f8bedf695d"}, {file = "watchdog-2.1.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b17d302850c8d412784d9246cfe8d7e3af6bcd45f958abb2d08a6f8bedf695d"},
@@ -984,7 +946,4 @@ wcwidth = [
{file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"},
{file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"},
] ]
zipp = [ zipp = []
{file = "zipp-3.10.0-py3-none-any.whl", hash = "sha256:4fcb6f278987a6605757302a6e40e896257570d11c51628968ccb2a47e80c6c1"},
{file = "zipp-3.10.0.tar.gz", hash = "sha256:7a7262fd930bd3e36c50b9a64897aec3fafff3dfdeec9623ae22b40e93f99bb8"},
]

View File

@@ -13,7 +13,7 @@ echo "FILTER: make multiversion"
make clean && make multiversion make clean && make multiversion
echo "FILTER: rsync build" echo "FILTER: rsync build"
rsync -rzP --delete ./_build/dirhtml/ root@staging.start9labs.com:/var/www/html/staging.start9labs.com/dirhtml/ rsync -rzP --delete ./_build/dirhtml/ root@staging.start9labs.com:/var/www/html/start9.com/dirhtml/
echo "FILTER: ssh restart nginx and tor" echo "FILTER: ssh restart nginx and tor"
ssh root@staging.start9labs.com "systemctl reload nginx && systemctl reload tor" ssh root@staging.start9labs.com "systemctl reload nginx && systemctl reload tor"

View File

@@ -17,7 +17,7 @@ Community Channels
* `Matrix <https://matrix.to/#/#community:matrix.start9labs.com>`_ - Community channel that will gradually replace Telegram. * `Matrix <https://matrix.to/#/#community:matrix.start9labs.com>`_ - Community channel that will gradually replace Telegram.
* `Matrix Dev <https://matrix.to/#/#community-dev:matrix.start9labs.com>`_ - Primary channel for collaboration on EmbassyOS development and service packaging. * `Matrix Dev <https://matrix.to/#/#community-dev:matrix.start9labs.com>`_ - Primary channel for collaboration on embassyOS development and service packaging.
* `Matrix Tor (Tor required) <https://matrix.to/#/!iRwnQntcjpWfLxdgav:matrix.privacy34kn4ez3y3nijweec6w4g54i3g54sdv7r5mr6soma3w4begyd.onion?via=matrix.start9labs.com&via=matrix.privacy34kn4ez3y3nijweec6w4g54i3g54sdv7r5mr6soma3w4begyd.onion&via=oayal5vhil3zhj7ylixvpi4nr2xvhypdnenji4sx5q4kvaotevjvsxad.onion>`_ - Tor-only community channel for Embassy users * `Matrix Tor (Tor required) <https://matrix.to/#/!iRwnQntcjpWfLxdgav:matrix.privacy34kn4ez3y3nijweec6w4g54i3g54sdv7r5mr6soma3w4begyd.onion?via=matrix.start9labs.com&via=matrix.privacy34kn4ez3y3nijweec6w4g54i3g54sdv7r5mr6soma3w4begyd.onion&via=oayal5vhil3zhj7ylixvpi4nr2xvhypdnenji4sx5q4kvaotevjvsxad.onion>`_ - Tor-only community channel for Embassy users

View File

@@ -6,7 +6,7 @@ Join Start9
About Start9 About Start9
------------ ------------
Our mission at Start9 is to eliminate the need for trusted 3rd parties in the human/computer relationship. Our flagship product, EmbassyOS, is the most advanced, secure, and reliable personal server operating system in the world, making it possible for anyone to host their own software and data. One brick at a time, we will help construct an open and decentralized computing platform for humanity's future, one where sovereign individuals control their own data, commuities, and flow of information, as well as the abundance of intelligent devices that will come to engulf the human experience. Our mission at Start9 is to eliminate the need for trusted 3rd parties in the human/computer relationship. Our flagship product, embassyOS, is the most advanced, secure, and reliable personal server operating system in the world, making it possible for anyone to host their own software and data. One brick at a time, we will help construct an open and decentralized computing platform for humanity's future, one where sovereign individuals control their own data, commuities, and flow of information, as well as the abundance of intelligent devices that will come to engulf the human experience.
Read more about our :ref:`company and vision<start9>`, or check out this `podcast <https://www.thesurvivalpodcast.com/digital-sovereign>`_. Read more about our :ref:`company and vision<start9>`, or check out this `podcast <https://www.thesurvivalpodcast.com/digital-sovereign>`_.

View File

@@ -36,7 +36,7 @@ Please pardon our dust...
.. <div class="cd-timeline-content"> .. <div class="cd-timeline-content">
.. <h2>early days</h2> .. <h2>early days</h2>
.. <h3>EmbassyOS v0.1.0</h3> .. <h3>embassyOS v0.1.0</h3>
.. <ul class="content-skills"> .. <ul class="content-skills">
.. <li>Services Marketplace</li> .. <li>Services Marketplace</li>
.. <li>One-click installs of open source, self-hosted software</li> .. <li>One-click installs of open source, self-hosted software</li>
@@ -144,7 +144,7 @@ Please pardon our dust...
.. </div> .. </div>
.. <div class="cd-timeline-content"> .. <div class="cd-timeline-content">
.. <h2>rebirth of embassyos</h2> .. <h2>rebirth of embassyOS</h2>
.. <h3>EOS v0.3.0</h3> .. <h3>EOS v0.3.0</h3>
.. <ul class="content-skills"> .. <ul class="content-skills">
.. <li>Complete OS overhaul</li> .. <li>Complete OS overhaul</li>

View File

@@ -94,8 +94,8 @@ html_theme_path = ["../../sphinx-scylladb-theme"]
html_theme_options = { html_theme_options = {
"conf_py_path": "site/source/", "conf_py_path": "site/source/",
"banner_button_text": "Learn more", "banner_button_text": "Learn more",
"banner_button_url": "https://start9labs.medium.com/announcing-embassyos-0-3-0-f3d2d2ea016f", "banner_button_url": "https://start9labs.medium.com/announcing-embassyOS-0-3-0-f3d2d2ea016f",
"banner_title_text": "EmbassyOS 0.3.0 is now available 🥳", "banner_title_text": "embassyOS 0.3.0 is now available 🥳",
"hide_banner": "true", "hide_banner": "true",
"hide_edit_this_page_button": "false", "hide_edit_this_page_button": "false",
"hide_sidebar_index": "true", "hide_sidebar_index": "true",

View File

@@ -3,7 +3,7 @@
Decentralize Decentralize
============ ============
EmbassyOS allows users to swap to an alternative Marketplace in case they want a service not offered in the official `Start9 Marketplace <https://marketplace.start9.com>`_, would like a backup registry, or have for some reason lost trust in :ref:`Start9 <start9>`. embassyOS allows users to swap to an alternative Marketplace in case they want a service not offered in the official `Start9 Marketplace <https://marketplace.start9.com>`_, would like a backup registry, or have for some reason lost trust in :ref:`Start9 <start9>`.
- In order to change to an unofficial Marketplace, you can see our documentation :ref:`here <alt-marketplaces>`. - In order to change to an unofficial Marketplace, you can see our documentation :ref:`here <alt-marketplaces>`.

View File

@@ -12,7 +12,7 @@ Email us at jobs@start9labs.com with your resume and any other information you t
About Start9 About Start9
------------ ------------
Our mission at Start9 is to eliminate the need for trusted 3rd parties in the human/computer relationship. Our flagship product, EmbassyOS, is the most advanced, secure, and reliable personal server operating system in the world, making it possible for anyone to host their own software and data. One brick at a time, we will help construct an open and decentralized computing platform for humanity's future, one where sovereign individuals control their own data and the flow of information, as well as the abundance of intelligent devices that will come to engulf the human experience. Our mission at Start9 is to eliminate the need for trusted 3rd parties in the human/computer relationship. Our flagship product, embassyOS, is the most advanced, secure, and reliable personal server operating system in the world, making it possible for anyone to host their own software and data. One brick at a time, we will help construct an open and decentralized computing platform for humanity's future, one where sovereign individuals control their own data and the flow of information, as well as the abundance of intelligent devices that will come to engulf the human experience.
Read more about our :ref:`company and vision<start9>`, or check out this `podcast <https://www.thesurvivalpodcast.com/digital-sovereign>`_. Read more about our :ref:`company and vision<start9>`, or check out this `podcast <https://www.thesurvivalpodcast.com/digital-sovereign>`_.
@@ -48,7 +48,7 @@ Frontend Developer (JS)
We are seeking a JS developer who is skilled with CSS and cares deeply about crafting beautiful user interfaces. We are seeking a JS developer who is skilled with CSS and cares deeply about crafting beautiful user interfaces.
Start9 frontend devs leverage Angular, Typescript, and RXJS to deliver clean, modular, and performant codebases. The `EmbassyOS frontend codebase <https://github.com/Start9Labs/embassy-os/tree/master/frontend>`_ uses websockets and Start9's own nonce-based PatchDB to create a real-time sync and state management system with the backend. The user feels "plugged in" to their server, even if they are on the other side of the world. Start9 frontend devs leverage Angular, Typescript, and RXJS to deliver clean, modular, and performant codebases. The `embassyOS frontend codebase <https://github.com/Start9Labs/embassy-os/tree/master/frontend>`_ uses websockets and Start9's own nonce-based PatchDB to create a real-time sync and state management system with the backend. The user feels "plugged in" to their server, even if they are on the other side of the world.
Requirements: Requirements:
@@ -63,7 +63,7 @@ Requirements:
Backend Developer (Rust) Backend Developer (Rust)
======================== ========================
We are seeking a Rust developer to contribute to the `EmbassyOS backend codebase <https://github.com/Start9Labs/embassy-os/tree/master/backend>`_. The EmbassyOS backend is a novel and highly performant container management system that affords users granular control over applications running on their personal server. We are seeking a Rust developer to contribute to the `embassyOS backend codebase <https://github.com/Start9Labs/embassy-os/tree/master/backend>`_. The embassyOS backend is a novel and highly performant container management system that affords users granular control over applications running on their personal server.
Requirements: Requirements:
@@ -82,7 +82,7 @@ Bonus:
Product Designer Product Designer
================ ================
We are seeking a passionate product designer to lead UI/UX design at Start9, including our website, EmbassyOS, and ancillary products and marketing materials. Until now, Start9 devs have leaned heavily on stock html/css components with minimal styling. We are now determiend to step up our design game and need an expert to lead the charge. We are seeking a passionate product designer to lead UI/UX design at Start9, including our website, embassyOS, and ancillary products and marketing materials. Until now, Start9 devs have leaned heavily on stock html/css components with minimal styling. We are now determiend to step up our design game and need an expert to lead the charge.
Requirements Requirements

View File

@@ -6,7 +6,7 @@ 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. .. 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. 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... In order to use Embassy-CLI, you will first need to authorize yourself with the following command...
@@ -47,6 +47,6 @@ You can enter ``embassy-cli help`` or ``embassy-cli <option> help`` to get an ov
net Network information net Network information
notification Control UI notifications notification Control UI notifications
package Interact with packages package Interact with packages
server EmbassyOS operations and information server embassyOS operations and information
ssh Manage SSH keys ssh Manage SSH keys
wifi Manage WiFi networks wifi Manage WiFi networks

View File

@@ -40,4 +40,4 @@ You can enter ``embassy-sdk help`` or ``embassy-sdk <option> help`` to get an ov
verify Verify a .s9pk is valid verify Verify a .s9pk is valid
Please visit the `EmbassyOS backend <https://github.com/Start9Labs/embassy-os/tree/master/backend>`_ for more details Please visit the `embassyOS backend <https://github.com/Start9Labs/embassy-os/tree/master/backend>`_ for more details

View File

@@ -6,7 +6,7 @@ Embassy Daemon
.. 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. .. 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.
``embassyd`` is the daemon that runs everything that could be considered EmbassyOS. ``embassyd`` is the daemon that runs everything that could be considered embassyOS.
When SSH'd into your Embassy, you may see the status of EmbassyD with the following: When SSH'd into your Embassy, you may see the status of EmbassyD with the following:

View File

@@ -4,7 +4,7 @@
Service Containers Service Containers
================== ==================
For simplicity, EmbassyOS is designed to be completely operated via the :ref:`WebUI <web-ui>`, however, your device belongs to you and if you want to "lift the hood" and access the internals of the software, you may do so. This guide will show you how to enter a Service's Docker container in order to directly interface with it and issue commands. For simplicity, embassyOS is designed to be completely operated via the :ref:`WebUI <web-ui>`, however, your device belongs to you and if you want to "lift the hood" and access the internals of the software, you may do so. This guide will show you how to enter a Service's Docker container in order to directly interface with it and issue commands.
.. warning:: The following guide is for those that have advanced command line skills, or those who are being guided by a Start9 support technician. Nothing you do inside a container is supported unless under the direction of Start9. Here be dragons!! .. warning:: The following guide is for those that have advanced command line skills, or those who are being guided by a Start9 support technician. Nothing you do inside a container is supported unless under the direction of Start9. Here be dragons!!

View File

@@ -4,7 +4,7 @@
Advanced Advanced
======== ========
This section included advanced commands for working with packages in EmbassyOS. This section included advanced commands for working with packages in embassyOS.
.. raw:: html .. raw:: html
@@ -19,7 +19,7 @@ This section included advanced commands for working with packages in EmbassyOS.
:class: large-4 :class: large-4
:anchor: View :anchor: View
EmbassyOS developer CLI tools embassyOS developer CLI tools
.. topic-box:: .. topic-box::
:title: Service Containers :title: Service Containers

View File

@@ -4,7 +4,7 @@
3 - Hardware Build 3 - Hardware Build
================== ==================
EmbassyOS is run on the arm-v8 architecture, specifically the aarch64 state, for the RaspberryPi. embassyOS is run on the arm-v8 architecture, specifically the aarch64 state, for the RaspberryPi.
Depending on the programming language or libraries used in a project, you might need to set up an environment to *cross compile* the executable for this runtime environment. Depending on the programming language or libraries used in a project, you might need to set up an environment to *cross compile* the executable for this runtime environment.

View File

@@ -61,7 +61,7 @@ In other words, the Dockerfile serves as a recipe for creating a Docker image, f
WORKDIR /root WORKDIR /root
# not necessary for EmbassyOS, but often left for quick reference and clarity # not necessary for embassyOS, but often left for quick reference and clarity
EXPOSE 80 EXPOSE 80
ENTRYPOINT ["/usr/local/bin/docker_entrypoint.sh"] ENTRYPOINT ["/usr/local/bin/docker_entrypoint.sh"]

View File

@@ -4,7 +4,7 @@
5 - Create Manifest 5 - Create Manifest
=================== ===================
The Manifest file specifies the details EmbassyOS needs to operate a service. It is the connection point between your service and EmbassyOS. The Manifest file specifies the details embassyOS needs to operate a service. It is the connection point between your service and embassyOS.
In this file, values and actions exist for: In this file, values and actions exist for:
@@ -36,10 +36,10 @@ And populate it with the following example manifest (see the line comments for a
id: hello-world id: hello-world
# A human readable service title # A human readable service title
title: "Hello World" title: "Hello World"
# Service version - accepts up to four digits, where the last confirms to revisions necessary for EmbassyOS - see documentation: https://github.com/Start9Labs/emver-rs # Service version - accepts up to four digits, where the last confirms to revisions necessary for embassyOS - see documentation: https://github.com/Start9Labs/emver-rs
version: 0.3.0 version: 0.3.0
# Release notes for the update - can be a string, paragraph or URL # Release notes for the update - can be a string, paragraph or URL
release-notes: "Upgrade to EmbassyOS v0.3.0" release-notes: "Upgrade to embassyOS v0.3.0"
# The type of license for the project. Include the LICENSE in the root of the project directory. A license is required for a Start9 package. # The type of license for the project. Include the LICENSE in the root of the project directory. A license is required for a Start9 package.
license: mit license: mit
# The Start9 wrapper repository URL for the package. This repo contains the manifest file (this), any scripts necessary for configuration, backups, actions, or health checks (more below). This key must exist. But could be embedded into the source repository. # The Start9 wrapper repository URL for the package. This repo contains the manifest file (this), any scripts necessary for configuration, backups, actions, or health checks (more below). This key must exist. But could be embedded into the source repository.
@@ -52,9 +52,9 @@ And populate it with the following example manifest (see the line comments for a
marketing-site: "https://start9.com/" marketing-site: "https://start9.com/"
# The series of commands to build the project into an s9pk for arm64/v8. In this case we are using a Makefile with the simple build command "make". # The series of commands to build the project into an s9pk for arm64/v8. In this case we are using a Makefile with the simple build command "make".
build: ["make"] build: ["make"]
# Minimum required version of EmbassyOS # Minimum required version of embassyOS
min-os-version: "0.3.0" min-os-version: "0.3.0"
# Human readable descriptors for the service. These are used throughout the EmbassyOS user interface, primarily in the marketplace. # Human readable descriptors for the service. These are used throughout the embassyOS user interface, primarily in the marketplace.
description: description:
# This is the first description visible to the user in the marketplace. # This is the first description visible to the user in the marketplace.
short: Example service short: Example service
@@ -190,13 +190,13 @@ And populate it with the following example manifest (see the line comments for a
protocols: protocols:
- tcp - tcp
- http - http
# Alerts: omitting these will result in using the default alerts in EmbassyOS, except for start, which has no default. # Alerts: omitting these will result in using the default alerts in embassyOS, except for start, which has no default.
alerts: alerts:
install-alert: This is an alert that will present before the user installs this service install-alert: This is an alert that will present before the user installs this service
uninstall-alert: This is an alert that will present before the user uninstalls this service uninstall-alert: This is an alert that will present before the user uninstalls this service
restore-alert: This is an alert that will present before the user restores this service from Embassy backup restore-alert: This is an alert that will present before the user restores this service from Embassy backup
start-alert: This is an alert that will present before the user starts this service start-alert: This is an alert that will present before the user starts this service
# Specifies how backups should be run for this service. The default EmbassyOS provided option is to use the duplicity backup library on a system image (compat) # Specifies how backups should be run for this service. The default embassyOS provided option is to use the duplicity backup library on a system image (compat)
backup: backup:
create: create:
# Currently, only docker actions are supported. # Currently, only docker actions are supported.

View File

@@ -36,7 +36,7 @@ And add the following code to the file:
License License
------- -------
Start9 ensures that the proper license is displayed for all open source software running on an EmbassyOS platform. Let's make sure to include the full open source license so users can view the distribution permissions of your service, among other licensing details. Start9 ensures that the proper license is displayed for all open source software running on an embassyOS platform. Let's make sure to include the full open source license so users can view the distribution permissions of your service, among other licensing details.
The name and location of this file should be specified in the ``assets.license`` section of the Manifest. The default value if not specified is ``LICENSE``, located in the root of the project folder. The name and location of this file should be specified in the ``assets.license`` section of the Manifest. The default value if not specified is ``LICENSE``, located in the root of the project folder.

View File

@@ -4,7 +4,7 @@
10 - Install 10 - Install
============ ============
Now that we have a process for iterating on producing a valid package for EmbassyOS, let's load it onto an Embassy! Now that we have a process for iterating on producing a valid package for embassyOS, let's load it onto an Embassy!
1. First, generate an ssh key for the Embassy: 1. First, generate an ssh key for the Embassy:
@@ -46,7 +46,7 @@ Now that we have a process for iterating on producing a valid package for Embass
embassy-cli auth login embassy-cli auth login
embassy-cli package install hello-world.s9pk embassy-cli package install hello-world.s9pk
**Congratulations!** You have successfully created and installed a package you created onto EmbassyOS. The package should now be viewable in the "Services" tab in EmbassyUI. **Congratulations!** You have successfully created and installed a package you created onto embassyOS. The package should now be viewable in the "Services" tab in EmbassyUI.
From here, you can play with viewing the results of your Manifest file settings, such as config, actions, interfaces, health checks, etc. You can also view the logs of your service right in the UI! From here, you can play with viewing the results of your Manifest file settings, such as config, actions, interfaces, health checks, etc. You can also view the logs of your service right in the UI!

View File

@@ -4,7 +4,7 @@
Build a Package Build a Package
=============== ===============
This guide will take you through the fundamentals of packaging a service for EmbassyOS by creating a real service. Let's get started! This guide will take you through the fundamentals of packaging a service for embassyOS by creating a real service. Let's get started!
.. raw:: html .. raw:: html
@@ -90,7 +90,7 @@ This guide will take you through the fundamentals of packaging a service for Emb
:class: large-4 :class: large-4
:anchor: View :anchor: View
Install packaged service on EmbassyOS Install packaged service on embassyOS
.. topic-box:: .. topic-box::
:title: Resources :title: Resources

View File

@@ -16,7 +16,7 @@ If you get stuck or are having issues debugging why your service is not packagin
Submission Process Submission Process
------------------ ------------------
When you have built and tested your project for EmbassyOS, please send Start9 a submission to dev@start9labs.com with a link to the wrapper repository. After being reviewed for security and compatibility, the service will be deployed to the Start9 Marketplace and available for all EmbassyOS users to download. When you have built and tested your project for embassyOS, please send Start9 a submission to dev@start9labs.com with a link to the wrapper repository. After being reviewed for security and compatibility, the service will be deployed to the Start9 Marketplace and available for all embassyOS users to download.
If you are deploying to an alternative marketplace, please shout it out in our community channels! If you are deploying to an alternative marketplace, please shout it out in our community channels!

View File

@@ -8,7 +8,7 @@ Checklist
:depth: 2 :depth: 2
:local: :local:
This guide outlines a checklist of steps to complete in order to package a service for EmbassyOS. For a more in depth example, visit the :ref:`build your first package <build-package-example>` guide. This guide outlines a checklist of steps to complete in order to package a service for embassyOS. For a more in depth example, visit the :ref:`build your first package <build-package-example>` guide.
Packaging Packaging
--------- ---------

View File

@@ -8,7 +8,7 @@ Environment Setup
:depth: 2 :depth: 2
:local: :local:
To get started packaging a service for EmbassyOS, some basic knowledge of software development is required. Don't worry if you are inexperienced, we will provide enough context to get you started, and you can always reach out with questions. To get started packaging a service for embassyOS, some basic knowledge of software development is required. Don't worry if you are inexperienced, we will provide enough context to get you started, and you can always reach out with questions.
If you are already an experienced developer, :ref:`jump ahead <environment-quick-start>`. If you are already an experienced developer, :ref:`jump ahead <environment-quick-start>`.
@@ -46,7 +46,7 @@ To verify the installation, open a new terminal window and run:
Docker Docker
------ ------
`Docker <https://docs.docker.com/get-docker>`_ must be installed on your computer. It is needed to build an image for your package, which will be used to create the running instance of your package on EmbassyOS. In essence, it declares the necessary environment and building stages for your package to run. `Docker <https://docs.docker.com/get-docker>`_ must be installed on your computer. It is needed to build an image for your package, which will be used to create the running instance of your package on embassyOS. In essence, it declares the necessary environment and building stages for your package to run.
We also recommend installing and using `Docker buildx <https://docs.docker.com/buildx/working-with-buildx/>`_, as this adds desirable new features to the Docker build experience. It is included by default with Docker Desktop for Windows and macOS. We also recommend installing and using `Docker buildx <https://docs.docker.com/buildx/working-with-buildx/>`_, as this adds desirable new features to the Docker build experience. It is included by default with Docker Desktop for Windows and macOS.
@@ -54,7 +54,7 @@ We also recommend installing and using `Docker buildx <https://docs.docker.com/b
Cargo Cargo
----- -----
Cargo is the package management solution for the Rust programming language. It will install Rust to your system, and provide the required environment to build the Embassy SDK for packaging your service into the required format needed by EmbassyOS. Cargo is the package management solution for the Rust programming language. It will install Rust to your system, and provide the required environment to build the Embassy SDK for packaging your service into the required format needed by embassyOS.
Installation instructions for Cargo can be found `here <https://doc.rust-lang.org/cargo/getting-started/installation.html>`__. Installation instructions for Cargo can be found `here <https://doc.rust-lang.org/cargo/getting-started/installation.html>`__.
@@ -67,7 +67,7 @@ To verify the installation, open a terminal window and run:
SDK SDK
--- ---
EmbassyOS provides a :ref:`software development kit <sdk>` embedded in its environment. You do not need a running instance of EmbassyOS to use this component, it can be installed on any computer platform. embassyOS provides a :ref:`software development kit <sdk>` embedded in its environment. You do not need a running instance of embassyOS to use this component, it can be installed on any computer platform.
To install the SDK: To install the SDK:
@@ -81,10 +81,10 @@ To verify the installation, open a terminal window and run:
embassy-sdk --version embassy-sdk --version
EmbassyOS embassyOS
--------- ---------
While not strictly necessary, having a running instance of EmbassyOS is recommended to test installing, running, configuring, and using your package. Without this component, you will have to coordinate with Start9's internal development team to test. While not strictly necessary, having a running instance of embassyOS is recommended to test installing, running, configuring, and using your package. Without this component, you will have to coordinate with Start9's internal development team to test.
.. _environment-quick-start: .. _environment-quick-start:
@@ -93,5 +93,5 @@ Quick Start Environment Setup
- `Docker <https://docs.docker.com/get-docker>`_ - `Docker <https://docs.docker.com/get-docker>`_
- `Docker buildx <https://docs.docker.com/buildx/working-with-buildx/>`_ - `Docker buildx <https://docs.docker.com/buildx/working-with-buildx/>`_
- `Cargo <https://doc.rust-lang.org/cargo/getting-started/installation.html>`__ - `Cargo <https://doc.rust-lang.org/cargo/getting-started/installation.html>`__
- `EmbassyOS <https://github.com/Start9Labs/embassy-os>`_ - `embassyOS <https://github.com/Start9Labs/embassy-os>`_
- `Embassy SDK <https://github.com/Start9Labs/embassy-os/blob/master/backend/install-sdk.sh>`_ - `Embassy SDK <https://github.com/Start9Labs/embassy-os/blob/master/backend/install-sdk.sh>`_

View File

@@ -4,7 +4,7 @@
Getting Started Getting Started
=============== ===============
Select an option below to get started with packing a service for EmbassyOS. Select an option below to get started with packing a service for embassyOS.
.. raw:: html .. raw:: html

View File

@@ -6,7 +6,7 @@ Embassy SDK
Embassy SDK, or Software Development Kit, is a CLI (Command Line Interface) tool that aids in building and packaging services you wish to deploy to the Embassy. Embassy SDK, or Software Development Kit, is a CLI (Command Line Interface) tool that aids in building and packaging services you wish to deploy to the Embassy.
It mainly helps you validate that the necessary components of your package exist, and package all of those components into a special file type that is understood by EmbassyOS. It mainly helps you validate that the necessary components of your package exist, and package all of those components into a special file type that is understood by embassyOS.
To install, checkout the SDK step in :ref:`setting up your environment <environment-setup>`. To install, checkout the SDK step in :ref:`setting up your environment <environment-setup>`.
@@ -47,7 +47,7 @@ And load it by running:
embassy-sdk pack embassy-sdk pack
---------------- ----------------
This command takes the necessary package components and assembles them into the `s9pk` file format needed to install a service on EmbassyOS. It expects the following files to exist: This command takes the necessary package components and assembles them into the `s9pk` file format needed to install a service on embassyOS. It expects the following files to exist:
- Manifest - Manifest
- Instructions - Instructions

View File

@@ -4,13 +4,13 @@
Developer Docs Developer Docs
============== ==============
Welcome to Service Packaging for EmbassyOS! Welcome to Service Packaging for embassyOS!
If you are here, you are interested in becoming part of the mission to change the future of personal computing. If you are here, you are interested in becoming part of the mission to change the future of personal computing.
The guides below provide the fundamentals that will take you through the process of packing a service for EmbassyOS. Services are any open source project (application) that can be run on a self-hosted platform, independent of third parties. The guides below provide the fundamentals that will take you through the process of packing a service for embassyOS. Services are any open source project (application) that can be run on a self-hosted platform, independent of third parties.
By configuring and packaging a project according to these guides, it can be installed on EmbassyOS so that users can interact with the service without needing any technical expertise. By configuring and packaging a project according to these guides, it can be installed on embassyOS so that users can interact with the service without needing any technical expertise.
Let's get started! Let's get started!

View File

@@ -6,7 +6,7 @@ Backups
Backups are defined by the service developer in the backups section of the Manifest. By default, this action is a command executed within a Docker container. Backups are defined by the service developer in the backups section of the Manifest. By default, this action is a command executed within a Docker container.
EmbassyOS provides a system utility for creating backups. This system utility is the `duplicity <https://en.wikipedia.org/wiki/Duplicity_(software)>`_ library that is run inside the Docker image entitled _compat_. embassyOS provides a system utility for creating backups. This system utility is the `duplicity <https://en.wikipedia.org/wiki/Duplicity_(software)>`_ library that is run inside the Docker image entitled _compat_.
The path to be backed up can be specified in the Manifest. In the create backup example below, it is the last argument: The path to be backed up can be specified in the Manifest. In the create backup example below, it is the last argument:

View File

@@ -4,9 +4,9 @@
Compat Image Compat Image
============ ============
With the release of EmbassyOS v0.3.0, system utility Docker images are preloaded for service packager convenience. With the release of embassyOS v0.3.0, system utility Docker images are preloaded for service packager convenience.
The ``Compat`` image is a backwards compatible Docker image that hosts EmbassyOS features used in the v0.2.x series. It was created as a convenience for service packagers to help migrate their service configurations from 0.2.x to 0.3.0. The ``Compat`` image is a backwards compatible Docker image that hosts embassyOS features used in the v0.2.x series. It was created as a convenience for service packagers to help migrate their service configurations from 0.2.x to 0.3.0.
It exposes functionality to make use of: It exposes functionality to make use of:

View File

@@ -7,9 +7,9 @@ Config Spec
Introduction Introduction
============ ============
Most self-hosted applications require the user to tell the application 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 the services' 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. Most self-hosted applications require the user to tell the application 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 the services' 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 services' configuration requires a file to define the particular format to ensure it integrates smoothly with the user interface. This format enables clean handling of improper values and dependency management. With embassyOS, this means a services' configuration requires a file to define the particular format to ensure it integrates smoothly with the user interface. This format enables clean handling of improper values and dependency management.
This file defines the *structure* of the service's native config and should be curated according to the ``ConfigSpec`` type, which is a detailed mapping of the configuration options with acceptable values, defined patterns, and defaults. This file defines the *structure* of the service's native config and should be curated according to the ``ConfigSpec`` type, which is a detailed mapping of the configuration options with acceptable values, defined patterns, and defaults.
@@ -150,7 +150,7 @@ Example
List List
---- ----
The list type describes an array of values. The values must consist of the same subtype, which can be any of the ValueSpec types available in the EmbassyOS config specification. The list type describes an array of values. The values must consist of the same subtype, which can be any of the ValueSpec types available in the embassyOS config specification.
Lists of any type do not contain the default for each item in list. The list *itself* can have a default. If no default is provided, ``null`` will be the assumed value. Lists of any type do not contain the default for each item in list. The list *itself* can have a default. If no default is provided, ``null`` will be the assumed value.
Range is loosely based off mathematical range syntax, with infinity replaced with ``*``: Range is loosely based off mathematical range syntax, with infinity replaced with ``*``:
@@ -358,7 +358,7 @@ Examples
Pointer Pointer
-------- --------
The pointer type *points* to a config value on another service installed on EmbassyOS (ie. package subtype) or to the EmbassyOS system (ie. system subtype). When pointing to another service, the ``selector`` field indicates the path to the desired config variable. The pointer type *points* to a config value on another service installed on embassyOS (ie. package subtype) or to the embassyOS system (ie. system subtype). When pointing to another service, the ``selector`` field indicates the path to the desired config variable.
.. code-block:: .. code-block::
:caption: ValueSpec Type :caption: ValueSpec Type
@@ -396,7 +396,7 @@ Union
This type describes a necessary dependency. Multiple variants can be expressed to enable the user the option to connect to another service (internal dependency) or outside source (external dependency). This type describes a necessary dependency. Multiple variants can be expressed to enable the user the option to connect to another service (internal dependency) or outside source (external dependency).
For example, the Bitcoin Proxy service is united with an instance of Bitcoin. Three variants are defined: internal, external, and a quick connect. In this case, internal refers to the Bitcoin Core instance running on EmbassyOS, and defines the RPC credentials necessary for connecting; external refers to a Bitcoin Core node running on a different device, and defines the RPC credentials necessary for connecting; quick connect refers to yet another method of connecting to a Bitcoin Core node, optimized for convenience. For example, the Bitcoin Proxy service is united with an instance of Bitcoin. Three variants are defined: internal, external, and a quick connect. In this case, internal refers to the Bitcoin Core instance running on embassyOS, and defines the RPC credentials necessary for connecting; external refers to a Bitcoin Core node running on a different device, and defines the RPC credentials necessary for connecting; quick connect refers to yet another method of connecting to a Bitcoin Core node, optimized for convenience.
Default is required and corresponds to one of the variants. Default is required and corresponds to one of the variants.

View File

@@ -9,18 +9,18 @@ Background
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 task. 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 task.
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. 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. 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 serious time and expertise, can now be done by anyone in a matter of seconds. 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 serious time and expertise, can now be done by anyone in a matter of seconds.
This DSL is utilized in the :ref:`config rules <config_rules>` and :ref:`dependencies <service-dependencies>` key in the service manifest. This DSL is utilized in the :ref:`config rules <config_rules>` and :ref:`dependencies <service-dependencies>` key in the service manifest.
Context Context
------- -------
Many services depend on other libraries and services on EmbassyOS (such as Bitcoin), sometimes even a particular version of those services. These need to be specified by the developers so that EmbassyOS can handle installing these dependencies under the hood. Many services depend on other libraries and services on embassyOS (such as Bitcoin), sometimes even a particular version of those services. These need to be specified by the developers so that embassyOS can handle installing these dependencies under the hood.
Requirement Requirement
----------- -----------
@@ -38,7 +38,7 @@ Only the type of requirement must be defined. Requirement types include:
Advanced Configuration Advanced Configuration
---------------------- ----------------------
If a dependency requires a more advanced configuration, rule checks and auto configurations can be implemented. These functions utilize a preloaded Docker image within EmbassyOS entitled _compat_. This system utility provides the mechanisms for checking dependency configuration compatibility by providing a file with the defined rules as input. If a dependency requires a more advanced configuration, rule checks and auto configurations can be implemented. These functions utilize a preloaded Docker image within embassyOS entitled _compat_. This system utility provides the mechanisms for checking dependency configuration compatibility by providing a file with the defined rules as input.
In this case, 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. In this case, 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.

View File

@@ -27,7 +27,7 @@ Each service boils down to a Docker image. We're not going to dive into Docker s
The image is immutable, meaning that when the service is updated, the image is replaced with a completely new image containing the updated features. The image is immutable, meaning that when the service is updated, the image is replaced with a completely new image containing the updated features.
When installed, the service image is mounted to the EmbassyOS image. This path is defined in the :ref:`manifest <service_manifest>` configuration file: When installed, the service image is mounted to the embassyOS image. This path is defined in the :ref:`manifest <service_manifest>` configuration file:
.. code:: yaml .. code:: yaml
@@ -43,12 +43,12 @@ When installed, the service image is mounted to the EmbassyOS image. This path i
io-format: yaml io-format: yaml
... ...
In EmbassyOS, the mount specified in the Manifest gets bound to ``/embassy-data/package-data/volumes/main/<service-id>``. In embassyOS, the mount specified in the Manifest gets bound to ``/embassy-data/package-data/volumes/main/<service-id>``.
Volumes Volumes
------- -------
Volumes are the mechanism for persisting data generated by and used by Docker containers. In EmbassyOS, services can declare as one or many volumes in the Manifest: Volumes are the mechanism for persisting data generated by and used by Docker containers. In embassyOS, services can declare as one or many volumes in the Manifest:
.. code:: yaml .. code:: yaml

View File

@@ -6,7 +6,7 @@ Instructions
Within each wrapper repository, a file should exist that includes instructions for a service. This file should include any pertinent documentation, instructions, external integrations, or other details about the service that users or developers might find relevant. Within each wrapper repository, a file should exist that includes instructions for a service. This file should include any pertinent documentation, instructions, external integrations, or other details about the service that users or developers might find relevant.
This markdown formatted file will be rendered in the "Instructions" section within the service page on EmbassyOS: This markdown formatted file will be rendered in the "Instructions" section within the service page on embassyOS:
.. figure:: /_static/images/services/service-instruct.png .. figure:: /_static/images/services/service-instruct.png
:width: 80% :width: 80%

View File

@@ -30,7 +30,7 @@ Terms:
**Procedure**: A procedure is run during times that we would like to do an operation. An operation would include actions such as getting or setting a service's configuration file. **Procedure**: A procedure is run during times that we would like to do an operation. An operation would include actions such as getting or setting a service's configuration file.
**Effects**: A TypeScript object that is used to interact with EmbassyOS. See the `full definition here <https://deno.land/x/embassyd_sdk@v0.3.1.0.5/types.ts>`__. **Effects**: A TypeScript object that is used to interact with embassyOS. See the `full definition here <https://deno.land/x/embassyd_sdk@v0.3.1.0.5/types.ts>`__.
This new process enabled faster service configuration operations. Previously, Docker was used to preform these actions; however, Docker containers took a long time to spin up. This new process enabled faster service configuration operations. Previously, Docker was used to preform these actions; however, Docker containers took a long time to spin up.
@@ -73,7 +73,7 @@ How to Setup
set: set:
type: script type: script
4. Fill in the todos in the above template to match the expected Effect parameter defined by the `exported type <https://deno.land/x/embassyd_sdk@v0.3.1.0.3/types.ts#L32>`_. This type describes how to call functions that interact with EmbassyOS. 4. Fill in the todos in the above template to match the expected Effect parameter defined by the `exported type <https://deno.land/x/embassyd_sdk@v0.3.1.0.3/types.ts#L32>`_. This type describes how to call functions that interact with embassyOS.
5. In the build process for packaging the final s9pk, include the following step. **The location of the js is important, and can't be changed**. It must exist at `scripts/embassy.js` in the root of the project's wrapper repository. 5. In the build process for packaging the final s9pk, include the following step. **The location of the js is important, and can't be changed**. It must exist at `scripts/embassy.js` in the root of the project's wrapper repository.
.. code:: bash .. code:: bash

View File

@@ -17,9 +17,9 @@ This file describes the service and it's requirements. It is used to:
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. 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.
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 an interface with a tor config in the Manifest file. You do, however, need to ensure the service is in fact capable of running over Tor. 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 an interface with a tor config in the 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 <dependencies-spec>`. By defining rules using the :ref:`EmbassyOS DSL specification <config_rules>`, 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! The Manifest is also responsible for outlining service :ref:`dependencies <dependencies-spec>`. By defining rules using the :ref:`embassyOS DSL specification <config_rules>`, 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 Formatting
---------- ----------
@@ -38,7 +38,7 @@ Below are the types and sub-type definitions, with necessary elaborations. Any i
id: String id: String
# A human readable service title # A human readable service title
title: String title: String
# Service version - accepts up to four digits, where the last confirms to revisions necessary for EmbassyOS - see documentation: https://github.com/Start9Labs/emver-rs. This value will change with each release of the service. # Service version - accepts up to four digits, where the last confirms to revisions necessary for embassyOS - see documentation: https://github.com/Start9Labs/emver-rs. This value will change with each release of the service.
version: Number version: Number
# Release notes for the update - can be a string, paragraph or URL # Release notes for the update - can be a string, paragraph or URL
release-notes: String release-notes: String
@@ -54,9 +54,9 @@ Below are the types and sub-type definitions, with necessary elaborations. Any i
marketing-site: String marketing-site: String
# The series of commands to build the project into an s9pk for arm64/v8. In this case we are using a Makefile with the simple build command "make". # The series of commands to build the project into an s9pk for arm64/v8. In this case we are using a Makefile with the simple build command "make".
build: List<String> build: List<String>
# Minimum required version of EmbassyOS # Minimum required version of embassyOS
min-os-version: Number min-os-version: Number
# Human readable descriptors for the service. These are used throughout the EmbassyOS user interface, primarily in the marketplace. # Human readable descriptors for the service. These are used throughout the embassyOS user interface, primarily in the marketplace.
description: description:
# This is the first description visible to the user in the marketplace. # This is the first description visible to the user in the marketplace.
short: String short: String
@@ -180,13 +180,13 @@ Below are the types and sub-type definitions, with necessary elaborations. Any i
ui: Boolean ui: Boolean
# Denotes the protocol specifications used by this interface # Denotes the protocol specifications used by this interface
protocols: List<String> protocols: List<String>
# Alerts: omitting these will result in using the default alerts in EmbassyOS, except for start, which has no default. # Alerts: omitting these will result in using the default alerts in embassyOS, except for start, which has no default.
alerts: alerts:
install-alert: String install-alert: String
uninstall-alert: String uninstall-alert: String
restore-alert: String restore-alert: String
start-alert: String start-alert: String
# Specifies how backups should be run for this service. The default EmbassyOS provided option is to use the duplicity backup library on a system image (compat) # Specifies how backups should be run for this service. The default embassyOS provided option is to use the duplicity backup library on a system image (compat)
backup: backup:
create: create:
type: String type: String
@@ -294,6 +294,6 @@ Examples
- `Hello World <https://github.com/Start9Labs/hello-world-wrapper/blob/master/manifest.yaml>`__ - `Hello World <https://github.com/Start9Labs/hello-world-wrapper/blob/master/manifest.yaml>`__
- `Filebrowser <https://github.com/Start9Labs/filebrowser-wrapper/blob/master/manifest.yaml>`__ - `Filebrowser <https://github.com/Start9Labs/filebrowser-wrapper/blob/master/manifest.yaml>`__
- `Embassy-pages <https://github.com/Start9Labs/embassy-pages-wrapper/blob/master/manifest.toml>`__ - `Embassy-pages <https://github.com/Start9Labs/embassy-pages-wrapper/blob/master/manifest.toml>`__
- `Photoview <https://github.com/Start9Labs/embassyos-photoview-wrapper/blob/master/manifest.yaml>`__ - `Photoview <https://github.com/Start9Labs/embassyOS-photoview-wrapper/blob/master/manifest.yaml>`__
- `BTCPay Server <https://github.com/Start9Labs/btcpayserver-wrapper/blob/master/manifest.yaml>`__ - `BTCPay Server <https://github.com/Start9Labs/btcpayserver-wrapper/blob/master/manifest.yaml>`__
- `Synapse <https://github.com/Start9Labs/synapse-wrapper/blob/master/manifest.yaml>`__ - `Synapse <https://github.com/Start9Labs/synapse-wrapper/blob/master/manifest.yaml>`__

View File

@@ -4,7 +4,7 @@
Package Bundle Package Bundle
============== ==============
All assets get bundled into a custom filetype with an extension of ``.s9pk``, short for Start9 Package. This is the file that will be downloaded from a marketplace. When the user clicks a service's "Install" button, EmbassyOS unpacks and installs the service. All assets get bundled into a custom filetype with an extension of ``.s9pk``, short for Start9 Package. This is the file that will be downloaded from a marketplace. When the user clicks a service's "Install" button, embassyOS unpacks and installs the service.
The minimum necessary files for this bundle are: The minimum necessary files for this bundle are:

View File

@@ -4,4 +4,4 @@
Submission Process 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. 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.

View File

@@ -9,9 +9,9 @@ Each service is bound with a wrapper repository, which contains everything you n
The purpose of this repo is: The purpose of this repo is:
- To define the necessary Manifest and configuration options (ie. config spec and rules) - To define the necessary Manifest and configuration options (ie. config spec and rules)
- To build the project into the ``.s9pk`` format digestible to EmbassyOS - To build the project into the ``.s9pk`` format digestible to embassyOS
- Link to the source project as a git submodule - Link to the source project as a git submodule
- Define the Dockerfile for running the project on EmbassyOS - Define the Dockerfile for running the project on embassyOS
- Provide documentation for the project, especially user runbook instructions - Provide documentation for the project, especially user runbook instructions
File Structure File Structure

View File

@@ -83,17 +83,16 @@ You can follow along with this `written guide <https://start9dave.substack.com/p
.. youtube:: Z1EW1TVgtow .. youtube:: Z1EW1TVgtow
:width: 100% :width: 100%
Getting embassyOS
Getting EmbassyOS
----------------- -----------------
After building your device, you need a copy of EmbassyOS. After building your device, you need a copy of embassyOS.
- Download the latest release of EmbassyOS from `our github <https://github.com/start9labs/embassy-os/releases/latest>`_, scroll to the Assets section, and download eos.tar.gz. - Download the latest release of embassyOS from `our github <https://github.com/start9labs/embassy-os/releases/latest>`_, scroll to the Assets section, and download eos.tar.gz.
- This will soon be available as a more convenient download from our website. - This will soon be available as a more convenient download from our website.
Installing EmbassyOS Installing embassyOS
-------------------- --------------------
Whether you purchase EmbassyOS from us or build it yourself, you'll need to flash it onto a microSD card. Whether you purchase embassyOS from us or build it yourself, you'll need to flash it onto a microSD card.
#. Download `balenaEtcher <https://www.balena.io/etcher/>`_ onto your Mac, Windows, or Linux computer. #. Download `balenaEtcher <https://www.balena.io/etcher/>`_ onto your Mac, Windows, or Linux computer.
@@ -104,10 +103,10 @@ Whether you purchase EmbassyOS from us or build it yourself, you'll need to flas
:width: 60% :width: 60%
:alt: Balena Etcher Dashboard :alt: Balena Etcher Dashboard
#. Click "Select Image" and select your downloaded copy of EmbassyOS. #. Click "Select Image" and select your downloaded copy of embassyOS.
#. Click "Select Target" and select your 32GB microSD card. #. Click "Select Target" and select your 32GB microSD card.
.. warning:: Be certain you have selected the correct target microSD card. Whatever target you select will be completely erased and replaced with EmbassyOS. .. warning:: Be certain you have selected the correct target microSD card. Whatever target you select will be completely erased and replaced with embassyOS.
#. Click "Flash!". You may be asked to (1) approve the unusually large disk target or (2) enter your password. Both are normal. #. Click "Flash!". You may be asked to (1) approve the unusually large disk target or (2) enter your password. Both are normal.
#. After the flash completes, you may remove the micro SD from the adapter, insert it into your Embassy's SD card slot, and continue to the :ref:`Initial Setup <initial-setup>` instructions. #. After the flash completes, you may remove the micro SD from the adapter, insert it into your Embassy's SD card slot, and continue to the :ref:`Initial Setup <initial-setup>` instructions.

View File

@@ -9,7 +9,7 @@
:button_url: https://store.start9.com :button_url: https://store.start9.com
:button_text: Purchase Embassy :button_text: Purchase Embassy
Here you will find information about Start9, EmbassyOS, and the era of sovereign computing. Anyone can do it. No one can stop it. Here you will find information about Start9, embassyOS, and the era of sovereign computing. Anyone can do it. No one can stop it.
.. raw:: html .. raw:: html

View File

@@ -15,17 +15,17 @@ Embassy Devices & EOS
Embassy One Embassy One
----------- -----------
Embassy One is a plug 'n' play hardware device, based on the `Raspberry Pi <https://www.raspberrypi.org/>`_, assembled in-house by Start9. The current iteration features an internal SSD, speaker, active cooling, and power management in a custom AIO (all-in-one) case. Embassy One comes pre-loaded with :ref:`EmbassyOS<embassy-os>`. For more details, check out the `Embassy One tech specs <https://store.start9.com/collections/embassy/products/embassy>`_. Embassy One is a plug 'n' play hardware device, based on the `Raspberry Pi <https://www.raspberrypi.org/>`_, assembled in-house by Start9. The current iteration features an internal SSD, speaker, active cooling, and power management in a custom AIO (all-in-one) case. Embassy One comes pre-loaded with :ref:`embassyOS<embassy-os>`. For more details, check out the `Embassy One tech specs <https://store.start9.com/collections/embassy/products/embassy>`_.
Embassy Pro Embassy Pro
----------- -----------
Embassy Pro is a plug 'n' play hardware device, based on the `Librem Mini <https://puri.sm/products/librem-mini/>`_, built by `Purism <https://puri.sm/about/>`_. The Pro features a custom-built circuit board with active cooling, and an open-source firmware / boot stack. Embassy Pro comes pre-loaded with :ref:`EmbassyOS<embassy-os>`. For more details, check out the `Embassy Pro tech specs <https://store.start9.com/products/embassy-2>`_. Embassy Pro is a plug 'n' play hardware device, based on the `Librem Mini <https://puri.sm/products/librem-mini/>`_, built by `Purism <https://puri.sm/about/>`_. The Pro features a custom-built circuit board with active cooling, and an open-source firmware / boot stack. Embassy Pro comes pre-loaded with :ref:`embassyOS<embassy-os>`. For more details, check out the `Embassy Pro tech specs <https://store.start9.com/products/embassy-2>`_.
.. _embassy-os: .. _embassy-os:
EmbassyOS 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 of the traditionally required systems administration skills. Features such as advanced dependency management, sensible default configuration with potential for customization, and a sleek GUI make for a smooth user experience with minimal reliance on the developers for people with all levels of technical expertise. 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 of the traditionally required systems administration skills. Features such as advanced dependency management, sensible default configuration with potential for customization, and a sleek GUI make for a smooth user experience with minimal reliance on the developers for people with all levels of technical expertise.
Currently, 2 builds of EOS exist, one for the ARM architecture (Embassy One) and one for x86 (Embassy Pro). We currently only support the Raspberry Pi and Librem Mini hardware platforms, however with some minor tweaking, our builds should work on many other ARM and x86 devices. We hope to officially support more platforms soon, and we highly encourage hacking and community builds! Drop in our :ref:`community channels<contact>` to learn more and collaborate!! Currently, 2 builds of EOS exist, one for the ARM architecture (Embassy One) and one for x86 (Embassy Pro). We currently only support the Raspberry Pi and Librem Mini hardware platforms, however with some minor tweaking, our builds should work on many other ARM and x86 devices. We hope to officially support more platforms soon, and we highly encourage hacking and community builds! Drop in our :ref:`community channels<contact>` to learn more and collaborate!!
@@ -33,7 +33,7 @@ Currently, 2 builds of EOS exist, one for the ARM architecture (Embassy One) and
Embassy Sounds Embassy Sounds
-------------- --------------
EmbassyOS emits several sounds for user feedback and troubleshooting. Below is the current library of potential sounds and their prospective meaning: embassyOS emits several sounds for user feedback and troubleshooting. Below is the current library of potential sounds and their prospective meaning:
.. raw:: HTML .. raw:: HTML
@@ -75,7 +75,7 @@ EmbassyOS emits several sounds for user feedback and troubleshooting. Below is
Services 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. 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: .. _sessions:
@@ -87,7 +87,7 @@ A session is simply a logged-in connection to your Embassy. You can view your :
Service Container Service Container
----------------- -----------------
Each service is compartmentalized into its own "container." At this time, this normally means a `Docker <https://docker.com>`_ container, however EmbassyOS is modular and other options will be available soon. There are several reasons for doing this, including security, ease of use, and maintenance. Each service is compartmentalized into its own "container." At this time, this normally means a `Docker <https://docker.com>`_ container, however embassyOS is modular and other options will be available soon. There are several reasons for doing this, including security, ease of use, and maintenance.
.. _service-dependencies: .. _service-dependencies:
@@ -95,7 +95,7 @@ Dependencies
------------ ------------
A software dependency is a code library or package that is reused in a new piece of software. The benefit of software dependencies is that they allow developers to more quickly deliver software by building on previous work. Software may even require its dependency to be configured in a particular way. A software dependency is a code library or package that is reused in a new piece of software. The benefit of software dependencies is that they allow developers to more quickly deliver software by building on previous work. Software may even require its dependency to be configured in a particular way.
Traditionally, managing dependencies has been a massive headache and has served as a huge barrier to running a personal server. But no more! The EmbassyOS dependency management system makes the process transparent and simple. Traditionally, managing dependencies has been a massive headache and has served as a huge barrier to running a personal server. But no more! The embassyOS 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 device will inform you and provide an automated solution, giving details of what will be done so you can make an informed decision before taking action. If a service has one or more dependencies, or a dependency needs to be configured in a particular way, your Embassy device will inform you and provide an automated solution, giving details of what will be done so you can make an informed decision before taking action.
@@ -105,17 +105,17 @@ Sometimes, a dependency can be satisfied in multiple ways. For example, Lightnin
Web User Interface (UI) Web User Interface (UI)
----------------------- -----------------------
A User Interface (UI) is the way in which the user interacts with some software. Typically, this is achieved through a graphical interface (GUI). A WebUI is a website that is served 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. A User Interface (UI) is the way in which the user interacts with some software. Typically, this is achieved through a graphical interface (GUI). A WebUI is a website that is served 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: .. _interfaces:
Service Interfaces Service Interfaces
------------------ ------------------
In EmbassyOS, each installed service creates its own Tor Hidden Service URL. For some services, such as File Browser, the URL represents a website that can be visited in the browser; for other services, such as Bitcoin, the URL has to be input into a native client wallet such as Fully Noded, Sparrow, or Specter. In embassyOS, each installed service creates its own Tor Hidden Service URL. For some services, such as File Browser, the URL represents a website that can be visited in the browser; for other services, such as Bitcoin, the URL has to be input into a native client wallet such as Fully Noded, Sparrow, 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, but it could also potentially pose a security vulnerability. For example, a user may want to share their P2P interface address with someone for peering, but would not want to give out their UI address, which is for private use only. 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, but it could also potentially pose a security vulnerability. For example, a user may want to share their P2P interface address with someone for peering, but would not want to give out their UI address, which is for private use only.
As such, EmbassyOS 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 "Interfaces" section of the service dashboard. As such, embassyOS 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 "Interfaces" section of the service dashboard.
.. _health-checks: .. _health-checks:
@@ -123,4 +123,4 @@ Health Checks
------------- -------------
One of the most critical duties of a sysadmin or devops engineer is to build mechanisms to monitor the health of systems. 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 properly? One of the most critical duties of a sysadmin or devops engineer is to build mechanisms to monitor the health of systems. 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 properly?
In EmbassyOS, package developers define what constitutes health and implement health checks according to subjective criteria. These health checks 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. In embassyOS, package developers define what constitutes health and implement health checks according to subjective criteria. These health checks 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.

View File

@@ -6,7 +6,7 @@ Concepts
An overview of the ideas and technologies surrounding Start9 Labs and Embassy. An overview of the ideas and technologies surrounding Start9 Labs and Embassy.
:ref:`Start9 Labs<start9>` and our :ref:`Embassy<embassy>` products (powered by :ref:`EmbassyOS<embassy-os>`) "stand on the shoulders of giants." Over the past several decades, technologies have been developed by individuals and companies without which these ground-breaking devices could not exist. Below you will find some select ideas and software which will help you understand what Embassy is and how it works. :ref:`Start9 Labs<start9>` and our :ref:`Embassy<embassy>` products (powered by :ref:`embassyOS<embassy-os>`) "stand on the shoulders of giants." Over the past several decades, technologies have been developed by individuals and companies without which these ground-breaking devices could not exist. Below you will find some select ideas and software which will help you understand what Embassy is and how it works.
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2

View File

@@ -27,7 +27,7 @@ Dependencies
------------ ------------
A software dependency is a code library or package that is reused in a new piece of software. The benefit of software dependencies is that they allow developers to more quickly deliver software by building on previous work. Software may even require its dependency to be configured in a particular way. A software dependency is a code library or package that is reused in a new piece of software. The benefit of software dependencies is that they allow developers to more quickly deliver software by building on previous work. Software may even require its dependency to be configured in a particular way.
Traditionally, managing dependencies has been a massive headache and has served as a huge barrier to running a personal server. But no more! The EmbassyOS dependency management system makes the process simple and accesible. Traditionally, managing dependencies has been a massive headache and has served as a huge barrier to running a personal server. But no more! The embassyOS dependency management system makes the process simple and accesible.
If a service has one or more dependencies, or a dependency needs to be configured in a particular way, your Embassy device will inform you and provide an automated solution, giving details of what will be done so you can make an informed decision before taking action. If a service has one or more dependencies, or a dependency needs to be configured in a particular way, your Embassy device will inform you and provide an automated solution, giving details of what will be done so you can make an informed decision before taking action.

View File

@@ -22,7 +22,7 @@ We can quickly realize the problem with a model like this. The server has **ALL
"Self-Hosting" "Self-Hosting"
-------------- --------------
Since a server is "just a computer," one might ask why we can't just host our own data and software. Unfortunately, running a server is no trivial task, and typically requires Linux and systems administration skills. That is, until now. EmbassyOS was designed specifically to allow anyone to be able to run their own server-side software and host their own data, with no special tech skills or excessive effort. Since a server is "just a computer," one might ask why we can't just host our own data and software. Unfortunately, running a server is no trivial task, and typically requires Linux and systems administration skills. That is, until now. embassyOS was designed specifically to allow anyone to be able to run their own server-side software and host their own data, with no special tech skills or excessive effort.
For an overview, please check out the video below: For an overview, please check out the video below:

View File

@@ -44,7 +44,7 @@ Podcasts featuring Start9 Labs and/or Embassy
:image: https://is2-ssl.mzstatic.com/image/thumb/Podcasts/62/f0/38/ps.tbxsjaqa.jpg/626x0w.webp :image: https://is2-ssl.mzstatic.com/image/thumb/Podcasts/62/f0/38/ps.tbxsjaqa.jpg/626x0w.webp
:anchor: Declare Your Independence :anchor: Declare Your Independence
David Croisant (Start9 Labs) comes on to talk about EmbassyOS version 0.3.0, "self-hosting," freedom tech, "Uncle Jim" model, rebuilding the Internet, pirate communications, etc... David Croisant (Start9 Labs) comes on to talk about embassyOS version 0.3.0, "self-hosting," freedom tech, "Uncle Jim" model, rebuilding the Internet, pirate communications, etc...
.. topic-box:: .. topic-box::
:title: February 24, 2022 - SLP352 Matt Hill :title: February 24, 2022 - SLP352 Matt Hill
@@ -52,7 +52,7 @@ Podcasts featuring Start9 Labs and/or Embassy
:image: https://i0.wp.com/stephanlivera.com/wp-content/uploads/2022/02/SLP352-WP-Thumbnail.png :image: https://i0.wp.com/stephanlivera.com/wp-content/uploads/2022/02/SLP352-WP-Thumbnail.png
:anchor: Stephan Livera Podcast :anchor: Stephan Livera Podcast
EmbassyOS & Making Self-Sovereignty Tech Cheaper Than The Alternatives embassyOS & Making Self-Sovereignty Tech Cheaper Than The Alternatives
.. topic-box:: .. topic-box::
:title: January 25, 2022 - On The Record with Start9 :title: January 25, 2022 - On The Record with Start9
@@ -60,7 +60,7 @@ Podcasts featuring Start9 Labs and/or Embassy
:image: https://i3.ytimg.com/vi/jMV_DWAMtmc/maxresdefault.jpg :image: https://i3.ytimg.com/vi/jMV_DWAMtmc/maxresdefault.jpg
:anchor: On The Record :anchor: On The Record
Start9 demo the latest version of EmbassyOS Start9 demo the latest version of embassyOS
.. topic-box:: .. topic-box::
:title: November 29, 2021 - Episode #101: Securing your own data with Matt Hill of Start9 :title: November 29, 2021 - Episode #101: Securing your own data with Matt Hill of Start9
@@ -71,8 +71,8 @@ Podcasts featuring Start9 Labs and/or Embassy
In this episode Brandon and Dag speak with Matt Hill of Start9 Labs about securing your own data with Embassy In this episode Brandon and Dag speak with Matt Hill of Start9 Labs about securing your own data with Embassy
.. topic-box:: .. topic-box::
:title: November 22, 2021 - Episode #287: EmbassyOS v0.3.0, building out the independent stack, and philosophy with Matt Hill :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 :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 :image: https://assets.libsyn.com/secure/content/63745304
:anchor: Tales From The Crypt :anchor: Tales From The Crypt
@@ -113,7 +113,7 @@ Podcasts featuring Start9 Labs and/or Embassy
.. topic-box:: .. topic-box::
:title: July 13, 2021 - Matt Hill and Vlad Costea :title: July 13, 2021 - Matt Hill and Vlad Costea
:link: https://bitcoin-takeover.com/s4-e5-matt-hill-on-the-philosophy-of-sovereignty/ :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 :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 :anchor: Bitcoin Takeover
Bitcoin Takeover S4 E5: Matt Hill on the Philosophy of Sovereignty Bitcoin Takeover S4 E5: Matt Hill on the Philosophy of Sovereignty

View File

@@ -17,7 +17,7 @@ Community Channels
* `Matrix <https://matrix.to/#/#community:matrix.start9labs.com>`_ - Community channel that will gradually replace Telegram. * `Matrix <https://matrix.to/#/#community:matrix.start9labs.com>`_ - Community channel that will gradually replace Telegram.
* `Matrix Dev <https://matrix.to/#/#community-dev:matrix.start9labs.com>`_ - Primary channel for collaboration on EmbassyOS development and service packaging. * `Matrix Dev <https://matrix.to/#/#community-dev:matrix.start9labs.com>`_ - Primary channel for collaboration on embassyOS development and service packaging.
* `Matrix Tor (Tor required) <https://matrix.to/#/!iRwnQntcjpWfLxdgav:matrix.privacy34kn4ez3y3nijweec6w4g54i3g54sdv7r5mr6soma3w4begyd.onion?via=matrix.start9labs.com&via=matrix.privacy34kn4ez3y3nijweec6w4g54i3g54sdv7r5mr6soma3w4begyd.onion&via=oayal5vhil3zhj7ylixvpi4nr2xvhypdnenji4sx5q4kvaotevjvsxad.onion>`_ - Tor-only community channel for Embassy users * `Matrix Tor (Tor required) <https://matrix.to/#/!iRwnQntcjpWfLxdgav:matrix.privacy34kn4ez3y3nijweec6w4g54i3g54sdv7r5mr6soma3w4begyd.onion?via=matrix.start9labs.com&via=matrix.privacy34kn4ez3y3nijweec6w4g54i3g54sdv7r5mr6soma3w4begyd.onion&via=oayal5vhil3zhj7ylixvpi4nr2xvhypdnenji4sx5q4kvaotevjvsxad.onion>`_ - Tor-only community channel for Embassy users

View File

@@ -69,7 +69,7 @@ Can I clone my Embassy SSD for backup purposes?
----------------------------------------------- -----------------------------------------------
.. warning:: **DO NOT do this if you are running LND or CLN**. If you clone the SSD, then go back to running LND or CLN, and you *ever* try to restore the SSD, there is a good chance you will lose *all your channel funds*. Also, if you try to use the SSD for a 2nd Embassy, that will also result in loss of funds. This has nothing to do with Start9 or the Embassy; it is inherent to the architecture of Lightning. .. warning:: **DO NOT do this if you are running LND or CLN**. If you clone the SSD, then go back to running LND or CLN, and you *ever* try to restore the SSD, there is a good chance you will lose *all your channel funds*. Also, if you try to use the SSD for a 2nd Embassy, that will also result in loss of funds. This has nothing to do with Start9 or the Embassy; it is inherent to the architecture of Lightning.
It is neither necessary, nor recommended to do this. The backup solution available in EmbassyOS (v0.3.0+) allows all data to be written to another drive remotely, and this can mean another SSD, attached to a computer on your network. You may also do a backup to a local drive if it has external power. Please follow the directions in the backup UI for more details. It is neither necessary, nor recommended to do this. The backup solution available in embassyOS (v0.3.0+) allows all data to be written to another drive remotely, and this can mean another SSD, attached to a computer on your network. You may also do a backup to a local drive if it has external power. Please follow the directions in the backup UI for more details.
Why would I even buy this when I can just build it for free? Why would I even buy this when I can just build it for free?
------------------------------------------------------------ ------------------------------------------------------------

View File

@@ -11,7 +11,7 @@ Contributing FAQ
We ❤️ contributions! We ❤️ contributions!
How can I contribute to EmbassyOS? How can I contribute to embassyOS?
---------------------------------- ----------------------------------
Please follow the guide `here <https://github.com/Start9Labs/embassy-os/blob/master/CONTRIBUTING.md>`_ and reach out to the `Community Dev <https://matrix.to/#/#community-dev:matrix.start9labs.com>`_ channel on Matrix with any questions. Please follow the guide `here <https://github.com/Start9Labs/embassy-os/blob/master/CONTRIBUTING.md>`_ and reach out to the `Community Dev <https://matrix.to/#/#community-dev:matrix.start9labs.com>`_ channel on Matrix with any questions.

View File

@@ -8,15 +8,15 @@ Embassy FAQ
:depth: 2 :depth: 2
:local: :local:
Can I run EmbassyOS on a VPS or VM? Can I run embassyOS on a VPS or VM?
----------------------------------- -----------------------------------
Possibly, but we currently advise against this. It is designed to be used on a RaspberryPi, and at the moment this is the only supported way to run EOS. Possibly, but we currently advise against this. It is designed to be used on a RaspberryPi, and at the moment this is the only supported way to run EOS.
Is it possible to use EmbassyOS on my own hardware? Is it possible to use embassyOS on my own hardware?
--------------------------------------------------- ---------------------------------------------------
Yes! The :ref:`DIY Guide <diy>` will take you through the setup steps. This option is great for people who already own the necessary hardware or who live outside the US and want to save on shipping and customs fees. Yes! The :ref:`DIY Guide <diy>` will take you through the setup steps. This option is great for people who already own the necessary hardware or who live outside the US and want to save on shipping and customs fees.
Additionally, EmbassyOS is available for you to download or build from source under the Start9 Personal Use :ref:`License<license>`, for free. The caveat is that you will miss out on the perks that come along with purchasing from us, such as white-glove support, and others, which will grow over time. Additionally, embassyOS is available for you to download or build from source under the Start9 Personal Use :ref:`License<license>`, for free. The caveat is that you will miss out on the perks that come along with purchasing from us, such as white-glove support, and others, which will grow over time.
Do I plug my Embassy into my computer? Do I plug my Embassy into my computer?
--------------------------------------- ---------------------------------------
@@ -32,7 +32,7 @@ Currently, Embassy ships with a 1 or 2TB SSD, but you may use a larger drive if
Are my Internet requests anonymous and secure? Are my Internet requests anonymous and secure?
---------------------------------------------- ----------------------------------------------
EmbassyOS and every service on our Marketplace serve their own Tor Hidden Services with unique Tor addresses. The private keys used to create these addresses are generated on your phone or computer when you first set up Embassy. No one, not even Start9, has any idea what your Tor addresses are, let alone the password(s) you choose to authenticate with them. embassyOS and every service on our Marketplace serve their own Tor Hidden Services with unique Tor addresses. The private keys used to create these addresses are generated on your phone or computer when you first set up Embassy. No one, not even Start9, has any idea what your Tor addresses are, let alone the password(s) you choose to authenticate with them.
Does Start9 have access to my Embassy's encryption keys? Does Start9 have access to my Embassy's encryption keys?
-------------------------------------------------------- --------------------------------------------------------
@@ -59,7 +59,7 @@ Alternatively, if you have an Umbrel and an Embassy and they're on the same netw
Is a more powerful device in the works?? Is a more powerful device in the works??
---------------------------------------- ----------------------------------------
Yes, we are now taking `pre-orders <https://store.start9.com/products/embassy-2>`_ for Embassy Pro, which will be the new standard in personal servers! Additionally, EmbassyOS will eventually be capable of running on lots of different hardware, such as an old desktop. We want EmbassyOS to be widely available and accessible. Yes, we are now taking `pre-orders <https://store.start9.com/products/embassy-2>`_ for Embassy Pro, which will be the new standard in personal servers! Additionally, embassyOS will eventually be capable of running on lots of different hardware, such as an old desktop. We want embassyOS to be widely available and accessible.
Is there an ETA on the Embassy Pro release date? Is there an ETA on the Embassy Pro release date?
------------------------------------------------ ------------------------------------------------

View File

@@ -10,11 +10,11 @@ General FAQ
What is Start9Labs? What is Start9Labs?
------------------- -------------------
Start9Labs is a small, but quickly growing group of builders based in Denver, CO that build Embassy and EmbassyOS. Start9Labs is a small, but quickly growing group of builders based in Denver, CO that build Embassy and embassyOS.
What is the Embassy? What is the Embassy?
-------------------- --------------------
Embassy is a "shelf-top" personal server built using a `Raspberry Pi <https://www.raspberrypi.org/products/raspberry-pi-4-model-b/>`_ for hardware and running EmbassyOS software. Embassy is a "shelf-top" personal server built using a `Raspberry Pi <https://www.raspberrypi.org/products/raspberry-pi-4-model-b/>`_ for hardware and running embassyOS software.
The internet as we know it is organized into questioners, or clients, and answerers, or servers. When you open a mobile email app, say Gmail, the app (client) begins asking questions: "have I received new mail?", "what are my last 50 messages?", "what drafts am I in the midst of writing?", and so on. Your app's questions are sent to and heard by a Google-run server which then provides answers back to the client and are subsequently displayed to the screen. The internet as we know it is organized into questioners, or clients, and answerers, or servers. When you open a mobile email app, say Gmail, the app (client) begins asking questions: "have I received new mail?", "what are my last 50 messages?", "what drafts am I in the midst of writing?", and so on. Your app's questions are sent to and heard by a Google-run server which then provides answers back to the client and are subsequently displayed to the screen.
@@ -41,7 +41,7 @@ How does Embassy work?
---------------------- ----------------------
The current model Embassy runs on Raspberry Pi 4B hardware with a Cortex-a72 CPU, 8GB of RAM, has 2.4ghz and 5.0ghz IEEE 802.11AC wireless capabilities, an internal speaker for audio feedback of system operations, and an external SSD. It also features a high endurance MicroSD card, on which the operating system software is installed. The current model Embassy runs on Raspberry Pi 4B hardware with a Cortex-a72 CPU, 8GB of RAM, has 2.4ghz and 5.0ghz IEEE 802.11AC wireless capabilities, an internal speaker for audio feedback of system operations, and an external SSD. It also features a high endurance MicroSD card, on which the operating system software is installed.
EmbassyOS is based on Ubuntu Server and handles all operations of your Embassy device. This core element of the technology stack is what enables you to set up, login, access your Embassys dashboard, and install services. embassyOS is based on Ubuntu Server and handles all operations of your Embassy device. This core element of the technology stack is what enables you to set up, login, access your Embassys dashboard, and install services.
One of these operations is creating and managing Tor addresses, which are uniquely attributed to each service you download, as well as to the Embassy device itself. You can see your uniquely generated Tor address when you complete the setup process using the Setup App. This address is how you view your Embassys dashboard, which is actually just a website served up from your Embassy itself! It is authenticated, of course, so only you can access it. One of these operations is creating and managing Tor addresses, which are uniquely attributed to each service you download, as well as to the Embassy device itself. You can see your uniquely generated Tor address when you complete the setup process using the Setup App. This address is how you view your Embassys dashboard, which is actually just a website served up from your Embassy itself! It is authenticated, of course, so only you can access it.
@@ -51,11 +51,11 @@ Once on Embassy's web page, you can choose what services to install. Then, each
The list of services will grow rapidly over the coming months and years, such that many things you currently do using cloud-based third party servers can be just as easily accomplished using your own personal cloud serving your own personal apps and storing your own private data. No trusted third parties at all. The list of services will grow rapidly over the coming months and years, such that many things you currently do using cloud-based third party servers can be just as easily accomplished using your own personal cloud serving your own personal apps and storing your own private data. No trusted third parties at all.
What is EmbassyOS? What is embassyOS?
------------------ ------------------
EmbassyOS is a new kind of Operating System (OS). It is built from the ground up to allow anyone to easily run their own "cloud," become independent from Big Tech, and own their own data. EmbassyOS allows anyone to easily host their own software services. embassyOS is a new kind of Operating System (OS). It is built from the ground up to allow anyone to easily run their own "cloud," become independent from Big Tech, and own their own data. embassyOS allows anyone to easily host their own software services.
EmbassyOS is a custom-built Linux distribution, which is a beefed up version of `Raspberry Pi OS <https://www.raspberrypi.com/software/operating-systems/>`_, along with a suite of software tools which make it easy to: embassyOS is a custom-built Linux distribution, which is a beefed up version of `Raspberry Pi OS <https://www.raspberrypi.com/software/operating-systems/>`_, along with a suite of software tools which make it easy to:
* Install, uninstall, and upgrade services from a Marketplace (similar to your phone's app store) * Install, uninstall, and upgrade services from a Marketplace (similar to your phone's app store)
* Manage and run services that YOU own and control * Manage and run services that YOU own and control
@@ -72,13 +72,13 @@ It includes:
The .s9pk extension is Start9's custom package format based on tar. It encompasses the necessary components to compress, host, and install a service on a Marketplace. The .s9pk extension is Start9's custom package format based on tar. It encompasses the necessary components to compress, host, and install a service on a Marketplace.
What are EmbassyOS Services? What are embassyOS Services?
---------------------------- ----------------------------
A Service can be any piece of software added to the Marketplace. Unlike "apps," services are (usually) "server-side" software, meaning they are intended to run 24/7/365 and listen for requests from your clients (apps). All services are "self-hosted," meaning that you are in complete control of your data. This means you can run your own "cloud!" Learn more about managing services :ref:`here <managing-services>` and see our currently `Available Services <https://marketplace.start9.com/>`_. A Service can be any piece of software added to the Marketplace. Unlike "apps," services are (usually) "server-side" software, meaning they are intended to run 24/7/365 and listen for requests from your clients (apps). All services are "self-hosted," meaning that you are in complete control of your data. This means you can run your own "cloud!" Learn more about managing services :ref:`here <managing-services>` and see our currently `Available Services <https://marketplace.start9.com/>`_.
Does the Embassy ship worldwide? Does the Embassy ship worldwide?
-------------------------------- --------------------------------
No. We ship everywhere that DHL ships, with the unfortunate exception of Europe, where the VAT and Customs are so ridiculous that they cost as much as Embassy itself or more. Please consider buying your hardware locally, and purchasing EmbassyOS as a download from us instead. Please see the :ref:`DIY<diy>` page for details. No. We ship everywhere that DHL ships, with the unfortunate exception of Europe, where the VAT and Customs are so ridiculous that they cost as much as Embassy itself or more. Please consider buying your hardware locally, and purchasing embassyOS as a download from us instead. Please see the :ref:`DIY<diy>` page for details.
Does the Embassy have international electrical plugs? Does the Embassy have international electrical plugs?
----------------------------------------------------- -----------------------------------------------------
@@ -90,11 +90,11 @@ Yes.
Is the software Open Source? Is the software Open Source?
---------------------------- ----------------------------
Yes! EmbassyOS is open source under the `Start9 Personal Use License <https://start9.com/latest/about/license>`_. Some of our other projects are currently open sourced under MIT. You can find these in the Start9 `GitHub repository <https://github.com/Start9Labs>`_. Yes! embassyOS is open source under the `Start9 Personal Use License <https://start9.com/latest/about/license>`_. Some of our other projects are currently open sourced under MIT. You can find these in the Start9 `GitHub repository <https://github.com/Start9Labs>`_.
Can you tell me about the License? Can you tell me about the License?
---------------------------------- ----------------------------------
EmbassyOS is published under our own Start9 Non-Commercial License, which has similar properties to many open source licenses with the exception that users cannot in any way, either through products or services, commercialize the source code, and any changes to the code or derivative works of the code are treated in the same manner. This means people will be welcome to access the source code, download it, use it, run it, fork it, change it, improve it - whatever they want - except sell it or sell services related to it. embassyOS is published under our own Start9 Non-Commercial License, which has similar properties to many open source licenses with the exception that users cannot in any way, either through products or services, commercialize the source code, and any changes to the code or derivative works of the code are treated in the same manner. This means people will be welcome to access the source code, download it, use it, run it, fork it, change it, improve it - whatever they want - except sell it or sell services related to it.
Is there a product warranty? Is there a product warranty?
---------------------------- ----------------------------
@@ -115,9 +115,9 @@ What are you using for a store backend? Do you store my data?
Here is our exact situation currently: Here is our exact situation currently:
Embassy device sales are processed through Shopify, which we do not like, but it was expedient in the early days, especially for shipping, so we went with it. Aside from a master list of email addresses for those who have explicitly opted in to our mailing list, all customer data is contained within Shopify. We do not duplicate it anywhere. We are asking Shopify to delete our customer data, but they claim it will take upward of 3 months to comply and we of course have no guarantee the data will actually be deleted permanently. This is partly why we exist...as such, we will be moving off of Shopify and onto a self-hosted solution, where Start9 alone controls our customer data for Embassy purchases, which we will delete as a matter of policy following a short grace period after delivery. Embassy device sales are processed through Shopify, which we do not like, but it was expedient in the early days, especially for shipping, so we went with it. Aside from a master list of email addresses for those who have explicitly opted in to our mailing list, all customer data is contained within Shopify. We do not duplicate it anywhere. We are asking Shopify to delete our customer data, but they claim it will take upward of 3 months to comply and we of course have no guarantee the data will actually be deleted permanently. This is partly why we exist...as such, we will be moving off of Shopify and onto a self-hosted solution, where Start9 alone controls our customer data for Embassy purchases, which we will delete as a matter of policy following a short grace period after delivery.
For EmbassyOS sales, we took the maximally private approach right out of the gate. When you buy EmbassyOS, the only thing we need is an email address, and you can only pay with bitcoin. That's it. Then, unless you have explicitly requested that we keep your email for mailing list purposes, we delete the email immediately upon transaction completion. For embassyOS sales, we took the maximally private approach right out of the gate. When you buy embassyOS, the only thing we need is an email address, and you can only pay with bitcoin. That's it. Then, unless you have explicitly requested that we keep your email for mailing list purposes, we delete the email immediately upon transaction completion.
So...in summary: (1) the shipping data we currently have is stored in Shopify (2) we are asking Shopify to delete all our customer data (3) we will be migrating off of Shopify (4) going forward, we alone will control customer data and will purge it regularly (5) you can always assemble the hardware yourself and just buy EmbassyOS from us with bitcoin, which only requires an email, which is gets purged immediately. So...in summary: (1) the shipping data we currently have is stored in Shopify (2) we are asking Shopify to delete all our customer data (3) we will be migrating off of Shopify (4) going forward, we alone will control customer data and will purge it regularly (5) you can always assemble the hardware yourself and just buy embassyOS from us with bitcoin, which only requires an email, which is gets purged immediately.
I want to help, but I'm not a developer. Are there any ways for non-coders to contribute? I want to help, but I'm not a developer. Are there any ways for non-coders to contribute?
------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------

View File

@@ -8,7 +8,7 @@ Packaging FAQ
:depth: 2 :depth: 2
:local: :local:
Do I need programming experience to package a service for EmbassyOS? Do I need programming experience to package a service for embassyOS?
-------------------------------------------------------------------- --------------------------------------------------------------------
It would be helpful, but is not a pre-requisite. Linux, dev-ops, and/or systems administration experience would all be helpful as well. Keep in mind that everyone has to start somewhere, and perhaps your journey to development begins with packaging a service for EOS! It would be helpful, but is not a pre-requisite. Linux, dev-ops, and/or systems administration experience would all be helpful as well. Keep in mind that everyone has to start somewhere, and perhaps your journey to development begins with packaging a service for EOS!
@@ -16,7 +16,7 @@ What considerations are there when choosing a service for packaging?
-------------------------------------------------------------------- --------------------------------------------------------------------
There are several things you will want to consider. Requirements include: There are several things you will want to consider. Requirements include:
#. Most importantly, pick a service you are passionate about seeing on EmbassyOS #. Most importantly, pick a service you are passionate about seeing on embassyOS
#. Make sure it is :ref:`Open Source <open-source>` #. Make sure it is :ref:`Open Source <open-source>`
#. A service that incorporates a 'self-hosting' option, or is capable of being self-hosted #. A service that incorporates a 'self-hosting' option, or is capable of being self-hosted

View File

@@ -26,7 +26,7 @@ We do hope to add this functionality one day, however it has some technical chal
Can the Embassy run 'X' Service?? Can the Embassy run 'X' Service??
--------------------------------- ---------------------------------
Potentially. Here is a `comprehensive list <https://github.com/awesome-selfhosted/awesome-selfhosted>`_ of self-hosted services, any of which can theoretically be run on EmbassyOS. Potentially. Here is a `comprehensive list <https://github.com/awesome-selfhosted/awesome-selfhosted>`_ of self-hosted services, any of which can theoretically be run on embassyOS.
To get a general idea of what is required of an app, answer these questions: To get a general idea of what is required of an app, answer these questions:
1. Is it designed to be self-hosted? 1. Is it designed to be self-hosted?
@@ -35,7 +35,7 @@ To get a general idea of what is required of an app, answer these questions:
4. Does it ship with it's own web interface? Or is there a Tor-enabled client app? 4. Does it ship with it's own web interface? Or is there a Tor-enabled client app?
5. Is there someone willing to put in the time to package it up? 5. Is there someone willing to put in the time to package it up?
If all answers are yes, then it can run on EmbassyOS. If all answers are yes, then it can run on embassyOS.
Packing up a service for the Embassy does not require extensive development skills. If you are interested in doing do, please see our :ref:`Developer Docs <developer-docs>`. Packing up a service for the Embassy does not require extensive development skills. If you are interested in doing do, please see our :ref:`Developer Docs <developer-docs>`.
@@ -80,7 +80,7 @@ I want to use BTCPayServer on my website, but Tor is the only option, how can vi
-------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------
As the Embassy produces a Tor Hidden Service for each service, BTCPayServer is only available via Tor by default. For a brick and mortar business, this is no problem as you can use your own device for a customer to pay you on. If you run your own website, it is possible to set up a reverse proxy in order to serve BTCPay content to your clearnet visitors. A guide to doing this is available in the `BTCPayServer docs <https://docs.btcpayserver.org/Deployment/ReverseProxyToTor/#reverse-proxy-to-tor/>`_. As the Embassy produces a Tor Hidden Service for each service, BTCPayServer is only available via Tor by default. For a brick and mortar business, this is no problem as you can use your own device for a customer to pay you on. If you run your own website, it is possible to set up a reverse proxy in order to serve BTCPay content to your clearnet visitors. A guide to doing this is available in the `BTCPayServer docs <https://docs.btcpayserver.org/Deployment/ReverseProxyToTor/#reverse-proxy-to-tor/>`_.
We understand that this can be a frustrating limitation, and adding clearnet support is high on our list of priorities for EmbassyOS. This will allow a number of services to have better interoperability with the broader Web. We understand that this can be a frustrating limitation, and adding clearnet support is high on our list of priorities for embassyOS. This will allow a number of services to have better interoperability with the broader Web.
I'm having issues connecting to users or rooms in Matrix/Synapse, what can I do? I'm having issues connecting to users or rooms in Matrix/Synapse, what can I do?
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------

View File

@@ -65,7 +65,7 @@ Umbrel uses docker images pushed to Docker Hub to catalog services on the Umbrel
**Embassy** **Embassy**
Embassy uses the concept of a wrapper around a docker container to package custom services and provides detailed documentation on how to package a service for the Embassy using any desired programming language. This wrapper acts as a translation layer such that developers can take advantage of the EmbassyOS various APIs mentioned throughout this writing. Embassy will host the service over Tor and LAN without any additional configuration needed. They also provide a hello-world example to refer to when packaging a custom service. Embassy uses the concept of a wrapper around a docker container to package custom services and provides detailed documentation on how to package a service for the Embassy using any desired programming language. This wrapper acts as a translation layer such that developers can take advantage of the embassyOS various APIs mentioned throughout this writing. Embassy will host the service over Tor and LAN without any additional configuration needed. They also provide a hello-world example to refer to when packaging a custom service.
Services can then be submitted to the Start9 Service Marketplace for review and distribution, or they can be hosted on any alternative marketplace. Services can then be submitted to the Start9 Service Marketplace for review and distribution, or they can be hosted on any alternative marketplace.

View File

@@ -4,11 +4,11 @@
Alt Marketplaces Alt Marketplaces
================ ================
It is critical to Start9's mission that Start9 is **not** a central point of failure. The Marketplace is a critical piece of infrastructure and therefore EmbassyOS supports accessing alternative marketplaces. It is critical to Start9's mission that Start9 is **not** a central point of failure. The Marketplace is a critical piece of infrastructure and therefore embassyOS supports accessing alternative marketplaces.
.. caution:: Start9 is not responsible for issues encountered when downloading services from alternative marketplaces, and cannot provide support for services that are not from our official marketplace. Here be dragons!! .. caution:: Start9 is not responsible for issues encountered when downloading services from alternative marketplaces, and cannot provide support for services that are not from our official marketplace. Here be dragons!!
.. note:: Currently this change will only permit the downloading of *services* from alternative marketplaces. EmbassyOS itself may only be obtained from Start9. .. note:: Currently this change will only permit the downloading of *services* from alternative marketplaces. embassyOS itself may only be obtained from Start9.
#. Go to *Embassy > Marketplace Settings*. #. Go to *Embassy > Marketplace Settings*.

View File

@@ -30,7 +30,7 @@ The recommended method of backup (including with external drives) is to setup a
.. figure:: /_static/images/config/physical-backup2.png .. figure:: /_static/images/config/physical-backup2.png
:width: 60% :width: 60%
#. Enter your EmbassyOS master password. #. Enter your embassyOS master password.
.. figure:: /_static/images/config/physical-backup3.png .. figure:: /_static/images/config/physical-backup3.png
:width: 60% :width: 60%

View File

@@ -32,7 +32,7 @@ The Backups section allows you to create and restore :ref:`Embassy backups <back
Settings Settings
======== ========
The Settings section gives you access to :ref:`EmbassyOS Updates <updating-eos>`, Device Preferences, :ref:`connecting-lan`, :ref:`ssh`, :ref:`wifi`, and :ref:`alt-marketplaces`. The Settings section gives you access to :ref:`embassyOS Updates <updating-eos>`, Device Preferences, :ref:`connecting-lan`, :ref:`ssh`, :ref:`wifi`, and :ref:`alt-marketplaces`.
Insights Insights
======== ========
@@ -75,7 +75,7 @@ Use this tab to access your preferred Marketplace, where you can discover and in
Notifications Tab Notifications Tab
----------------- -----------------
Notifications issued by EmbassyOS will appear in this tab. You can delete these notifications individually or all at once by clicking "Delete All". Notifications issued by embassyOS will appear in this tab. You can delete these notifications individually or all at once by clicking "Delete All".
.. figure:: /_static/images/walkthrough/notiftab.png .. figure:: /_static/images/walkthrough/notiftab.png
:width: 60% :width: 60%

View File

@@ -4,33 +4,57 @@
Flashing Flashing
======== ========
Getting EmbassyOS Getting embassyOS
----------------- -----------------
After building your device, you need a copy of EmbassyOS. After building your device, you need a copy of embassyOS.
* Visit the `latest EmbassyOS release page on Github <https://github.com/Start9Labs/embassy-os/releases/latest>`_ to download an image of EmbassyOS. It is `eos.tar.gz`. * Visit the `latest embassyOS release page on Github <https://github.com/Start9Labs/embassy-os/releases/latest>`_ to download an image of embassyOS. It is ``eos.tar.gz`` for Linux/Mac and ``eos.zip`` for Windows.
Extracting the image (eos.tar.gz) Extracting the image
--------------------------------- --------------------
* On Linux, open a terminal and run Linux
=====
#. Download the ``eos.tar.gz`` file and open a terminal in the directory you save it to
#. (Optional, but recommended) Verify the checksum against the one listed on GitHub:
.. code-block::
sha256sum eos.img.gz
#. Extract with:
.. code-block:: .. code-block::
tar -xzvf eos.img.gz tar -xzvf eos.img.gz
* On Mac right click eos.tar.gz, click "open with" and click Unarchive Mac
===
#. Download the ``eos.tar.gz`` file
#. (Optional, but recommended) Verify the checksum against the one listed on GitHub:
.. figure:: /_static/images/unarchive.png .. code-block::
:width: 40%
* On Windows download `7zip <https://www.7-zip.org/>`_ and use it to extract the image. openssl dgst -sha256 eos.img.gz
In all cases you should be left with the file eos.img #. Right-click eos.tar.gz, click "open with," then click Archive Utility to extract
Windows
=======
#. Download the ``eos.zip`` file
#. (Optional, but recommended) Verify the checksum against the one listed on GitHub:
.. code-block::
Get-FileHash eos.zip
#. Right-click eos.zip and click "Extract all"
In all cases you will be left with the file ``eos.img``
Installing embassyOS Installing embassyOS
-------------------- --------------------
Once you have the EmbassyOS image, you will need to flash it onto a microSD card. Once you have the embassyOS image, you will need to flash it onto a microSD card.
#. Download `balenaEtcher <https://www.balena.io/etcher/>`_ onto your Linux, Mac, or Windows computer. #. Download `balenaEtcher <https://www.balena.io/etcher/>`_ onto your Linux, Mac, or Windows computer.
#. Insert the microSD card into your computer, either directly or using an adapter. #. Insert the microSD card into your computer, either directly or using an adapter.
@@ -43,7 +67,7 @@ Once you have the EmbassyOS image, you will need to flash it onto a microSD card
#. Click "Select Image" and select eos.img. #. Click "Select Image" and select eos.img.
#. Click "Select Target" and select your 32GB microSD card. #. Click "Select Target" and select your 32GB microSD card.
.. warning:: Be certain you have selected the correct target microSD card. Whatever target you select will be completely erased and replaced with EmbassyOS. .. warning:: Be certain you have selected the correct target microSD card. Whatever target you select will be completely erased and replaced with embassyOS.
#. Click "Flash!". You may be asked to (1) approve the unusually large disk target or (2) enter your password. Both are normal. #. Click "Flash!". You may be asked to (1) approve the unusually large disk target or (2) enter your password. Both are normal.
#. After the flash completes, you may remove the newly flashed micro SD card from any adapter, insert it into your Embassy's SD card slot, and continue to the :ref:`Initial Setup <initial-setup>` or :ref:`Update by reflashing <manual-update>` instructions. #. After the flash completes, you may remove the newly flashed micro SD card from any adapter, insert it into your Embassy's SD card slot, and continue to the :ref:`Initial Setup <initial-setup>` or :ref:`Update by reflashing <manual-update>` instructions.

View File

@@ -4,7 +4,7 @@
User Manual User Manual
=========== ===========
Welcome to the EmbassyOS user manual. Here you will discover all that your Embassy can do! Welcome to the embassyOS user manual. Here you will discover all that your Embassy can do!
.. toctree:: .. toctree::
:includehidden: :includehidden:

View File

@@ -44,7 +44,7 @@ Powering On
* "chime" - Embassy is ready * "chime" - Embassy is ready
.. caution:: If you followed the DIY guide and built EmbassyOS from source code, it may take up to 20 minutes to first initialize. .. caution:: If you followed the DIY guide and built embassyOS from source code, it may take up to 20 minutes to first initialize.
Claiming your Device Claiming your Device
-------------------- --------------------

View File

@@ -8,7 +8,7 @@ Managing Services
:depth: 2 :depth: 2
:local: :local:
EmbassyOS provides a rich interface for managing installed Services. embassyOS provides a rich interface for managing installed Services.
Service Dashboard Service Dashboard
----------------- -----------------
@@ -25,7 +25,7 @@ The Service Dashboard provides quick insight into the status and health of your
* **Starting**: Service is in the process of starting up. * **Starting**: Service is in the process of starting up.
* **Running**: Service is running. * **Running**: Service is running.
* **Launch UI**: If the service offer a User Interface (UI), and the UI is currently available, clicking this button will launch the UI in a new browser tab. Learn more about :ref:`Web UIs<web-ui>`. * **Launch UI**: If the service offer a User Interface (UI), and the UI is currently available, clicking this button will launch the UI in a new browser tab. Learn more about :ref:`Web UIs<web-ui>`.
* **Health Checks**: This is a critical feature of EmbassyOS. Health Checks are configured by the service packager in order to quickly convey to the user what is happening with their service, as well as possible actions they may want to take. Learn more about :ref:`Health Checks <health-checks>`. * **Health Checks**: This is a critical feature of embassyOS. Health Checks are configured by the service packager in order to quickly convey to the user what is happening with their service, as well as possible actions they may want to take. Learn more about :ref:`Health Checks <health-checks>`.
* **Dependencies**: Some services depend on the presence and proper configuration of other services to function. This section will inform you if all dependencies are satisfied and, if not, what to do about it. Learn more about :ref:`Dependencies <service-dependencies>`. * **Dependencies**: Some services depend on the presence and proper configuration of other services to function. This section will inform you if all dependencies are satisfied and, if not, what to do about it. Learn more about :ref:`Dependencies <service-dependencies>`.
* **Start / Stop**: Self-explanatory, use these buttons to start or stop a service. * **Start / Stop**: Self-explanatory, use these buttons to start or stop a service.
@@ -53,7 +53,7 @@ Installing a Service
Updating a Service Updating a Service
------------------ ------------------
.. note:: EmbassyOS will **NEVER** update a service without your consent. .. note:: embassyOS will **NEVER** update a service without your consent.
To see if an update is available for a service, you can visit the *Updates* section of the Marketplace or by visiting its Marketplace listing. To see if an update is available for a service, you can visit the *Updates* section of the Marketplace or by visiting its Marketplace listing.

View File

@@ -8,7 +8,7 @@ Reset Your Password
:depth: 2 :depth: 2
:local: :local:
#. Obtain the latest copy of EmbassyOS by `downloading it from Github <https://github.com/Start9Labs/embassy-os/releases/latest>`_. Under `Assets` near the bottom of the page, click to download eos.tar.gz. #. Obtain the latest copy of embassyOS by `downloading it from Github <https://github.com/Start9Labs/embassy-os/releases/latest>`_. Under `Assets` near the bottom of the page, click to download eos.tar.gz.
#. Flash the downloaded image to your microSD card, using :ref:`this guide <flashing>`. #. Flash the downloaded image to your microSD card, using :ref:`this guide <flashing>`.
#. Insert the microSD card into your Embassy and power it on. #. Insert the microSD card into your Embassy and power it on.
@@ -26,7 +26,7 @@ Reset Your Password
.. figure:: /_static/images/setup/screen1-restore_or_useexisting.jpg .. figure:: /_static/images/setup/screen1-restore_or_useexisting.jpg
:width: 60% :width: 60%
#. As instructed, plug in your EmbassyOS data drive and it will be detected. #. As instructed, plug in your embassyOS data drive and it will be detected.
.. figure:: /_static/images/setup/screen4-select_storage.jpg .. figure:: /_static/images/setup/screen4-select_storage.jpg
:width: 60% :width: 60%

View File

@@ -27,7 +27,7 @@ Ride the Lightning
Available For Available For
............. .............
- EmbassyOS - embassyOS
See the video at the top of this page for an intro to Lightning using RTL. See the video at the top of this page for an intro to Lightning using RTL.
@@ -41,7 +41,7 @@ Spark
Available For Available For
............. .............
- Android - Android
- EmbassyOS - embassyOS
- iOS - iOS
To use a Spark client, you still need to have Spark installed on the Embassy. The Spark service on Embassy is both a server (background service) and a client (the :ref:`Web UI<web-ui>`). Under Properties, there is a "Pairing URL". The first part of this is the server URL, and the end portion of it is the access key. To use a Spark client, you still need to have Spark installed on the Embassy. The Spark service on Embassy is both a server (background service) and a client (the :ref:`Web UI<web-ui>`). Under Properties, there is a "Pairing URL". The first part of this is the server URL, and the end portion of it is the access key.
@@ -53,7 +53,7 @@ Thunderhub
Available For Available For
............. .............
- EmbassyOS - embassyOS
Download from your Embassy's Marketplace and follow the included Instructions. Download from your Embassy's Marketplace and follow the included Instructions.

View File

@@ -1,25 +1,25 @@
.. _updating-eos: .. _updating-eos:
================== ==================
Updating EmbassyOS Updating embassyOS
================== ==================
.. contents:: .. contents::
:depth: 2 :depth: 2
:local: :local:
.. note:: EmbassyOS will **NEVER** update itself without your approval. But we highly recommended keeping EmbassyOS up to date for the latest security and performance patches, as well as to take advantage of new features. .. note:: embassyOS will **NEVER** update itself without your approval. But we highly recommended keeping embassyOS up to date for the latest security and performance patches, as well as to take advantage of new features.
How to Update How to Update
------------- -------------
#. When a new version of EmbassyOS is available, a badge will appear on the "Embassy" tab. #. When a new version of embassyOS is available, a badge will appear on the "Embassy" tab.
#. Go to *Embassy > Software Update*. #. Go to *Embassy > Software Update*.
.. warning:: Ensure you have a stable Internet connection before beginning an OS update, and do not unplug your Embassy while EmbassyOS is downloading. .. warning:: Ensure you have a stable Internet connection before beginning an OS update, and do not unplug your Embassy while embassyOS is downloading.
#. Read the release notes and click "Begin Update". #. Read the release notes and click "Begin Update".
#. While the new version of EmbassyOS is downloading, you may continue to use your device as usual. #. While the new version of embassyOS is downloading, you may continue to use your device as usual.
#. Once the download is complete, you will be prompted to restart Embassy. #. Once the download is complete, you will be prompted to restart Embassy.
#. After restart, but before the web interface becomes available again, there may be a brief upgrade period of up to thirty minutes where data is transitioned. You will hear this sound every ten seconds until the upgrade is complete: #. After restart, but before the web interface becomes available again, there may be a brief upgrade period of up to thirty minutes where data is transitioned. You will hear this sound every ten seconds until the upgrade is complete:
@@ -29,7 +29,10 @@ How to Update
<source src="/_static/sounds/UPDATING.mp3" type="audio/mpeg"> <source src="/_static/sounds/UPDATING.mp3" type="audio/mpeg">
Your browser does not support the audio element. Your browser does not support the audio element.
</audio> </audio>
**Do not unplug or otherwise power off the embassy during this period.**
**Do not unplug or otherwise power off the embassy during this period.**
#. Next, you may be prompted to refresh the browser window. #. Next, you may be prompted to refresh the browser window.
Disabling Auto Check for Updates Disabling Auto Check for Updates
@@ -49,7 +52,7 @@ This guide will cover how to recover existing Embassy 0.3.x service and user dat
Manual Update by Re-flashing Manual Update by Re-flashing
---------------------------- ----------------------------
#. Obtain the latest copy of EmbassyOS with your product key included, either by `downloading <https://github.com/Start9Labs/embassy-os/releases/latest>`_ or `building from source <https://github.com/Start9Labs/embassy-os/tree/latest/build>`_. #. Obtain the latest copy of embassyOS with your product key included, either by `downloading <https://github.com/Start9Labs/embassy-os/releases/latest>`_ or `building from source <https://github.com/Start9Labs/embassy-os/tree/latest/build>`_.
#. `Flash the downloaded image <../flashing>`_ to your microSD card. #. `Flash the downloaded image <../flashing>`_ to your microSD card.
#. Insert the microSD card into your Embassy and power it on. #. Insert the microSD card into your Embassy and power it on.
@@ -67,7 +70,7 @@ Manual Update by Re-flashing
.. figure:: /_static/images/setup/screen3-use_existing.jpg .. figure:: /_static/images/setup/screen3-use_existing.jpg
:width: 60% :width: 60%
#. Assuming you have you fully-intact EmbassyOS data drive plugged in, it will be automatically detected and begin the upgrade. #. Assuming you have you fully-intact embassyOS data drive plugged in, it will be automatically detected and begin the upgrade.
.. raw:: HTML .. raw:: HTML

View File

@@ -8,7 +8,7 @@ Using your own hardware
:depth: 2 :depth: 2
:local: :local:
This guide will cover how to upgrade from EmbassyOS version 0.2.x to version 0.3.x with your own equipment. This guide will cover how to upgrade from embassyOS version 0.2.x to version 0.3.x with your own equipment.
Hardware Requirements Hardware Requirements
--------------------- ---------------------

View File

@@ -8,7 +8,7 @@ Setup with Upgrade Kit
:depth: 2 :depth: 2
:local: :local:
This guide will cover how to upgrade from EmbassyOS version 0.2.x to version 0.3.x. This guide will cover how to upgrade from embassyOS version 0.2.x to version 0.3.x.
.. note:: .. note::
If you purchased your own equipment please follow :ref:`this guide<upgrade-diy>`. If you purchased your own equipment please follow :ref:`this guide<upgrade-diy>`.