homebrewserver.club/README.md

84 lines
2.0 KiB
Markdown

# nooo-hbsc
The new homebrewserver.club website :)
> https://homebrewserver.club/
## Build the site locally
### Get a local copy
```bash
$ git clone --recurse-submodules https://git.vvvvvvaria.org/varia/nooo-hbsc
```
### System requirements
Install the system requirements:
```bash
$ apt install -y python3 python3-dev python3-venv
```
### Python requirements
Then create a virtual environment and activate it:
```bash
$ python3 -m venv .venv
$ source .venv/bin/activate
```
Then install the requirements:
```bash
$ pip install -r requirements.txt
```
### Generating the site
Generate the content and run the server:
```bash
$ pelican content
$ pelican --listen --relative-urls
```
Then the site is available at the following URL:
> http://localhost:8000
## Working with the site
* Website articles and content are in [content](./content)
* The website theme is in [themes/homebrewtheme](./themes/homebrewtheme)
* Images are stored in [content/images](./content/images)
* Configs are stored in [content/downloads](./content/downloads)
While working on the site, you can run the following:
```bash
$ 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.