content | ||
plugins | ||
themes/homebrewtheme | ||
.gitignore | ||
pelicanconf.py | ||
publishconf.py | ||
README.md | ||
requirements.txt |
homebrewserver.club
Build the site locally
Get a local copy
$ git clone --recurse-submodules https://git.vvvvvvaria.org/varia/homebrewserver.club
System requirements
Install the system requirements:
$ apt install -y python3 python3-dev python3-venv
Python requirements
Then create a virtual environment and activate it:
$ python3 -m venv .venv
$ source .venv/bin/activate
Then install the requirements:
$ pip install -r requirements.txt
Generating the site
Generate the content and run the server:
$ pelican content
$ pelican --listen --relative-urls
Then the site is available at the following URL:
Working with the site
- Website articles and content are in content
- The website theme is in themes/homebrewtheme
- Images are stored in content/images
- Configs are stored in content/downloads
While working on the site, you can run the following:
$ pelican --autoreload --listen --relative-urls
Writing drafts
Use Status: draft
in the article metadata. When the site is generated, the
output/drafts
folder will be created with your new draft article. This allows
us to work on new articles and still store the pages here in the repository.
Deploying the site
We have a Git hook setup, so just push as you would as normal:
$ git push origin master
Details for maintaining the hook on the Varia server are:
- We have cloned the site in
/srv/gitea/clones/homebrewserver.club
- We have create a hook deployment script in
/srv/gitea/gitea-repositories/varia/homebrewserver.club.git/hooks/post-update
How it works: when someone runs a git push origin master
, the script in the post-update
will run after the updating is finished. In this script, we run all the steps to publish the site as per usual. Such as running pip install -r requirements.txt
and pelican
to generate the new output.