fix links, inline code, and adjust icon images throughout topic boxes

This commit is contained in:
Lucy Cifferello
2022-02-13 17:40:28 -07:00
parent 6f16fdc7a4
commit 3a5ba2738c
16 changed files with 150 additions and 143 deletions

18
poetry.lock generated
View File

@@ -72,7 +72,7 @@ python-versions = "*"
[[package]] [[package]]
name = "charset-normalizer" name = "charset-normalizer"
version = "2.0.11" version = "2.0.12"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
category = "main" category = "main"
optional = false optional = false
@@ -126,7 +126,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]] [[package]]
name = "importlib-metadata" name = "importlib-metadata"
version = "4.10.1" version = "4.11.0"
description = "Read metadata from Python packages" description = "Read metadata from Python packages"
category = "dev" category = "dev"
optional = false optional = false
@@ -564,7 +564,7 @@ python-versions = ">= 3.5"
[[package]] [[package]]
name = "typing-extensions" name = "typing-extensions"
version = "4.1.1" version = "4.1.0"
description = "Backported and Experimental Type Hints for Python 3.6+" description = "Backported and Experimental Type Hints for Python 3.6+"
category = "dev" category = "dev"
optional = false optional = false
@@ -649,8 +649,8 @@ certifi = [
{file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"}, {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"},
] ]
charset-normalizer = [ charset-normalizer = [
{file = "charset-normalizer-2.0.11.tar.gz", hash = "sha256:98398a9d69ee80548c762ba991a4728bfc3836768ed226b3945908d1a688371c"}, {file = "charset-normalizer-2.0.12.tar.gz", hash = "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597"},
{file = "charset_normalizer-2.0.11-py3-none-any.whl", hash = "sha256:2842d8f5e82a1f6aa437380934d5e1cd4fcf2003b06fed6940769c164a480a45"}, {file = "charset_normalizer-2.0.12-py3-none-any.whl", hash = "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"},
] ]
colorama = [ colorama = [
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
@@ -673,8 +673,8 @@ imagesize = [
{file = "imagesize-1.3.0.tar.gz", hash = "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"}, {file = "imagesize-1.3.0.tar.gz", hash = "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"},
] ]
importlib-metadata = [ importlib-metadata = [
{file = "importlib_metadata-4.10.1-py3-none-any.whl", hash = "sha256:899e2a40a8c4a1aec681feef45733de8a6c58f3f6a0dbed2eb6574b4387a77b6"}, {file = "importlib_metadata-4.11.0-py3-none-any.whl", hash = "sha256:6affcdb3aec542dd98df8211e730bba6c5f2bec8288d47bacacde898f548c9ad"},
{file = "importlib_metadata-4.10.1.tar.gz", hash = "sha256:951f0d8a5b7260e9db5e41d429285b5f451e928479f19d80818878527d36e95e"}, {file = "importlib_metadata-4.11.0.tar.gz", hash = "sha256:9e5e553bbba1843cb4a00823014b907616be46ee503d2b9ba001d214a8da218f"},
] ]
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"},
@@ -945,8 +945,8 @@ tornado = [
{file = "tornado-6.1.tar.gz", hash = "sha256:33c6e81d7bd55b468d2e793517c909b139960b6c790a60b7991b9b6b76fb9791"}, {file = "tornado-6.1.tar.gz", hash = "sha256:33c6e81d7bd55b468d2e793517c909b139960b6c790a60b7991b9b6b76fb9791"},
] ]
typing-extensions = [ typing-extensions = [
{file = "typing_extensions-4.1.1-py3-none-any.whl", hash = "sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2"}, {file = "typing_extensions-4.1.0-py3-none-any.whl", hash = "sha256:c13180fbaa7cd97065a4915ceba012bdb31dc34743e63ddee16360161d358414"},
{file = "typing_extensions-4.1.1.tar.gz", hash = "sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42"}, {file = "typing_extensions-4.1.0.tar.gz", hash = "sha256:ba97c5143e5bb067b57793c726dd857b1671d4b02ced273ca0538e71ff009095"},
] ]
urllib3 = [ urllib3 = [
{file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"}, {file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"},

View File

@@ -7,36 +7,21 @@ Contact Us
Community Channels Community Channels
------------------ ------------------
Matrix `Matrix Start9 Community <https://matrix.to/#/#community:matrix.start9labs.com>`_
======
Start9 Community - https://matrix.to/#/#community:matrix.start9labs.com `Matrix Community Developers <https://matrix.to/#/#community-dev:matrix.start9labs.com>`_
Community Developers - https://matrix.to/#/#community-dev:matrix.start9labs.com
Start9 Tor Community (Tor required) - https://matrix.to/#/!iRwnQntcjpWfLxdgav:matrix.privacy34kn4ez3y3nijweec6w4g54i3g54sdv7r5mr6soma3w4begyd.onion?via=matrix.start9labs.com&via=matrix.privacy34kn4ez3y3nijweec6w4g54i3g54sdv7r5mr6soma3w4begyd.onion&via=oayal5vhil3zhj7ylixvpi4nr2xvhypdnenji4sx5q4kvaotevjvsxad.onion `Matrix Start9 Tor Community (Tor required) <https://matrix.to/#/!iRwnQntcjpWfLxdgav:matrix.privacy34kn4ez3y3nijweec6w4g54i3g54sdv7r5mr6soma3w4begyd.onion?via=matrix.start9labs.com&via=matrix.privacy34kn4ez3y3nijweec6w4g54i3g54sdv7r5mr6soma3w4begyd.onion&via=oayal5vhil3zhj7ylixvpi4nr2xvhypdnenji4sx5q4kvaotevjvsxad.onion>`_
Telegram `Telegram <https://t.me/start9_labs>`_
========
https://t.me/start9_labs
Social Media Social Media
------------ ------------
`Mastodon <https://mastodon.start9labs.com/>`_
Mastodon `Twitter <https://twitter.com/start9labs>`_
========
https://mastodon.start9labs.com/ `GitHub <https://github.com/start9labs>`_
Twitter
=======
https://twitter.com/start9labs
GitHub
======
https://github.com/start9labs
Email Email
----- -----

View File

@@ -15,56 +15,56 @@ About
.. topic-box:: .. topic-box::
:title: Start9 Labs :title: Start9 Labs
:link: start9 :link: start9
:icon: scylla-icon scylla-icon--knowledge-base :icon: scylla-icon scylla-icon--comparison
:class: large-4 :class: large-4
:anchor: Principles :anchor: View
An overview of the ideas and technologies surrounding Start9 Labs and Embassy. Get acquainted with the Start9 principles.
.. topic-box:: .. topic-box::
:title: Roadmap :title: Roadmap
:link: roadmap :link: roadmap
:icon: scylla-icon scylla-icon--knowledge-base :icon: scylla-icon scylla-icon--roadmap
:class: large-4 :class: large-4
:anchor: View :anchor: See what's coming
An overview of the ideas and technologies surrounding Start9 Labs and Embassy. Check out the ambitious future of Start9.
.. topic-box:: .. topic-box::
:title: Privacy :title: Privacy Policy
:link: privacy :link: privacy
:icon: scylla-icon scylla-icon--knowledge-base :icon: scylla-icon scylla-icon--release-note
:class: large-4 :class: large-4
:anchor: View :anchor: View
An overview of the ideas and technologies surrounding Start9 Labs and Embassy. Take a look at our privacy policy.
.. topic-box:: .. topic-box::
:title: License :title: License
:link: license :link: license
:icon: scylla-icon scylla-icon--knowledge-base :icon: scylla-icon scylla-icon--whitepapers
:class: large-4 :class: large-4
:anchor: View :anchor: View
An overview of the ideas and technologies surrounding Start9 Labs and Embassy. Read our product license agreement.
.. topic-box:: .. topic-box::
:title: Jobs :title: Jobs
:link: jobs :link: jobs
:icon: scylla-icon scylla-icon--knowledge-base :icon: scylla-icon scylla-icon--about-team
:class: large-4 :class: large-4
:anchor: View :anchor: Join us
An overview of the ideas and technologies surrounding Start9 Labs and Embassy. See what open jobs we have available.
.. topic-box:: .. topic-box::
:title: Contact Us :title: Contact Us
:link: contact :link: contact
:icon: scylla-icon scylla-icon--knowledge-base :icon: scylla-icon scylla-icon--contact-us
:class: large-4 :class: large-4
:anchor: Reach out :anchor: Reach out
An overview of the ideas and technologies surrounding Start9 Labs and Embassy. Get in touch with any questions, concerns, or feedback. Your input is always welcome!
.. raw:: html .. raw:: html

View File

@@ -15,38 +15,38 @@ Contribute
.. topic-box:: .. topic-box::
:title: Teach :title: Teach
:link: teach :link: teach
:icon: scylla-icon scylla-icon--knowledge-base :icon: scylla-icon scylla-icon--tech-talks
:class: large-4 :class: large-4
:anchor: Learn :anchor: Join the movement
An overview of the ideas and technologies surrounding Start9 Labs and Embassy. Share your knowledge with the community.
.. topic-box:: .. topic-box::
:title: Provide Support :title: Provide Support
:link: provide-support :link: provide-support
:icon: scylla-icon scylla-icon--knowledge-base :icon: scylla-icon scylla-icon--support
:class: large-4 :class: large-4
:anchor: Learn :anchor: Help
An overview of the ideas and technologies surrounding Start9 Labs and Embassy. Learn how you can help provide community support.
.. topic-box:: .. topic-box::
:title: Decentralize :title: Decentralize
:link: decentralize :link: decentralize
:icon: scylla-icon scylla-icon--knowledge-base :icon: scylla-icon scylla-icon--cloud
:class: large-4 :class: large-4
:anchor: Learn :anchor: View
An overview of the ideas and technologies surrounding Start9 Labs and Embassy. See how you can aid in decentralizing our architecture.
.. topic-box:: .. topic-box::
:title: Promote :title: Promote
:link: promote :link: promote
:icon: scylla-icon scylla-icon--knowledge-base :icon: scylla-icon scylla-icon--summit
:class: large-4 :class: large-4
:anchor: Learn :anchor: Join
An overview of the ideas and technologies surrounding Start9 Labs and Embassy. Become an affiliate and help promote Start9.
.. raw:: html .. raw:: html

View File

@@ -77,7 +77,7 @@
.. topic-box:: .. topic-box::
:title: SDK :title: SDK
:link: support/dev-docs :link: service-packaging
:icon: scylla-icon scylla-icon--open-source :icon: scylla-icon scylla-icon--open-source
:class: large-3 :class: large-3
:anchor: View :anchor: View
@@ -119,6 +119,7 @@
learn/index learn/index
contribute/index contribute/index
about/index about/index
service-packaging/index
.. raw:: html .. raw:: html

View File

@@ -15,7 +15,7 @@ Learn
.. topic-box:: .. topic-box::
:title: Concepts :title: Concepts
:link: concepts :link: concepts
:icon: scylla-icon scylla-icon--knowledge-base :icon: scylla-icon scylla-icon--operator
:class: large-4 :class: large-4
:anchor: Learn :anchor: Learn
@@ -33,7 +33,7 @@ Learn
.. topic-box:: .. topic-box::
:title: Videos :title: Videos
:link: https://youtube.com/c/Start9 :link: https://youtube.com/c/Start9
:icon: scylla-icon scylla-icon--monitoring :icon: scylla-icon scylla-icon--training
:class: large-4 :class: large-4
:anchor: Watch :anchor: Watch
@@ -42,7 +42,7 @@ Learn
.. topic-box:: .. topic-box::
:title: Media :title: Media
:link: media :link: media
:icon: scylla-icon scylla-icon--monitoring :icon: scylla-icon scylla-icon--news
:class: large-4 :class: large-4
:anchor: View :anchor: View

View File

@@ -6,9 +6,15 @@ Advanced Packaging Overview
This section included advanced commands for working with packages in EmbassyOS. This section included advanced commands for working with packages in EmbassyOS.
.. raw:: html
<div class="topics-grid grid-container full">
<div class="grid-x grid-margin-x">
.. topic-box:: .. topic-box::
:title: Developer Tools :title: Developer Tools
:link: dev-tools/index :link: dev-tools
:icon: scylla-icon scylla-icon--developers-blog :icon: scylla-icon scylla-icon--developers-blog
:class: large-4 :class: large-4
:anchor: View :anchor: View

View File

@@ -17,7 +17,7 @@ We'll create a web application that produces a hello world page. This web applic
4. Create a hosted repository which will contain all the service components 4. Create a hosted repository which will contain all the service components
5. Create the packaged service file 5. Create the packaged service file
You can find the complete service code referenced in this guide on `GitHub <https://github.com/Start9Labs/hello-world-wrapper>`_. You can find the `complete code <https://github.com/Start9Labs/hello-world-wrapper>`_ referenced in this guide on GitHub.
Download required tools Download required tools
======================= =======================
@@ -43,9 +43,10 @@ For this example, we are going to create a simple Rust project that serves a sta
cargo init cargo init
touch src/index.html touch src/index.html
In `index.html` add: In ``index.html`` add:
.. code:: html .. code:: html
<html> <html>
<head> <head>
<title>Hello World!</title> <title>Hello World!</title>
@@ -55,7 +56,7 @@ In `index.html` add:
</body> </body>
</html> </html>
In `main.rs` add: In ``main.rs`` add:
.. code:: rust .. code:: rust
@@ -88,7 +89,7 @@ In `main.rs` add:
} }
That's it! We have the code for our service. **That's it!** We now have the code for our service.
Let's build and run it! Let's build and run it!
@@ -99,7 +100,7 @@ Let's build and run it!
# start the executable # start the executable
target/debug/hello-world target/debug/hello-world
Visit `localhost:80` to see your running web page! Visit `<http://localhost:80>`_ to see your running web page!
Build for RaspberryPi Build for RaspberryPi
====================== ======================
@@ -145,27 +146,27 @@ Now that we have our code properly built/compiled, we can create a Dockerfile. T
In other words, the Dockerfile serves as a recipe for creating a Docker image, from which Docker containers are spun up. This is ultimately what runs an instance of your service on the Embassy. In other words, the Dockerfile serves as a recipe for creating a Docker image, from which Docker containers are spun up. This is ultimately what runs an instance of your service on the Embassy.
#. Create the necessary Docker files: 1. Create the necessary Docker files:
.. code:: bash .. code:: bash
touch Dockerfile touch Dockerfile
touch docker_entrypoint.sh touch docker_entrypoint.sh
#. We start by importing a base image, in this case Alpine, as recommended. 2. We start by importing a base image, in this case Alpine, as recommended.
.. code:: docker .. code:: docker
FROM arm64v8/alpine:3.12 FROM arm64v8/alpine:3.12
#. Next, we issue some commands to setup the filesystem. Here we update repositories and install required system packages. 3. Next, we issue some commands to setup the filesystem. Here we update repositories and install required system packages.
.. code:: docker .. code:: docker
RUN apk update RUN apk update
RUN apk add tini RUN apk add tini
#. Next, we add the cross-compiled binary of ``hello-world`` to ``/usr/local/bin/`` and add the ``docker_entrypoint.sh`` file from the project root. Then, we set permissions for ``docker_entrypoint.sh``. 4. Next, we add the cross-compiled binary of ``hello-world`` to ``/usr/local/bin/`` and add the ``docker_entrypoint.sh`` file from the project root. Then, we set permissions for ``docker_entrypoint.sh``.
.. code:: docker .. code:: docker
@@ -173,7 +174,7 @@ In other words, the Dockerfile serves as a recipe for creating a Docker image, f
ADD ./docker_entrypoint.sh /usr/local/bin/docker_entrypoint.sh ADD ./docker_entrypoint.sh /usr/local/bin/docker_entrypoint.sh
RUN chmod a+x /usr/local/bin/docker_entrypoint.sh RUN chmod a+x /usr/local/bin/docker_entrypoint.sh
#. Next, we set a working directory, and set the location of the entrypoint. Exposing ports is not necessary for EOS, but its often useful to leave this line for quick reference and clarity. 5. Next, we set a working directory, and set the location of the entrypoint. Exposing ports is not necessary for EOS, but its often useful to leave this line for quick reference and clarity.
.. code:: docker .. code:: docker
@@ -183,7 +184,8 @@ In other words, the Dockerfile serves as a recipe for creating a Docker image, f
ENTRYPOINT ["/usr/local/bin/docker_entrypoint.sh"] ENTRYPOINT ["/usr/local/bin/docker_entrypoint.sh"]
#. That's it! Let's take a look at our final ``Dockerfile``: 6. **That's it!** Let's take a look at our final ``Dockerfile``:
.. code:: docker .. code:: docker
FROM arm64v8/alpine:3.12 FROM arm64v8/alpine:3.12
@@ -202,7 +204,7 @@ In other words, the Dockerfile serves as a recipe for creating a Docker image, f
ENTRYPOINT ["/usr/local/bin/docker_entrypoint.sh"] ENTRYPOINT ["/usr/local/bin/docker_entrypoint.sh"]
#. Finally, add the following code to the `docker_entrypoint.sh`: 7. Finally, add the following code to the ``docker_entrypoint.sh``:
.. code:: bash .. code:: bash
@@ -239,10 +241,10 @@ Let's create a yaml manifest file for our hello-world project:
touch manifest.yaml touch manifest.yaml
And populate it with the following example manifest: And populate it with the following example manifest (see the line comments for a description of each key and view the full :ref:`type specification here <service_manifest>`):
.. code:: yaml .. code:: yaml
# The package identifier used by the OS # The package identifier used by the OS
id: hello-world id: hello-world
# A human readable service title # A human readable service title
@@ -326,10 +328,10 @@ And populate it with the following example manifest:
entrypoint: compat entrypoint: compat
# Any arguments that need to be passed into the run command # Any arguments that need to be passed into the run command
args: args:
- config - config
- get - get
- /root - /root
- "/mnt/assets/config_spec.yaml" - "/mnt/assets/config_spec.yaml"
# The locations at which to mount the specified Docker images # The locations at which to mount the specified Docker images
mounts: mounts:
compat: /mnt/assets compat: /mnt/assets
@@ -343,11 +345,11 @@ And populate it with the following example manifest:
system: true system: true
entrypoint: compat entrypoint: compat
args: args:
- config - config
- set - set
- hello-world - hello-world
- /root - /root
- "/mnt/assets/config_rules.yaml" - "/mnt/assets/config_rules.yaml"
mounts: mounts:
compat: /mnt/assets compat: /mnt/assets
main: /root main: /root
@@ -399,8 +401,8 @@ And populate it with the following example manifest:
ui: true ui: true
# Denotes the protocol specifications used by this interface # Denotes the protocol specifications used by this interface
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
@@ -410,32 +412,37 @@ And populate it with the following example manifest:
# 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.
type: docker type: docker
# The docker image to use. In this case, a pre-loaded system image called compat
image: compat image: compat
# Required if the action uses a system image. The default value is false.
system: true system: true
# The executable to run the command to begin the backup create process
entrypoint: compat entrypoint: compat
# Arguments to pass into the entrypoint. In this example, the full command run will be: `compat duplicity hello-world /mnt/backup /root/data` # Arguments to pass into the entrypoint executable. In this example, the full command run will be: `compat duplicity hello-world /mnt/backup /root/data`
args: args:
- duplicity - duplicity
- hello-world - hello-world
- /mnt/backup - /mnt/backup
# For duplicity, the backup mount point needs to be something other than `/root`, so we default to `/root/data` # For duplicity, the backup mount point needs to be something other than `/root`, so we default to `/root/data`
- /root/data - /root/data
mounts: mounts:
# BACKUP is the default volume that is used for backups. This is whatever backup drive is mounted to the device, or a network filesystem. # BACKUP is the default volume that is used for backups. This is whatever backup drive is mounted to the device, or a network filesystem.
# The value here donates where the mount point will be. The backup drive is mounted to this location. # The value here donates where the mount point will be. The backup drive is mounted to this location.
BACKUP: "/mnt/backup" BACKUP: "/mnt/backup"
main: "/root" main: "/root"
# The action to execute the backup restore functionality. Details for the keys below are the same as above.
restore: restore:
type: docker type: docker
image: compat image: compat
system: true system: true
entrypoint: compat entrypoint: compat
args: args:
- duplicity - duplicity
- hello-world - hello-world
- /root/data - /root/data
- /mnt/backup - /mnt/backup
mounts: mounts:
BACKUP: "/mnt/backup" BACKUP: "/mnt/backup"
main: "/root" main: "/root"
@@ -448,7 +455,7 @@ And populate it with the following example manifest:
A warning message indicating and potential dangers associated with the action A warning message indicating and potential dangers associated with the action
# Indicates what state the service can be in while executing the action # Indicates what state the service can be in while executing the action
allowed-statuses: allowed-statuses:
- running - running
# Defines how the action is run # Defines how the action is run
implementation: implementation:
type: docker type: docker
@@ -460,7 +467,6 @@ And populate it with the following example manifest:
# Required - valid values are yaml, toml, json # Required - valid values are yaml, toml, json
io-format: json io-format: json
Instructions Instructions
============ ============
@@ -485,7 +491,7 @@ 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.
.. code:: bash .. code:: bash
@@ -496,7 +502,7 @@ Icon
Icons are displayed throughout the EmbassyUI to reference to your service. Icons are displayed throughout the EmbassyUI to reference to your service.
Simply add the icon file to the root of the project directory. The icon file can be named anything, but this must be specified in the `assets.icon` section of the Manifest. The default filename the SDk looks for when packaging the service assets is `icon.png`. Simply add the icon file to the root of the project directory. The icon file can be named anything, but this must be specified in the ``assets.icon`` section of the Manifest. The default filename the SDk looks for when packaging the service assets is ``icon.png``.
.. code:: bash .. code:: bash
@@ -505,9 +511,9 @@ Simply add the icon file to the root of the project directory. The icon file can
Package into s9pk Package into s9pk
================= =================
We now have all of the necessary components to package the service into the format needed for the OS. This format is a custom filetype with an extension of `.s9pk`, short for Start9 Package. We now have all of the necessary components to package the service into the format needed for the OS. This format is a custom filetype with an extension of ``.s9pk``, short for Start9 Package.
To package all components into an `.s9pk`, run the following command from the root of your project directory: To package all components into an ``.s9pk``, run the following command from the root of your project directory:
.. code:: bash .. code:: bash
@@ -521,7 +527,7 @@ Let's also make sure to verify the validity of the package:
If anything goes wrong, an error message will indicate the missing component or other failure. If anything goes wrong, an error message will indicate the missing component or other failure.
That's it! **That's it!**
Wrapper Repo Wrapper Repo
============ ============
@@ -542,13 +548,13 @@ If you want to proceed from scratch, follow these steps:
cd hello-world-wrapper cd hello-world-wrapper
3. Include the `hello-world` project in the wrapper repo. It can either be included directly, or it can be hosted separately. If it is hosted separately, it should be included as a `git submodule <https://git-scm.com/book/en/v2/Git-Tools-Submodules>`_ within the wrapper repository: 3. Include the ``hello-world`` project in the wrapper repo. It can either be included directly, or it can be hosted separately. If it is hosted separately, it should be included as a `git submodule <https://git-scm.com/book/en/v2/Git-Tools-Submodules>`_ within the wrapper repository:
.. code:: bash .. code:: bash
git submodule add <link_to_source_project> git submodule add <link_to_source_project>
4. Edit the `.gitignore` file to include the `.s9pk` file and `image.tar` bundle. This will exclude these files from being published remotely, as they can be large or binary representations. 4. Edit the ``.gitignore`` file to include the ``.s9pk`` file and ``image.tar`` bundle. This will exclude these files from being published remotely, as they can be large or binary representations.
.. code:: bash .. code:: bash
@@ -593,7 +599,7 @@ For convenience and repeatability, let's combine all of these commands into a Ma
touch Makefile touch Makefile
1. Add the build rule with the target executable as the key, including a list of dependencies needed to build the target file. In this case, the `hello-world` binary compiled for aarch is the target, and the dependencies are the hello-world source files needed to compile this binary: 1. Add the build rule with the target executable as the key, including a list of dependencies needed to build the target file. In this case, the ``hello-world`` binary compiled for aarch is the target, and the dependencies are the hello-world source files needed to compile this binary:
.. code:: bash .. code:: bash
@@ -609,7 +615,7 @@ For convenience and repeatability, let's combine all of these commands into a Ma
image.tar: Dockerfile docker_entrypoint.sh hello-world/target/aarch64-unknown-linux-musl/release/hello-world image.tar: Dockerfile docker_entrypoint.sh hello-world/target/aarch64-unknown-linux-musl/release/hello-world
DOCKER_CLI_EXPERIMENTAL=enabled docker buildx build --tag start9/hello-world/main:$(VERSION) --platform=linux/arm64 -o type=docker,dest=image.tar . DOCKER_CLI_EXPERIMENTAL=enabled docker buildx build --tag start9/hello-world/main:$(VERSION) --platform=linux/arm64 -o type=docker,dest=image.tar .
3. Next, add the step for building the `s9pk` package, with the `hello-world.s9pk` as the target, and all the component files as the dependencies: 3. Next, add the step for building the ``s9pk`` package, with the ``hello-world.s9p`k` as the target, and all the component files as the dependencies:
.. code:: bash .. code:: bash
@@ -635,15 +641,15 @@ For convenience and repeatability, let's combine all of these commands into a Ma
rm -f image.tar rm -f image.tar
rm -f hello-world.s9pk rm -f hello-world.s9pk
6. Finally, add the `all` make target. 6. Finally, add the ``all`` make target.
.. code:: bash .. code:: bash
all: verify all: verify
This serves as the entrypoint to build multiple targets, which we have in this case. When the `make` command is invoked here, it looks for the "verify" target. Since the "verify" target depends on the "hello-world.s9pk" target, make then runs this target. It continues down this graph until the first target and its dependencies are satisfied, then works its way back up. The final output of this Makefile is the `image.tar` and `hello-world.s9pk` files. This serves as the entrypoint to build multiple targets, which we have in this case. When the ``make`` command is invoked here, it looks for the "verify" target. Since the "verify" target depends on the "hello-world.s9pk" target, make then runs this target. It continues down this graph until the first target and its dependencies are satisfied, then works its way back up. The final output of this Makefile is the ``image.tar`` and ``hello-world.s9pk`` files.
That's it! Our completed Makefile looks like this: **That's it!** Our completed Makefile looks like this:
.. code:: make .. code:: make
@@ -697,7 +703,7 @@ Now that we have a process for iterating on producing a valid package for Embass
#. Click on + Add new key #. Click on + Add new key
#. Paste pubkey from clipboard #. Paste pubkey from clipboard
3. Copy the `hello-world.s9pk` to the Embassy device: 3. Copy the ``hello-world.s9pk`` to the Embassy device:
.. code:: bash .. code:: bash
@@ -719,7 +725,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

@@ -8,11 +8,11 @@ Below are links to working examples of more advanced configurations for current
TODO update links when merged to master TODO update links when merged to master
- Detailed `docker_entrypoint.sh` - `filebrowser-wrapper <https://github.com/Start9Labs/filebrowser-wrapper/blob/master/docker_entrypoint.sh>`_ - Detailed `docker_entrypoint.sh` - `Filebrowser <https://github.com/Start9Labs/filebrowser-wrapper/blob/master/docker_entrypoint.sh>`_
- Optional dependencies - `btcpayserver <>`_ - Optional dependencies - `BTCPay Server <https://github.com/Start9Labs/btcpayserver-wrapper/blob/master/assets/compat/dependencies.yaml>`_
- Config spec - `btcpayserver <>`_ - Config spec - `BTCPay Server <https://github.com/Start9Labs/btcpayserver-wrapper/blob/master/assets/compat/config_spec.yaml>`_
- Config rules - `btcpayserver <>`_ - Config rules - `BTC RPC Proxy <https://github.com/Start9Labs/btc-rpc-proxy-wrapper/blob/master/assets/compat/config_rules.yaml>`_
- Multiple dependencies - `btcpayserver <>`_ - Multiple dependencies - `BTCPay Server <https://github.com/Start9Labs/btcpayserver-wrapper/blob/master/manifest.yaml#L172-L187>`_
- Actions - `btcpayserver <>`_ - Actions - `BTCPay Server <https://github.com/Start9Labs/btcpayserver-wrapper/blob/master/actions/btcpay-admin.sh>`_
- Health checks - `btcpayserver <>`_ - Health checks - `BTCPay Server <https://github.com/Start9Labs/btcpayserver-wrapper/blob/master/assets/utils/health_check.sh>`_
- Alerts - `lnd <https://github.com/Start9Labs/lnd-wrapper/blob/87daf4e5ed7231e22aaa28be533e794f67f98289/manifest.yaml#L30>`_ - Alerts - `BTCPay Server <https://github.com/Start9Labs/btcpayserver-wrapper/blob/master/manifest.yaml#L207-L218>`_

View File

@@ -15,7 +15,7 @@ Of course, there are additional recommendations that would streamline your devel
Code Editor Code Editor
=========== ===========
A code editor is recommended since you will, after all, be writing code! We are fans of`Visual Studio Code <https://code.visualstudio.com/>`_ . Visual Studio Code is a free, batteries-included text editor made by Microsoft. A code editor is recommended since you will, after all, be writing code! We are fans of `Visual Studio Code <https://code.visualstudio.com/>`_ . Visual Studio Code is a free, batteries-included text editor made by Microsoft.
Terminal / CLI Terminal / CLI
============== ==============
@@ -81,7 +81,7 @@ 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. ... TODO add more 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. ... TODO add more
You can acquire EmbassyOS by :ref:`Purchase <purchasing>` or following the :ref:`DIY guide <diy>`. You can acquire EmbassyOS by :ref:`purchasing <purchasing>` or following the :ref:`DIY guide <diy>`.
.. _quick-start: .. _quick-start:
Quick Start Environment Setup Quick Start Environment Setup
@@ -89,5 +89,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

@@ -26,7 +26,7 @@ Packaging
Testing: Testing:
-------- --------
1. Sideload s9pk onto an Embassy 1. Sideload ``<package-id>.s9pk`` onto an Embassy
2. Install package using embassy-cli 2. Install package using embassy-cli
3. Start package using embassy-cli, or in the UI 3. Start package using embassy-cli, or in the UI
4. Check logs to see if errors 4. Check logs to see if errors

View File

@@ -22,7 +22,7 @@ Service Packaging Overview
.. topic-box:: .. topic-box::
:title: Getting Started :title: Getting Started
:link: packaging-getting-started :link: getting-started
:icon: scylla-icon scylla-icon--nsql-guides :icon: scylla-icon scylla-icon--nsql-guides
:class: large-4 :class: large-4
:anchor: View :anchor: View
@@ -40,7 +40,7 @@ Service Packaging Overview
.. topic-box:: .. topic-box::
:title: Packaging Quick Start :title: Packaging Quick Start
:link: packaging-quick-start :link: getting-started/quick-start
:icon: scylla-icon scylla-icon--roadmap :icon: scylla-icon scylla-icon--roadmap
:class: large-4 :class: large-4
:anchor: Begin :anchor: Begin
@@ -49,7 +49,7 @@ Service Packaging Overview
.. topic-box:: .. topic-box::
:title: SDK :title: SDK
:link: sdk :link: getting-started/sdk
:icon: scylla-icon scylla-icon--apps :icon: scylla-icon scylla-icon--apps
:class: large-4 :class: large-4
:anchor: View :anchor: View
@@ -58,7 +58,7 @@ Service Packaging Overview
.. topic-box:: .. topic-box::
:title: Full Specification :title: Full Specification
:link: packaging-specification :link: specification
:icon: scylla-icon scylla-icon--glossary :icon: scylla-icon scylla-icon--glossary
:class: large-4 :class: large-4
:anchor: View :anchor: View
@@ -67,7 +67,7 @@ Service Packaging Overview
.. topic-box:: .. topic-box::
:title: Advanced Guides :title: Advanced Guides
:link: advanced/index :link: advanced
:icon: scylla-icon scylla-icon--integrations :icon: scylla-icon scylla-icon--integrations
:class: large-4 :class: large-4
:anchor: View :anchor: View
@@ -86,4 +86,4 @@ Service Packaging Overview
getting-started/index getting-started/index
build-package-example/index build-package-example/index
specification/index specification/index
advanced/index advanced/index

View File

@@ -0,0 +1,7 @@
.. _emver:
====================
EmbassyOS Versioning
====================
TODO

View File

@@ -12,6 +12,7 @@ The following guides provide an in depth overview of the full capabilities avail
overview overview
wrapper wrapper
manifest manifest
emver
docker docker
makefile makefile
config config

View File

@@ -9,11 +9,13 @@ Answers to Frequently Asked Questions from Embassy users
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
faq-general
faq-030 faq-030
faq-troubleshooting
faq-basic-use faq-basic-use
faq-embassy
faq-services
faq-bitcoin faq-bitcoin
faq-contributing
faq-embassy
faq-general
faq-lightning faq-lightning
faq-services
faq-service-packaging
faq-troubleshooting

View File

@@ -15,7 +15,7 @@ Support
.. topic-box:: .. topic-box::
:title: User Manual :title: User Manual
:link: user-manual :link: user-manual
:icon: scylla-icon scylla-icon--knowledge-base :icon: scylla-icon scylla-icon--docs
:class: large-4 :class: large-4
:anchor: View :anchor: View
@@ -31,13 +31,13 @@ Support
Answers to Frequently Asked Questions from Embassy users Answers to Frequently Asked Questions from Embassy users
.. topic-box:: .. topic-box::
:title: Developer Documentation :title: Service Packaging
:link: dev-docs :link: ../service-packaging
:icon: scylla-icon scylla-icon--open-source :icon: scylla-icon scylla-icon--open-source
:class: large-4 :class: large-4
:anchor: Build :anchor: Build
Tools and guides for developers Tools and guides for service packagers
.. topic-box:: .. topic-box::
:title: Community Channels :title: Community Channels
@@ -58,5 +58,4 @@ Support
:hidden: :hidden:
user-manual/index user-manual/index
faq/index faq/index
dev-docs/index