Bill Ewanick b15b63260f | ||
---|---|---|
.vscode | ||
css | ||
templates | ||
.envrc | ||
.gitconfig | ||
.gitignore | ||
README.md | ||
about.rst | ||
config.dhall | ||
contact.markdown | ||
flake.lock | ||
flake.nix | ||
index.html | ||
site.hs | ||
website.cabal |
README.md
Cute Seal Fanpage
An experiment using Nix, Hakyll, Haskell, and shell scripts to automate a simple website deployment pipeline.
Why Seals?
It's an in-joke.
What's all this code?
seal-blog/
-
devops/
-
build.sh
- Uses a nix-shell expression to build the Hakyll executable
-
configuration.nix
- The configuration file for the NixOS production server. This takes care of installing all the necessary software, setup Nginx, and get ACME certs for verification.
-
newSealPost.sh
- Script to be called daily by a cron job on the server. Generates the post for the day, builds and commits.
-
-
website/
- A basic Hakyll site, slightly modified to serve seals. Most of the site is generated from the
site.hs
file. Check the Hakyll documentation for more info.
- A basic Hakyll site, slightly modified to serve seals. Most of the site is generated from the
Work to be done
- The blog post generation and the hosting of the website are currently intertwined when they should be separated
- Seal post generator just makes posts
- Hakyll blog imports or calls the post generator
- The deployed server/nix config file has a cron job for adding a new blog and committing every day
- Need to move the blog and post generation inside nixos-apps on my beefier server
- The configuration file here is for it's own Linode, the current small one running, but I have a better setup for that now
- Pull out the useful parts for my deployed server, remove anything not necessary for a small config file
- Also switch to using caddy if not already
- Experiment with
*
A records- For the seal blog
- Instead of having
www
andgit
and...
subdomains spelled out in Namecheap - Just have a
*
record and have caddy do the filtering