Each service is bound with a wrapper repository, which contains everything you need to build a service.

The purpose of this repo is:

  • To define the necessary Manifest and configuration options (ie. config spec and rules)

  • To build the project into the .s9pk format digestible to StartOS

  • Link to the source project as a git submodule

  • Define the Dockerfile for running the project on StartOS

  • Provide documentation for the project, especially user runbook instructions

File Structure

The project structure should be used as a model:

├── Dockerfile
├── Makefile
├── assets
│   └── compat
│       ├── config_rules.yaml
│       └── config_spec.yaml
├── <submodule-project>
├── <package-id>>.s9pk
├── icon.png
├── image.tar
└── manifest.yaml


Git submodules allow use of another project while in the working project directory. Setting up this feature enables linking of the source service repository so that its context is available. The submodule is added into the wrapper so that the wrapper can build the submodule and also track the exact code that’s being built.


git submodule add <link_to_source_project>