aux | ||
init | ||
.gitattributes | ||
Dockerfile | ||
README.md |
blogker
A nginx-powered container hosting a hugo-built blog regularly pulled off git.
Run
There are multiple options to get your Hugo blog into blogker:
- by specifying a git URL where it gets pulled from regularly
- by passing in the required files via a bind or volume mount
Auto-Pull Git
If you store your blog data in a git repository, run the container with env REPO_URL
set to a Git repo:
docker run -e REPO_URL=https://git.maride.cc/maride/sec.maride.cc.git -p 80:80 -d blogker
Pull frequency
The repository will be pulled and built every 10 minutes by default.
Other values can be specified by the BUILDFREQ
environment variable.
For example, if you want to have the blog updated every minute:
docker run -e REPO_URL=https://... -e BUILDFREQ=1 -p 80:80 -d blogker
Lowering this value may risk running into rate limits on some git servers.
SSH URLs
If you specify a SSH URL (ssh:// ...
) for your repository, the host key will be automatically pulled and added as trusted host. Make sure to double-check those host keys with your git server - although a MITM scenario is unlikely and won't pose a big risk in the case of blogker. YMMV, but still, this may be a security risk in some cases.
If you want to pull private repositories, you may need to generate a SSH key for this purpose, and hand in the private key file, e.g. via -v ./id_rsa:/root/.ssh/id_rsa
.
Specify branch
If there is a specific branch to use (other than master/main), you can specify the desired branch using the REPO_BRANCH
environment variable.
Passthrough via Bind
To just use a specific directory as the hugo blog contents, run the container with the repository passed through as bind directory:
docker run -v /var/myblog:/repo -p 80:80 -d blogker
The repository will be built every 10 minutes, but you need to implement a mechanism to update the blog repository on your own. This setup can be handy in a testing/dev environment where you don't want to have all your blog posts published right away.