An open API service indexing awesome lists of open source software.

https://github.com/ddev/addon-registry

A registry for DDEV add-ons where users can discover, explore, and leave comments on available add-ons.
https://github.com/ddev/addon-registry

Last synced: 3 months ago
JSON representation

A registry for DDEV add-ons where users can discover, explore, and leave comments on available add-ons.

Awesome Lists containing this project

README

          

[![Deploy to GitHub Pages](https://github.com/ddev/addon-registry/actions/workflows/deploy-to-github-pages.yml/badge.svg)](https://ddev.github.io/addon-registry/)

# DDEV Add-on Registry

A registry of DDEV add-ons where users can discover, explore, and leave comments on available add-ons.

See [DDEV Add-on Registry Introduction](https://ddev.com/blog/ddev-addon-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](https://github.com/stasadev) looked to the simplicity and functionality of projects like [GTFOBins](https://gtfobins.github.io/), which is built with Jekyll.

## Used Tools

Here are the key tools used to build the DDEV Add-on Registry:

- [GitHub Pages and Jekyll](https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll/about-github-pages-and-jekyll): Jekyll powers the static site, while GitHub Pages hosts it.
- [List.js](https://listjs.com/): For sorting and searching add-on entries.
- Add-on comments: [giscus integration](https://github.com/ddev/giscus-comments).
- Golang: Used to aggregate add-on data into Markdown files, which are transformed into Liquid templates for Jekyll.

## How to Set Up the Registry Locally

Getting started with the DDEV Add-on Registry locally is straightforward. Here's how:

1. Clone the repository:
2. Run `ddev start` to spin up the environment
3. Then, launch it by running `ddev launch :4000`
4. To blacklist an add-on, add it to the `blacklist` array in `go/main.go` at the top of the file. The changes will take effect after `git push`
5. To update add-ons manually (not required, as it's automated using GitHub Actions):
```bash
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.

## Key Components and Structure

Here's a breakdown of where important content and configuration files live:

- **`.bundle`**: Contains config for local bundler.
- **`.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 of `composer.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.