Files
registry/README.md
Lucy e1fbac315b Updates/pkg hardware (#137)
* add ability to specify package architectures for publish script, as well as deindex them

* implement and adjust filtering for package hardware requirements; adjust for legacy and new query params paths

* augment test manifest and fix ram query

* fixes

* fix ram for other routes

* rework filtering logic to eliminate hack db call

* fix hanging issue and other dataset consistency issues

* adjust arch param

* cleanup

* fix package manifest parsing

* make index package arches optional

* rename from embassy-sdk to start-sdk and embassy-publish to registr-publish

* fix ram comparison

* increase upload timeout

* fix serialization and deserialization of devices jsonb database field

* cleanup

* another deserialization fix

* revert change; better error message and test case

* fix jsonb serialization freal

* cleanup

* fix jsonb deserialization

* fix lookup of device value

* parse empty device object as null
2023-08-07 13:18:50 -04:00

62 lines
2.3 KiB
Markdown

# Start9 Registry/Publish
This codebase is the reference implementation of the marketplace protocol. These steps assume you are running Linux (or macOS).
## Getting Started
### Installing Haskell
- Go get [GHCup](https://www.haskell.org/ghcup/)
- select default options
- restart your session (terminal or OS)
- run `ghcup tui`
- select the latest `Stack` and install with `i`
### Build the Registry
- `apt install libpq-dev` (on macOS - `brew install libpq`)
- run `apt install postgresql` (on macOS - `brew install postgres`)
- clone and cd into the registry
```
git clone git@github.com:Start9Labs/registry.git
cd registry
```
- run `make`
### Set up registry-publish tool
- run `apt install libgmp-dev zlib1g-dev libtinfo-dev libpq-dev` (on macOS `brew install libmpd zlib-ng libtiff`)
- run `stack install` (recommended: include the installation path in your $PATH after running this command)
- update your shell to include the installation path of the copied executables from `stack install`. i.e. `nano ~./zshrc` add `export PATH=$PATH:/your/path/here` to zshrc; save and exit nano. Run `source ~/.zshrc`
- run `registry-publish init --bash` (or --zsh / --fish depending on your preferred shell)
- run `registry-publish reg add -l <URL> -n <NAME> -u <USER> -p <PASS>` (include https:// in your URL)
- take the hash that is emitted by this command and submit it to the registry owner
### Setting up a registry dev environment
- set up a local database in postgresql
- set the PG_DATABASE environment variable to that database
- set PG_USER to the owner of that database
- set PG_PASSWORD to the password for that user
- set SSL_AUTO to false
- set RESOURCES_PATH to an empty directory you wish to use as your package repository
- install `start-sdk`
- set STATIC_BIN to the path that contains `start-sdk`
## APIs
### EOS
This API is exclusive to Start9, we do not publish this as part of the standard Marketplace protocol because Start9 does
not intend for other organizations to host prebuilt OS binaries per the Non Commercial License
### Package
This API is a public API that can be implemented by any marketplace. This is how information about available packages
and their relationships is queried by EOS.
### Admin
This API is how we upload new packages to the marketplace. It requires authentication and is not intended to be implemented
by other marketplaces