A registry for DDEV add-ons where users can discover, explore, and leave comments on available add-ons.
See DDEV Add-on Registry Introduction.
While ddev add-on list
is a fantastic tool, it only scratches the surface when it comes to discovering and exploring add-ons.
The need for a dedicated registry became clear as we sought to streamline access to add-ons, reduce API limitations, and lessen the maintenance burden.
For inspiration, @stasadev looked to the simplicity and functionality of projects like GTFOBins, which is built with Jekyll.
Here are the key tools used to build the DDEV Add-on Registry:
- GitHub Pages and Jekyll: Jekyll powers the static site, while GitHub Pages hosts it.
- DataTables: For sorting and searching add-on entries.
- Add-on comments: giscus integration.
- Golang: Used to aggregate add-on data into Markdown files, which are transformed into Liquid templates for Jekyll.
Getting started with the DDEV Add-on Registry locally is straightforward. Here's how:
- Clone the repository: https://github.com/ddev/addon-registry
- Run
ddev start
to spin up the environment - Then, launch it by running
ddev launch :4000
- To update add-ons manually:
export DDEV_ADDON_REGISTRY_TOKEN=your-classic-github-token-no-privileges cd go go mod vendor go run main.go
You'll now be able to explore the add-ons within the registry right on your local machine.
Here's a breakdown of where important content and configuration files live:
.bundle
: A script for installing Jekyll dependencies..ddev
: The DDEV configuration directory..github
: The GitHub workflows that handle the deployment process._addons
: Custom Jekyll collection that holds all the add-ons fetched from the community._data
: User-defined Jekyll data types._includes
: HTML partials used across the site._layouts
: The layout templates for Jekyll pages._pages
: Jekyll pages overrides.assets
: Contains styles and static assets.go
: The Golang app that collects add-on data and populates_addons
.Gemfile
: The Ruby equivalent ofcomposer.json
, managing dependencies._config.yml
: The main configuration file for the Jekyll site.addons.json
: A JSON representation of all the DDEV add-ons.index.html
: The homepage of the registry.