diff --git a/README.md b/README.md index 56e2bf4..f662430 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,54 @@ -# kiosks.adrianshort.org -Static site generator for website to track BT InLink kiosks planning appilcations. Output is adrianshort/kiosks-public +# [kiosks.adrianshort.org](https://kiosks.adrianshort.org/) -## How to build this site +Static site generator for website to track BT InLink kiosks planning applications. -1. Clone this repo to your local machine and go into its directory. +## How to build this site locally + +### Setup - do this only once + +1. `$ git clone git@github.com:adrianshort/kiosks.git && cd kiosks` 2. `$ bundle install` 3. [Sign in to Morph](https://morph.io/users/auth/github) with your GitHub account. -4. Download the SQLite database from the [InLink scraper on Morph](https://morph.io/adrianshort/inlink-scraper) and save it in your project's root directory. It should be named `data.sqlite`. -5. `$ bundle exec bin/petrify` -6. The built site is now in the `_site` directory. Deploy it as a static site wherever you like, eg [Netlify](https://www.netlify.com/). +4. Go to your Settings page: https://morph.io/owners/YOUR-USERNAME/settings and copy your secret API key. +5. `$ export MORPH_API_KEY=123456abcdef` (use the actual key value given) + +Add the `MORPH_API_KEY` to your `.profile` or `.bash_profile` file or similar as required so it's available for every shell session. + +### Build - do this every time + +1. `$ bundle exec bin/download` - gets the latest data from the scraper's API +2. `$ bundle exec bin/petrify` - builds the static site + +The built site is now in the `_site` directory. + +If you've got build/deploy to Netlify set up (see below), use `[skip ci]` in your commit messages to avoid triggering a build every time you `git push`. + +## How to build and deploy this site on Netlify + +Use Morph to send a webhook HTTP POST request to [Netlify](https://www.netlify.com/), triggering Netlify to build and deploy the site using the latest version of the data. + +### Basic setup + +1. Sign in to Netlify. +2. Click `New site from Git` +3. Connect your GitHub account. +4. Choose the `adrianshort/kiosks` repo to deploy, or your own fork of it. +5. Use these settings: Branch to deploy: `master`, build command: `bundle exec bin/download && bundle exec bin/petrify`, publish directory: `_site` +6. Click `Show advanced` and create a `New variable` +7. Key: `MORPH_API_KEY`, Value: `123456abcdef` (use the actual key value given by Morph) +8. Click `Deploy`. Netlify will now build and deploy the site. + +### Set up a webhook to trigger automatic builds/deploys when the scraper finishes + +1. Click `Site settings` for your Netlify site. +2. `Build & deploy` tab > `Continuous Deployment` +3. Click `Add build hook`. +4. `Build hook name` can be anything you like, eg `Morph scrape completed`. +5. `Branch to build` is `master`. +6. Click `Save`. +7. Copy the webhook URL, eg: `https://api.netlify.com/build_hooks/123456abcdef`. +8. On Morph, go to the Settings page for your scraper. +9. Click `Add webhook`. +10. Paste the webhook URL and click `Update Settings`. + +Netlify will now build and deploy the site using the latest scraper data every time the Morph scrape succeeds.