den
 1{
 2  inputs,
 3  config,
 4  ...
 5}: {
 6  #############################################################
 7  #
 8  #  Pardofelis - NixOS running on a 2C4G VPS
 9  #  My main server hosted by Yecaoyun.
10  #
11  #############################################################
12  den.hosts.x86_64-linux.pardofelis = {
13    usage = "server";
14    pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEuT/WkeA7btTeATmWJ2O9f/A6FI0Gl/1KjPGfHbWD5C root@pardofelis";
15    hashedPasswordAged = ./hashed-password.age;
16    sshPorts = [23930];
17    authorizedKeys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFMKaGC2I3an4AJDeWzVx5vhm63+kxi6zJNdh7yEp6CK hpcesia@kevin"];
18    users.hpcesia = {};
19    instantiate = {modules}:
20      inputs.nixpkgs.lib.nixosSystem {
21        inherit modules;
22
23        # Fix vaultix error: attribute 'inputs' missing
24        # This is an anti-pattern of Dendritic Pattern
25        # I don't like this, but I don't see another way
26        specialArgs = {inherit (inputs) self;};
27      };
28  };
29
30  den.aspects.pardofelis.nixos = {
31    imports = [
32      config.flake.modules.nixos."hosts/pardofelis"
33    ];
34  };
35
36  flake.meta.host.hosts.pardofelis = {
37    system = "x86_64-linux";
38    hostPubKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEuT/WkeA7btTeATmWJ2O9f/A6FI0Gl/1KjPGfHbWD5C root@pardofelis";
39    deploy = true;
40    sshPorts = [23930];
41    isServer = true;
42  };
43  flake.modules.nixos."hosts/pardofelis" = _: {
44    imports =
45      (with config.flake.modules.nixos; [
46        core
47      ])
48      ++ (
49        map
50        (n: config.flake.modules.nixos."${config.flake.meta.service.prefix}${n}")
51        [
52          "artalk"
53          "authelia"
54          "fail2ban"
55          "forgejo"
56          "freshrss"
57          "goatcounter"
58          "gokapi"
59          "homepage"
60          "restic"
61          "vaultwarden"
62          "wakapi"
63        ]
64      );
65  };
66}