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}