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 usein 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 updateFor 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-accountswhere 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 packagethen either run it with
hugo-content-downloaderor use the shortcut that automatically rebuilds the sources
npm run execwhich will populate the directories content/opensource and content/articles.
This project uses eslint to validate the code:
cd content-downloader
npm run lintA 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:latestand then you can access the page with http://localhost:8080
Proprietary: Patrick Favre 2023
