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.
- Windows
choco install hugo-extended
- Mac
brew install hugo
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.
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
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.
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
.
This project uses eslint to validate the code:
cd content-downloader
npm run lint
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
Proprietary: Patrick Favre-Bulle 2023