]> git.immae.eu Git - perso/Immae/Config/Nix.git/blob - modules/private/databases/default.nix
Add backup-2 to psql replication
[perso/Immae/Config/Nix.git] / modules / private / databases / default.nix
1 { lib, config, myconfig, nodes, ... }:
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 backup-2 = {
58 ip4 = [myconfig.env.servers.backup-2.ips.main.ip4];
59 ip6 = myconfig.env.servers.backup-2.ips.main.ip6;
60 };
61 };
62 enable = true;
63 };
64
65 redis.enable = true;
66 };
67 }