Skip to content

brendanmurty/murty-website

murty.au

Summary

This repository contains the website for the Murty family, which has been built with Deno, Lume and Docker. The resulting static site is hosted by GitHub Pages.

I've also used fonts that I've purchased from Mass-Driver, and the free icon pack from Font Awesome.

Screenshot of main index page

Initial Setup

  1. Fork this repository
  2. Make a local clone of that forked repository
  3. Update some files in the forked repository:
  • The bin/deploy.sh script must be updated to use your forked repository URLs when updating CHANGELOG.md
  • All files in the content directory should contain your own content instead
  • All files in the assets directory should contain your own static files instead
  • Purchase your own license to use Mass-Driver fonts or use other fonts
  1. Commit and push all of these changes to your forked repository
  2. Setup GitHub Pages for your forked repository:
  • Repository settings > Pages > Build and deployment > Branch: main
  • Repository settings > Pages > Build and deployment > Directory: /docs
  • Repository settings > Pages > Custom domain: use your own domain
  • Update the CNAME file to use this same domain
  1. Install Deno
  2. Install Docker Desktop
  3. Run bin/setup.sh to complete the initial installation process: deno task setup
  4. Update your .env file:
  • GOOGLE_ANALYTICS_SITE_CODE: The related site code from your Google Analytics account
  1. Install exiftool on your local machine
  2. Optional: Install VS Code and the recommended plugins:

Commands

Run Tests

Run bin/test.sh:

deno task test

Build Site

Run bin/build.sh:

deno task build

Local Web Server

deno task serve

Refer to the tasks > serve section in deno.json for details on how this works via Docker.

Deployment

After testing locally, run bin/deploy.sh to make a new version, build it in the docs directory, and deploy it via GitHub Pages:

deno task deploy YYYY.xxx

Where YYYY is the current year, and xxx is the revision number for that year.

This script will:

  • Update the content in CHANGELOG.md
  • Create a new Git Tag (YYYY.xxx as detailed above)
  • Push changes up to the origin repository
  • Build the site
  • Trigger GitHub Pages to deploy a new version of the site