Skip to content

About

HTTP server for the emporium extension marketplace

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

21 Commits

Folders and files

Repository files navigation

shopkeep

Crates.io Documentation License

HTTP server for the emporium extension marketplace

Quick Start

cargo install shopkeep
shopkeep --registry-path ./extensions

The server starts on http://0.0.0.0:8080 by default.

Configuration

Configuration can be provided via file, environment variables, or CLI arguments (in order of precedence).

CLI arguments:

shopkeep --bind 127.0.0.1 --port 3000 --registry-path /path/to/extensions

Environment variables:

export SHOPKEEP_BIND=127.0.0.1
export SHOPKEEP_PORT=3000
export SHOPKEEP_REGISTRY_PATH=/path/to/extensions

Config file (shopkeep.toml):

bind = "127.0.0.1"
port = 3000

[registry]
type = "filesystem"
path = "/path/to/extensions"

API Endpoints

Method Endpoint Description
GET /health Health check
GET /api/v1/extensions List extensions (supports ?q=, ?category=, ?page=, ?per_page=)
GET /api/v1/extensions/{id} Get extension details
GET /api/v1/extensions/{id}/versions List available versions
GET /api/v1/extensions/{id}/versions/{version} Get version metadata
GET /api/v1/extensions/{id}/versions/{version}/download Download extension package
GET /api/v1/extensions/{id}/latest/download Download latest version

Registry Structure

Extensions are stored as .tar.gz packages with the following structure:

registry/
├── my-extension/
│   ├── 0.1.0.tar.gz
│   ├── 0.2.0.tar.gz
│   └── manifest.toml
└── another-extension/
    ├── 1.0.0.tar.gz
    └── manifest.toml

License

MIT

About

HTTP server for the emporium extension marketplace

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages