Socket
Book a DemoInstallSign in
Socket

@tryghost/algolia-netlify

Package Overview
Dependencies
Maintainers
28
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tryghost/algolia-netlify

[Netlify Functions](https://www.netlify.com/products/functions/) to listen to [Ghost Webhooks](https://ghost.org/docs/api/webhooks/) on post changes and update defined [Algolia](https://www.algolia.com/) search index.

latest
Source
npmnpm
Version
0.3.4
Version published
Maintainers
28
Created
Source

Algolia Netlify

Netlify Functions to listen to Ghost Webhooks on post changes and update defined Algolia search index.

Usage

Set up Algolia

First step is to grab the API keys and Application ID from Algolia. For the setup we need both, the "Search-Only API Key" as well as the "Admin API Key".

The Admin API Key can either be the general one, or can be created just for this specific search index.

If you decide to create a new API key, you want to make sure that the generated key has the following authorizations on your index:

  • Search (search)
  • Add records (addObject)
  • Delete records (deleteObject)
  • List indexes (listIndexes)
  • Delete index (deleteIndex)

Set up Netlify Functions

The Ghost Algolia tooling uses Ghost Webhooks to index and update posts. The scripts that receive and process the webhooks are hosted by Netlify Functions:

  • Deploy to Netlify by clicking on this button: Deploy to Netlify
  • Click 'Connect to Github' and give Netlify permission
  • Configure your site
    • Choose a repository name
    • Set 'TRUE' to trigger indexing
    • Algolia Application ID
    • The Algolia Admin API key or and API key with the permissions as described above
    • The name of the index you want to use
    • Set the NETLIFY_KEY to be used with the target URL

Set up Ghost Webhooks

Ghost webhooks will initiate posts to be indexed to Algolia. This can be a new entry, an update, or a removal. On Ghost's admin panel, create a new Custom Integration (Ghost Admin → Settings → Integrations → Custom Integrations) and the following webhooks:

These webhooks will trigger an index on every future change of posts.

To run an initial index of all the content, you can use the handy CLI from our Ghost Algolia tooling. Head over here and follow the instructions from there.

Security

To avoid unauthorized access to the Netlify functions endpoints, we highly recommend to setup the NETLIFY_KEY variable. This key is currently optional but will be enforced in the future.

Develop

This is a mono repository, managed with lerna.

Follow the instructions for the top-level repo.

  • git clone this repo & cd into it as usual
  • Run yarn to install top-level dependencies.

To run this package locally, you will need to copy the existing .env.example file to .env and fill it with the correct keys.

By running

  • yarn serve

you will create a server on localhost:9000 where your functions will be exposed to listen to (e. g. http://localhost:9000/.netlify/functions/post-unpublished), so you can use them in your local Ghost instance as Webhook target URL.

Test

  • yarn lint run just eslint
  • yarn test run lint and tests

Copyright (c) 2013-2023 Ghost Foundation - Released under the MIT license.

FAQs

Package last updated on 24 Oct 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts