feat(teal): Add fava-web

Fava-web is a simple solution for accounting based on 'beancount' (a
text-based accounting system).

Previously we attempted to use frappe, but found it was overly-complex,
so something with simpler concepts that was more geared towards a
smaller use-case was at the top of our goals.

The fact that I have used beancount before also helped.

We've secured this behind our tailnet, as generally we trust anyone who
can access teal through the tailnet.

Change-Id: I0db2ee0bd98cb7560ca26d303396e179fcb0f283
Reviewed-on: https://git.clicks.codes/c/Infra/NixFiles/+/787
Reviewed-by: Samuel Shuert <coded@clicks.codes>
Tested-by: Skyler Grey <minion@clicks.codes>
diff --git a/systems/x86_64-linux/teal/default.nix b/systems/x86_64-linux/teal/default.nix
index ee2de50..2a9b99b 100644
--- a/systems/x86_64-linux/teal/default.nix
+++ b/systems/x86_64-linux/teal/default.nix
@@ -160,6 +160,17 @@
             ];
           };
       };
+      fava = {
+        enable = true;
+        tailscaleAuth = true;
+        accounts = {
+          "clicks" = lib.home-manager.hm.dag.entryAnywhere "Clicks Codes";
+          "coded" = lib.home-manager.hm.dag.entryBetween [ "testing" ] [ "clicks" ] "Samuel Shuert";
+          "minion" = lib.home-manager.hm.dag.entryBetween [ "testing" ] [ "clicks" ] "Skyler Grey";
+          "testing" = lib.home-manager.hm.dag.entryAfter [ "clicks" ] "Test Data - May Be Wiped At Any Time";
+        };
+        domain = "fava.clicks.codes";
+      };
     };
 
     networking.tailscale = {