This repository has no description
1.7 kB
62 lines
1{
2 self,
3 config,
4 lib,
5 pkgs,
6 ...
7}:
8let
9 # ANSI-terminal-style homepage, inline HTML with clickable links. The IBM
10 # VGA webfont (CC BY-SA 4.0, int10h.org/oldschool-pc-fonts) is base64-inlined
11 # so the page is a single self-contained file.
12 webroot = pkgs.runCommand "lassul.us-webroot" { } ''
13 mkdir $out
14 substitute ${./lassul.us/index.html} $out/index.html \
15 --replace-fail @font_woff_b64@ "$(base64 -w0 ${./lassul.us/Web437_IBM_VGA_8x16.woff})"
16 cp ${./lassul.us/robots.txt} $out/robots.txt
17 cp ${./lassul.us/profile.nix} $out/profile.nix
18 '';
19in
20{
21 imports = [
22 ./default.nix
23 ];
24
25 security.acme = {
26 defaults.email = "acme@lassul.us";
27 acceptTerms = true;
28 certs."lassul.us" = {
29 group = "lasscert";
30 };
31 };
32
33 users.groups.lasscert.members = [
34 "nginx"
35 ];
36
37 services.nginx.virtualHosts."lassul.us" = {
38 addSSL = true;
39 enableACME = true;
40 default = true;
41 locations."/".extraConfig = ''
42 root ${webroot};
43 '';
44 locations."= /profile.nix".extraConfig = ''
45 root ${webroot};
46 default_type text/plain;
47 '';
48 locations."= /wireguard-key".extraConfig = ''
49 alias ${pkgs.writeText "neoprism.wg" self.inputs.kartei.hosts.neoprism.nets.wiregrill.wireguard.pubkey};
50 '';
51 # the keys lass logs in with, one per line
52 locations."= /ssh.pub".extraConfig = ''
53 alias ${pkgs.writeText "ssh.pub" (lib.concatLines config.users.users.mainUser.openssh.authorizedKeys.keys)};
54 '';
55 locations."= /gpg.pub".extraConfig = ''
56 alias ${self.keys.pgp.yubi_pgp.key};
57 '';
58 locations."= /ip".extraConfig = ''
59 return 200 '$remote_addr';
60 '';
61 };
62}