diff --git a/source/contributing/index.rst b/source/contributing/index.rst new file mode 100644 index 0000000..7168a4c --- /dev/null +++ b/source/contributing/index.rst @@ -0,0 +1,33 @@ +.. _service_sdk: + +*********************** +Service Packaging Guide +*********************** + +This technical guide covers the necessary steps to package up a service for deployment to the EmbassyOS platform. To start, you will need to acquire :ref:`EmbassyOS ` for testing the packaged service. + +While you are waiting to assemble a device, you can begin the process of building your project in the format necessary to run on the Embassy. The sections below outline these steps in detail. + +For reference, the `Hello world `_ repository should be used as an example. A project template can be cloned using the "Use this template" button in GitHub. + +.. toctree:: + :maxdepth: 2 + + Overview + Wrapper + Docker + Makefile + Manifest + Config + Properties + Docs + +Submission process +------------------ + +When you have built and tested your project for EmbassyOS, please send us a submission with the project repository to ``dev@start9labs.com``. Reach out with questions in the Matrix community `dev channel `_. + +.. role:: raw-html(raw) + :format: html + +:raw-html:`
` \ No newline at end of file diff --git a/source/contributing/services/config.rst b/source/contributing/services/config.rst index 1992909..674a25a 100644 --- a/source/contributing/services/config.rst +++ b/source/contributing/services/config.rst @@ -570,4 +570,9 @@ SetVariant Examples: .. code:: yaml - rule: 'rpc.enable? OR !(''advanced.pruning.mode = "manual")' - description: "RPC must be enabled for manual pruning." \ No newline at end of file + description: "RPC must be enabled for manual pruning." + +.. role:: raw-html(raw) + :format: html + +:raw-html:`
` \ No newline at end of file diff --git a/source/contributing/services/docker.rst b/source/contributing/services/docker.rst index 9f3ad13..2516f47 100644 --- a/source/contributing/services/docker.rst +++ b/source/contributing/services/docker.rst @@ -26,4 +26,9 @@ File specified as: ``docker_entrypoint.sh`` This file defines what to do when the service application starts. -It consists of a bash script that completes any environment setup (eg. creating folder substructure), sets any environment variables, and executes the run command. The only required feature of this file is to execute the run commands on EmbassyOS. \ No newline at end of file +It consists of a bash script that completes any environment setup (eg. creating folder substructure), sets any environment variables, and executes the run command. The only required feature of this file is to execute the run commands on EmbassyOS. + +.. role:: raw-html(raw) + :format: html + +:raw-html:`
` \ No newline at end of file diff --git a/source/contributing/services/docs.rst b/source/contributing/services/docs.rst index 251a0c2..73ac922 100644 --- a/source/contributing/services/docs.rst +++ b/source/contributing/services/docs.rst @@ -10,4 +10,9 @@ If an ``instructions.md`` file is included, this markdown formatted file will be .. figure:: /_static/images/service/bitcoin_instructions.png :width: 80% - :alt: Bitcoin Instructions \ No newline at end of file + :alt: Bitcoin Instructions + +.. role:: raw-html(raw) + :format: html + +:raw-html:`
` \ No newline at end of file diff --git a/source/contributing/services/makefile.rst b/source/contributing/services/makefile.rst index 0c5ed6e..dd93ec4 100644 --- a/source/contributing/services/makefile.rst +++ b/source/contributing/services/makefile.rst @@ -15,4 +15,9 @@ This purpose of this file is to: - Read the docker container and build the project - Build all prerequisite for running the docker file - Build all dependencies -- Package ``config.yaml``, ``manifest.yaml``, and ``image.tar`` into an ``.s9pk`` extension by invoke ``appmgr``. \ No newline at end of file +- Package ``config.yaml``, ``manifest.yaml``, and ``image.tar`` into an ``.s9pk`` extension by invoke ``appmgr``. + +.. role:: raw-html(raw) + :format: html + +:raw-html:`
` \ No newline at end of file diff --git a/source/contributing/services/manifest.rst b/source/contributing/services/manifest.rst index a01d126..b96cea2 100644 --- a/source/contributing/services/manifest.rst +++ b/source/contributing/services/manifest.rst @@ -339,3 +339,8 @@ Cups dst: "." overwrite: true hidden-service-version: v3 + +.. role:: raw-html(raw) + :format: html + +:raw-html:`
` \ No newline at end of file diff --git a/source/contributing/services/overview.rst b/source/contributing/services/overview.rst index c9fa7eb..6babbd2 100644 --- a/source/contributing/services/overview.rst +++ b/source/contributing/services/overview.rst @@ -41,3 +41,8 @@ Recommended Dependencies `make `_ `musl `_ + +.. role:: raw-html(raw) + :format: html + +:raw-html:`
` \ No newline at end of file diff --git a/source/contributing/services/properties.rst b/source/contributing/services/properties.rst index 3e8a460..e046595 100644 --- a/source/contributing/services/properties.rst +++ b/source/contributing/services/properties.rst @@ -12,4 +12,11 @@ The output of this step is a file titled ``stats.yaml``. This file contains a ma Service Properties Tab -Due to the fact that config variables are only available when the service is running, this file can only be populated at runtime. In services Start9 has wrapped or created, we typically handle this in ``configurator/src/main.rs``. This file is essentially a script that acquires the necessary values at runtime from config (eg. ``/root/.lnd/start9/config.yaml``), and dynamically populating them to the ``stats.yaml`` file, marking each value with the appropriate keys for UI display (ie. masked or copyable). Running the configurator is typically included in the ``docker_entrypoint.sh`` file. \ No newline at end of file +Due to the fact that config variables are only available when the service is running, this file can only be populated at runtime. In services Start9 has wrapped or created, we typically handle this in ``configurator/src/main.rs``. This file is essentially a script that acquires the necessary values at runtime from config (eg. ``/root/.lnd/start9/config.yaml``), and dynamically populating them to the ``stats.yaml`` file, marking each value with the appropriate keys for UI display (ie. masked or copyable). Running the configurator is typically included in the ``docker_entrypoint.sh`` file. + +A good example of the a configurator producing the ``stats.yaml`` file can be found `here `_. + +.. role:: raw-html(raw) + :format: html + +:raw-html:`
` \ No newline at end of file diff --git a/source/contributing/services/wrapper.rst b/source/contributing/services/wrapper.rst index 3ae297b..c98a5c8 100644 --- a/source/contributing/services/wrapper.rst +++ b/source/contributing/services/wrapper.rst @@ -53,3 +53,8 @@ Assets Whenever a service is stopped, any file that is not contained within in the ``/assets`` directory will be cleared from memory. Any unsaved changes will be reverted. This folder acts as a persistance storage container. In this folder belongs any assets that are unique configurations to your service. For instance, bitcoind's ``.conf`` file is saved here. + +.. role:: raw-html(raw) + :format: html + +:raw-html:`
` \ No newline at end of file