Central registry for semrel plugins — a Go-based REST API that stores, validates, and serves plugin metadata.
- semrel — the core release tool
- semrel-plugins — official plugin catalog
- semrel-docs — documentation site
The registry is the canonical source for published semrel plugins.
- Plugin authors publish versioned GitHub Releases in their own repositories.
- A
repository_dispatchwebhook notifies the registry (POST /api/v1/webhooks/release). - The registry validates metadata, stores plugin and version records, and updates
plugins.json. - Consumers fetch the index via
GET /plugins.jsonor browse individual plugins via the REST API. - The
semrelCLI respectsSEMREL_REGISTRY_URLto discover plugins from a custom registry.
See the registry API docs for the full endpoint reference.
See the contributing guide for contribution rules and review expectations.
api/- Go web service skeleton for the upcoming dynamic registry backendschemas/- JSON schemas for registry payloadsdocs/- contributor, API, and publishing documentationweb/- Astro-based landing page and documentation forregistry.semrel.io.github/workflows/- automation for validation, synchronization, and web deploymentplugins.json- generated registry index served via GitHub Pages
The simplest way to run the registry locally is with the file storage backend — no Postgres required.
cp .env.example .env # set JWT_SECRET and ADMIN_TOKEN
docker compose -f docker-compose.file.yml up -dThe registry stores all plugin data as JSON files in a named Docker volume (registry_data).
This is ideal for self-hosting with small to medium plugin catalogues.
Choose PostgreSQL when you need full-text search, concurrent writes, or plan to host more than ~10 000 plugins.
cd web
npm install
npm run devThe Astro site runs on http://localhost:3000, builds static files into web/dist, and mirrors the repository root plugins.json into web/public/plugins.json during install/build.