Skip to content

brendanmurty/site

Repository files navigation

Murty Website

Deployment Status Latest Release Website Status

Summary

This repository contains the website for the Murty family, which has been built with Deno, Lume, a commercially licensed version of the IO font by Mass-Driver, and a licensed icon pack from Font Awesome.

Tests, build and local server commands are available from local environments.

Remote testing and GitHub Pages deployment can be triggered locally and is then handled remotely by a GitHub Actions workflow.

Previews of the home page

Preview of the home page in dark mode

Preview of the home page in light mode

Lighthouse test results

Lighthouse test results

Initial setup

  1. Fork this repository
  2. Make a local clone of that forked repository
  3. Install Deno
  4. Run the setup script: deno task setup
  5. Update some files in the forked repository
  • Update .github/workflows/release.yml to use your forked GitHub repository URL
  • Update .github/workflows/release.yml to use your own Docker Hub repository URL
  • All files in the content directory must contain your own content instead
  • All files in the assets directory must contain your own static files instead
  • Purchase your own license to use the Mass-Driver IO font or update the CSS to use other fonts
  • Purchase Font Awesome Pro, setup your own kit, and update the kit.fontawesome.com script path in the source code. Alternatively, you can use a free icon pack and update the code in your fork to use that instead.
  1. Commit and push all of these changes to your forked repository
  2. Update the Settings for your forked repository via GitHub:
  • Pages > Source: GitHub Actions
  • Pages > Custom domain: use your own domain
  • Secrets and variables > Actions > new secret > Name: DOCKERHUB_USERNAME, Secret: your Docker username
  • Secrets and variables > Actions > new secret > Name: DOCKERHUB_TOKEN, Secret: generate new token, read and write permissions, save the generated token here
  1. Update config/CNAME to use the same domain as you configured above
  2. Setup Fathom Analytics:
  • Create your own account and setup a new site
  • Update your .env file's FATHOM_ANALYTICS_SITE_ID value to use your new Site ID
  1. Optional: Install VS Code and the recommended plugins:

Commands

Command Description
deno task test                     Run all tests
deno task serve Start a local web server. Builds the site and starts a local web server at http://localhost:8000/
deno task release Generate and push a new Git Tag, which will then trigger the GitHub Actions workflow in the remote repository.

For more details here, refer to the tasks section in deno.json.

Folder structure and key files

Folder / File Description
.devcontainer Dev Container configuration files.
.github/workflows/release.yml Triggers when a release tag is pushed. Runs tests, deploys to GitHub Pages, publishes a new GitHub release and pushes a new version to the repository on Docker Hub.
.vscode Customised VS Code configuration for this repository.
assets Static files like images and PDFs.
config Supporting configuration files.
content Website page content in Markdown files.
src Source code and related unit tests.
src/commands Helper scripts, refer to the Commands section above for more details.
src/layouts React TSX page layouts.
src/styles CSS styles.
src/templates Nunjucks page templates.
deno.json Deno imports, tasks and configuration for this repository.