mirror of
https://github.com/Start9Labs/registry.git
synced 2026-03-26 10:21:51 +00:00
* 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
62 lines
2.3 KiB
Markdown
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
|