};
};
- config.nixpkgs.overlays = lib.mkIf cfg.enable [ (self: super: {
- postgresql = self.postgresql_11_custom;
- }) ];
-
config.myServices.databases = lib.mkIf cfg.enable {
mariadb = {
enable = true;
Base path to put the replications
'';
};
+ mainPackage = lib.mkOption {
+ type = lib.types.package;
+ default = pkgs.postgresql;
+ description = ''
+ Postgresql package available in shell
+ '';
+ };
hosts = lib.mkOption {
default = {};
description = ''
};
config = lib.mkIf cfg.enable {
- nixpkgs.overlays = [ (self: super: {
- postgresql = self.postgresql_11_custom;
- }) ];
-
users.users.postgres = {
name = "postgres";
uid = config.ids.uids.postgres;
extraGroups = [ "keys" ];
};
users.groups.postgres.gid = config.ids.gids.postgres;
- environment.systemPackages = [ pkgs.postgresql ];
+ environment.systemPackages = [ cfg.mainPackage ];
secrets.keys = lib.flatten (lib.mapAttrsToList (name: hcfg: [
{
networking.firewall.allowedTCPPorts = [ 25 465 587 ];
- nixpkgs.overlays = [ (self: super: {
- postfix = super.postfix.override { withMySQL = true; };
- }) ];
users.users."${config.services.postfix.user}".extraGroups = [ "keys" ];
services.filesWatcher.postfix = {
restart = true;
networking.firewall.allowedTCPPorts = [ 25 ];
- nixpkgs.overlays = [ (self: super: {
- postfix = super.postfix.override { withMySQL = true; };
- }) ];
users.users."${config.services.postfix.user}".extraGroups = [ "keys" ];
services.filesWatcher.postfix = {
restart = true;
pkgs.mailutils
]}
'';
+ postgresqlBinary = if config.myServices.databasesReplication.postgresql.enable
+ then config.myServices.databasesReplication.postgresql.mainPackage
+ else if config.myServices.databases.enable
+ then config.myServices.databases.postgresql.package
+ else pkgs.postgresql;
myplugins = pkgs.runCommand "buildplugins" {
buildInputs = [ pkgs.makeWrapper pkgs.perl ];
} ''
pkgs.gnugrep pkgs.gawk pkgs.procps-ng
]}
wrapProgram $out/check_postgres_replication --prefix PATH : ${lib.makeBinPath [
- pkgs.postgresql
+ postgresqlBinary
]}
wrapProgram $out/check_redis_replication --prefix PATH : ${lib.makeBinPath [
pkgs.gnugrep pkgs.coreutils pkgs.redis
postgresql = {
enable = true;
base = "/backup2";
+ mainPackage = pkgs.postgresql;
hosts = {
eldiron = {
slot = "backup_2";
connection = "postgresql://backup-2:${config.hostEnv.ldap.password}@eldiron.immae.eu";
+ package = pkgs.postgresql;
};
};
};
self: super: rec {
- postgresql_11_custom = super.postgresql_11.overrideAttrs(old: {
+ postgresql = super.postgresql_11.overrideAttrs(old: {
# datadir in /var/lib/postgresql is named after psqlSchema
passthru = old.passthru // { psqlSchema = "11.0"; };
configureFlags = old.configureFlags ++ [ "--with-pam" ];
nixops = import ./nixops;
pass = import ./pass;
pelican = import ./pelican;
+ postfix = import ./postfix;
postgresql = import ./databases/postgresql;
s6 = import ./s6;
sc-im = import ./sc-im;
--- /dev/null
+self: super: {
+ postfix = super.postfix.override { withMySQL = true; };
+}