Self-host your own digital island
1{ lib, config, ... }:
2
3with lib;
4
5{
6 imports = [
7 ./dns/default.nix
8 ./mailserver/default.nix
9 ./mastodon.nix
10 ./mailserver.nix
11 ./gitea.nix
12 ./dns.nix
13 ./matrix.nix
14 ./turn.nix
15 ./wireguard/server.nix
16 ./wireguard/default.nix
17 ];
18
19 options.eilean = with types; {
20 username = mkOption {
21 type = str;
22 };
23 secretsDir = mkOption {
24 type = path;
25 };
26 serverIpv4 = mkOption {
27 type = str;
28 };
29 serverIpv6 = mkOption {
30 type = str;
31 };
32 publicInterface = mkOption {
33 type = str;
34 };
35 };
36
37 config = {
38 security.acme.defaults.email = "${config.eilean.username}@${config.networking.domain}";
39 };
40}