mirror of
https://github.com/Start9Labs/registry.git
synced 2026-03-26 02:11:53 +00:00
6df87e9873ba038a837abaee1c868a462ba51c48
* add marketplace icon to info response * fix max eos version available logic; toggle migrations * only send icon if it exists * increase upload timeout * persist eos version and arch for user activity * filter eos versions available based on arch * remove registry icon * remove eos upload from publish script * filter package index response by arch * remove arch from version record in favor of join table * allow previous user activity records to contain null values * make arch optional for backwards compatability * make arch optional for backwards compatability on version latest endpoint * not ideal but functional solution for backwards compatible arch filter * insert version platform when index on publish upload * add migration for dropping arch from package version table * upsert all version platform records * insert user activity even if version and arch do not exist * increase http timeout to 10 minutes jic * remove user metrics from latest endpoint
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
- select default options
- restart your session (terminal or OS)
- run
ghcup tui - select the latest
Stackand install withi
Build the Registry
apt install libpq-dev(on macOS -brew install libpq)- run
apt install postgresql(on macOS -brew install postgres) - run
make
Set up embassy-publish tool
- run
apt install libgmp-dev zlib1g-dev libtinfo-dev(on macOSbrew install libmpd zlib-ng libtiff) - run
stack install(recommended: include the installation path in your $PATH after running this command) - run
embassy-publish init --bash(or --zsh / --fish depending on your preferred shell) - run
embassy-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
embassy-sdk - set STATIC_BIN to the path that contains
embassy-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
Languages
Haskell
99.8%
Makefile
0.2%