solr-cool.github.io

solr-cool.github.io

The Solr Package Directory and Sanctuary

This repo holds the content for the solr.cool website and Solr Package repository.

Building

The website is built using Jekyll and hosted on Github Pages. Use the official Docker image to fire up a local Jekyll instance and point your browser to localhost:4000.

docker run --rm \
     --volume="$PWD:/srv/jekyll" \
     -p "4000:4000" \
     -it jekyll/jekyll:3.8 \
     jekyll serve --watch

Structure of package meta data

Solr package information and scraped meta data is checked in into the Jekyll _data folder in this repo:

  • _data/packages – basic package information (manually curated)
  • _data/details (generated) – scraped repository information of each package
  • _data/releases (generated) – scraped release version information of each package

Updating scraped package meta data

☝️ The update process is triggered by Travis CI on a daily basis.

To update package repository, release and version information, run the build.sh script. For each package it will:

  1. collect repository meta data from Github
  2. collect release information from Github
  3. collect build status information from Github (if applicable)
  4. compile a Solr package manager inventory file
  5. download and sign the release JARs
  6. test installation and deinstallation of the package in a vanilla Solr installation

To run the build.sh locally, you need a personal Github access token and a public/private key pair:

export GH_USER=<your-github-username>
export GH_ACCESS_TOKEN=<your-github-access-token>
openssl genrsa -out solr.cool.pem 4096
openssl rsa -in solr.cool.pem -pubout -outform DER -out publickey.der

Adding content

💡 You are very welcome to add your Solr package to solr.cool. We are open to both FOSS and commercially licensed packages.

Please read the contributing guidelines how to add your package to the repository. It's pretty easy, I swear!

Deployment

Push to master on Github. Done.

License

This project is licensed under the Apache License, Version 2.