diff options
Diffstat (limited to 'modules/private/databases/default.nix')
-rw-r--r-- | modules/private/databases/default.nix | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/modules/private/databases/default.nix b/modules/private/databases/default.nix new file mode 100644 index 00000000..3f7a44bf --- /dev/null +++ b/modules/private/databases/default.nix | |||
@@ -0,0 +1,63 @@ | |||
1 | { lib, config, myconfig, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.databases; | ||
4 | in | ||
5 | { | ||
6 | options.myServices = { | ||
7 | databases.enable = lib.mkEnableOption "my databases service"; | ||
8 | databasesCerts = lib.mkOption { | ||
9 | description = "Default databases configurations for certificates as accepted by acme"; | ||
10 | }; | ||
11 | }; | ||
12 | |||
13 | config.nixpkgs.overlays = lib.mkIf cfg.enable [ (self: super: { | ||
14 | postgresql = self.postgresql_11_custom; | ||
15 | }) ]; | ||
16 | |||
17 | config.myServices.databases = lib.mkIf cfg.enable { | ||
18 | mariadb = { | ||
19 | enable = true; | ||
20 | ldapConfig = { | ||
21 | inherit (myconfig.env.ldap) host base; | ||
22 | inherit (myconfig.env.databases.mysql.pam) dn filter password; | ||
23 | }; | ||
24 | credentials.root = myconfig.env.databases.mysql.systemUsers.root; | ||
25 | }; | ||
26 | |||
27 | openldap = { | ||
28 | accessFile = "${myconfig.privateFiles}/ldap.conf"; | ||
29 | baseDn = myconfig.env.ldap.base; | ||
30 | rootDn = myconfig.env.ldap.root_dn; | ||
31 | rootPw = myconfig.env.ldap.root_pw; | ||
32 | enable = true; | ||
33 | }; | ||
34 | |||
35 | postgresql = { | ||
36 | ldapConfig = { | ||
37 | inherit (myconfig.env.ldap) host base; | ||
38 | inherit (myconfig.env.databases.postgresql.pam) dn filter password; | ||
39 | }; | ||
40 | replicationLdapConfig = { | ||
41 | inherit (myconfig.env.ldap) host base password; | ||
42 | dn = myconfig.env.ldap.host_dn; | ||
43 | }; | ||
44 | authorizedHosts = { | ||
45 | immaeEu = [{ | ||
46 | ip4 = [ | ||
47 | myconfig.env.servers.immaeEu.ips.main.ip4 | ||
48 | myconfig.env.servers.immaeEu.ips.alt.ip4 | ||
49 | ]; | ||
50 | }]; | ||
51 | }; | ||
52 | replicationHosts = { | ||
53 | backup-1 = { | ||
54 | ip4 = [myconfig.env.servers.backup-1.ips.main.ip4]; | ||
55 | ip6 = myconfig.env.servers.backup-1.ips.main.ip6; | ||
56 | }; | ||
57 | }; | ||
58 | enable = true; | ||
59 | }; | ||
60 | |||
61 | redis.enable = true; | ||
62 | }; | ||
63 | } | ||