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  flake.meta.host.hosts.pardofelis = {
31    system = "x86_64-linux";
32    hostPubKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEuT/WkeA7btTeATmWJ2O9f/A6FI0Gl/1KjPGfHbWD5C root@pardofelis";
33    deploy = true;
34    sshPorts = [23930];
35    isServer = true;
36  };
37
38  den.aspects.pardofelis.nixos = {
39    imports = (
40      map
41      (n: config.flake.modules.nixos."${config.flake.meta.service.prefix}${n}")
42      [
43        "artalk"
44        "authelia"
45        "freshrss"
46        "gokapi"
47        "homepage"
48        "vaultwarden"
49        "wakapi"
50      ]
51    );
52  };
53}