Go to file
Bill Ewanick 15b54d63e9 Remove unnecessary Haskell dependencies 2023-08-11 15:14:49 -04:00
.vscode minor updates 2023-04-19 18:42:09 -04:00
css Move out of website folder 2023-08-08 17:53:07 -04:00
templates Move out of website folder 2023-08-08 17:53:07 -04:00
.envrc Add flakes 2023-04-10 19:42:25 -04:00
.gitconfig Daily blog update 2020-09-10 03:15:15 +00:00
.gitignore About to add all the posts into source 2023-08-09 17:07:38 -04:00
README.md minor updates 2023-04-19 18:42:09 -04:00
about.rst Move out of website folder 2023-08-08 17:53:07 -04:00
config.dhall Less posts, Hakyll can't build 2023-08-09 18:37:14 -04:00
contact.markdown Move out of website folder 2023-08-08 17:53:07 -04:00
flake.lock Turn the site into a package 2023-08-08 17:51:50 -04:00
flake.nix Remove unnecessary Haskell dependencies 2023-08-11 15:14:49 -04:00
index.html Move out of website folder 2023-08-08 17:53:07 -04:00
site.hs Move out of website folder 2023-08-08 17:53:07 -04:00
website.cabal Move out of website folder 2023-08-08 17:53:07 -04:00

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

    • 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.

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 and git and ... subdomains spelled out in Namecheap
    • Just have a * record and have caddy do the filtering