Skip to content

The source for my private website powered by hugo a static code generators and typescript/node based CLI to fetch my content from various sites..

Notifications You must be signed in to change notification settings

patrickfav/website-favre

Repository files navigation

Static Site Gen Repo for my Personal Website

A simple website with a list of all of my open source projects and articles I wrote. Can be found on favr.dev. Uses Hugo as static site generator.

Build Status Build Status Coverage Bugs Technical Debt

Screenshot Website

Prepare

Install Hugo

  • Windows choco install hugo-extended
  • Mac brew install hugo

Install Node

Currently, this project uses Node 18.17.0 (lts). It is recommended to use a node version manager like nvm, then you can just run

nvm install && nvm use

in the project root dir to install and use the correct version.

Cloning Project with Submodule

This project uses a git submodule for including the theme. To correctly clone it you need to do

git clone https://github.com/patrickfav/website-favre.git
git submodule init
git submodule update

Build & Run

Set secrets

For the downloader to work with all features one must set 2 environmental variables

GITHUB_TOKEN=... # a GitHub Personal Access Token - https://docs.github.com/de/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
FIREBASE_SERVICE_ACCOUNT_JSON= {...} # a Firebase service account json file - https://firebase.google.com/support/guides/service-accounts

where the second, the Firebase service account json, is optional and not providing it will disable the stats persisting feature.

Prepare Content Sync

Install and link everything and build the js files from typescript with

cd content-downloader
npm run package

then either run it with

hugo-content-downloader

or use the shortcut that automatically rebuilds the sources

npm run exec

which will populate the directories content/opensource and content/articles.

Linting

This project uses eslint to validate the code:

cd content-downloader
npm run lint

Using the build & run Docker Image

A docker image that builds everything, updates the content and then can be used to locally serve the website with nginx can be created by doing:

docker build --no-cache --progress=plain -t websitefavre:latest .
docker run -p 8080:80 websitefavre:latest

and then you can access the page with http://localhost:8080

License

Proprietary: Patrick Favre-Bulle 2023

About

The source for my private website powered by hugo a static code generators and typescript/node based CLI to fetch my content from various sites..

Topics

Resources

Stars

Watchers

Forks