Go to file
Bill Ewanick 46694dfaaa Bunch of stuff 2023-04-11 17:16:41 -04:00
.vscode Bunch of stuff 2023-04-11 17:16:41 -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 Hiding the posts and formatting 2023-04-10 19:43:00 -04:00
README.md Bunch of stuff 2023-04-11 17:16:41 -04:00
flake.lock Add flakes 2023-04-10 19:42:25 -04:00
flake.nix Add flakes 2023-04-10 19:42:25 -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.
  • dist/

    • Place for the Haskell build artifacts to go.
  • generate/

    • generateSealPosts.hs
      • A Haskell script that checks the website/posts folder and creates a blog post for every day from 1998 until the current date. There you will find the adjective lists if you think of more words to describe seals.
  • 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.

These seals need more adjectives

In generate/generateSealPosts.hs you'll find two lists of adjectives. Submit a pull request to add more. Or email me at admin AT cutesealfanpage.love

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