]> git.immae.eu Git - perso/Immae/Config/Nix.git/commitdiff
Remove use of environment variables
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Tue, 22 Jan 2019 11:49:20 +0000 (12:49 +0100)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Tue, 22 Jan 2019 11:49:20 +0000 (12:49 +0100)
Fixes https://git.immae.eu/mantisbt/view.php?id=113

33 files changed:
libs.nix
virtual/eldiron.nix
virtual/modules/databases/default.nix
virtual/modules/gitolite/default.nix
virtual/modules/websites/aten/aten.nix
virtual/modules/websites/aten/default.nix
virtual/modules/websites/chloe/chloe.nix
virtual/modules/websites/chloe/default.nix
virtual/modules/websites/connexionswing/connexionswing.nix
virtual/modules/websites/connexionswing/default.nix
virtual/modules/websites/default.nix
virtual/modules/websites/ludivine/default.nix
virtual/modules/websites/ludivine/ludivinecassal.nix
virtual/modules/websites/piedsjaloux/default.nix
virtual/modules/websites/piedsjaloux/piedsjaloux.nix
virtual/modules/websites/tellesflorian/default.nix
virtual/modules/websites/tellesflorian/tellesflorian.nix
virtual/modules/websites/tools/cloud/default.nix
virtual/modules/websites/tools/cloud/nextcloud.nix
virtual/modules/websites/tools/dav/davical.nix
virtual/modules/websites/tools/dav/default.nix
virtual/modules/websites/tools/diaspora/default.nix
virtual/modules/websites/tools/diaspora/diaspora.nix
virtual/modules/websites/tools/git/default.nix
virtual/modules/websites/tools/git/mantisbt/mantisbt.nix
virtual/modules/websites/tools/mastodon/default.nix
virtual/modules/websites/tools/mastodon/mastodon.nix
virtual/modules/websites/tools/mediagoblin/default.nix
virtual/modules/websites/tools/mediagoblin/mediagoblin.nix
virtual/modules/websites/tools/tools/default.nix
virtual/modules/websites/tools/tools/roundcubemail.nix
virtual/modules/websites/tools/tools/ttrss.nix
virtual/modules/websites/tools/tools/wallabag.nix

index ad517f283242a4d6faf1c666339ebcb125b8d994..57b0f64d6f37253e1523e735aec76777354fbb98 100644 (file)
--- a/libs.nix
+++ b/libs.nix
@@ -36,8 +36,6 @@ in
       src = fetchgitPrivate json.git;
     };
 
-  checkEnv = var: builtins.stringLength (builtins.getEnv var) > 0;
-
   wrap = { paths ? [], vars ? {}, file ? null, script ? null, name ? "wrap" }:
     assert file != null || script != null ||
       abort "wrap needs 'file' or 'script' argument";
index 48266c861fbf395ac6487fdab32daba80e343637..337ea2f376bfd8a5ae7172bc14d1ed82f2980adf 100644 (file)
@@ -10,6 +10,7 @@
     _module.args = {
       mylibs = import ../libs.nix;
       myconfig = {
+        env = import ./environment.nix;
         ips = {
           main = "176.9.151.89";
           production = "176.9.151.154";
@@ -40,8 +41,8 @@
     deployment = {
       targetEnv = "hetzner";
       hetzner = {
-        #robotUser = "defined in HETZNER_ROBOT_USER";
-        #robotPass = "defined in HETZNER_ROBOT_PASS";
+        robotUser = myconfig.env.hetzner.user;
+        robotPass = myconfig.env.hetzner.pass;
         mainIPv4 = myconfig.ips.main;
         partitions = ''
           clearpart --all --initlabel --drives=sda,sdb
 
     environment.etc."ssh/ldap_authorized_keys" = let
       ldap_authorized_keys =
-        assert checkEnv "NIXOPS_SSHD_LDAP_PASSWORD";
         wrap {
           name = "ldap_authorized_keys";
           file = ./ldap_authorized_keys.sh;
           vars = {
-            LDAP_PASS = builtins.getEnv "NIXOPS_SSHD_LDAP_PASSWORD";
+            LDAP_PASS = myconfig.env.sshd.ldap.password;
             GITOLITE_SHELL = "${pkgs.gitolite}/bin/gitolite-shell";
             ECHO = "${pkgs.coreutils}/bin/echo";
           };
index e3a56129fa75940faa19fc99dfd5b5992a42293f..0912830d3ff3b1db561761363532d248aff43087 100644 (file)
@@ -1,4 +1,4 @@
-{ lib, pkgs, config, mylibs, ... }:
+{ lib, pkgs, config, myconfig, mylibs, ... }:
 let
     cfg = config.services.myDatabases;
 in {
@@ -112,20 +112,18 @@ in {
 
     security.pam.services = let
       pam_ldap = pkgs.pam_ldap;
-      pam_ldap_mysql = assert mylibs.checkEnv "NIXOPS_MYSQL_PAM_PASSWORD";
-              pkgs.writeText "mysql.conf" ''
+      pam_ldap_mysql = pkgs.writeText "mysql.conf" ''
         host ldap.immae.eu
         base dc=immae,dc=eu
         binddn cn=mysql,cn=pam,ou=services,dc=immae,dc=eu
-        bindpw ${builtins.getEnv "NIXOPS_MYSQL_PAM_PASSWORD"}
+        bindpw ${myconfig.env.databases.mysql.pam_password}
         pam_filter memberOf=cn=users,cn=mysql,cn=pam,ou=services,dc=immae,dc=eu
         '';
-      pam_ldap_postgresql_replication = assert mylibs.checkEnv "NIXOPS_ELDIRON_LDAP_PASSWORD";
-              pkgs.writeText "postgresql.conf" ''
+      pam_ldap_postgresql_replication = pkgs.writeText "postgresql.conf" ''
         host ldap.immae.eu
         base dc=immae,dc=eu
         binddn cn=eldiron,ou=hosts,dc=immae,dc=eu
-        bindpw ${builtins.getEnv "NIXOPS_ELDIRON_LDAP_PASSWORD"}
+        bindpw ${myconfig.env.ldap.password}
         pam_login_attribute cn
         '';
     in [
index b8ecb155552e9fac7347c939845fa4be6f37a6b0..21eabc44783e028d7ccf3f9fff1e952193f67076 100644 (file)
@@ -1,4 +1,4 @@
-{ lib, pkgs, config, mylibs, ... }:
+{ lib, pkgs, config, myconfig, mylibs, ... }:
 let
     cfg = config.services.myGitolite;
 in {
@@ -33,14 +33,12 @@ in {
       basePath = "${cfg.gitoliteDir}/repositories";
     };
 
-    system.activationScripts.gitolite =
-      assert mylibs.checkEnv "NIXOPS_GITOLITE_LDAP_PASSWORD";
-      let
+    system.activationScripts.gitolite = let
       gitolite_ldap_groups = mylibs.wrap {
         name = "gitolite_ldap_groups.sh";
         file = ./gitolite_ldap_groups.sh;
         vars = {
-          LDAP_PASS = builtins.getEnv "NIXOPS_GITOLITE_LDAP_PASSWORD";
+          LDAP_PASS = myconfig.env.tools.gitolite.ldap.password;
         };
         paths = [ pkgs.openldap pkgs.stdenv.shellPackage pkgs.gnugrep pkgs.coreutils ];
       };
index 7eec525bbe595456b724c1d81a9f2aabcece0a65..1520439e349eef427dd248c00203e7ab64ffe6f0 100644 (file)
@@ -1,9 +1,8 @@
-{ lib, checkEnv, writeText, fetchedGitPrivate, stdenv, php, git, cacert, phpPackages, yarn }:
+{ lib, writeText, fetchedGitPrivate, stdenv, php, git, cacert, phpPackages, yarn }:
 let
-  aten = { environment ? "dev" }: rec {
-    varPrefix = "ATEN";
+  aten = { config }: rec {
+    environment = config.environment;
     varDir = "/var/lib/aten_${environment}";
-    envName= lib.strings.toUpper environment;
     phpFpm = rec {
       socket = "/var/run/phpfpm/aten-${environment}.sock";
       pool = ''
@@ -34,17 +33,14 @@ let
       user = "wwwrun";
       group = "wwwrun";
       modules = [ "proxy_fcgi" ];
-      vhostConf =
-        assert checkEnv "NIXOPS_${varPrefix}_${envName}_SECRET";
-        assert checkEnv "NIXOPS_${varPrefix}_${envName}_PSQL_URL";
-      ''
+      vhostConf = ''
       <FilesMatch "\.php$">
         SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
       </FilesMatch>
 
       SetEnv APP_ENV      "${environment}"
-      SetEnv APP_SECRET   "${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_SECRET"}
-      SetEnv DATABASE_URL "${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_PSQL_URL"}
+      SetEnv APP_SECRET   "${config.secret}"
+      SetEnv DATABASE_URL "${config.psql_url}"
 
       ${if environment == "dev" then ''
       <Location />
@@ -96,8 +92,8 @@ let
         export GIT_SSL_CAINFO=${cacert}/etc/ssl/certs/ca-bundle.crt
         export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
         export APP_ENV="${environment}"
-        export DATABASE_URL="${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_PSQL_URL"}"
-        export APP_SECRET="${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_SECRET"}"
+        export DATABASE_URL="${config.psql_url}"
+        export APP_SECRET="${config.secret}"
 
         ${if environment == "dev" then ''
           composer install
index 2f319bb57a98431a0b6fcc7a0f5bebcbd1880353..db2ab491fa14c76492f92f01c7c1f0156b8ba3f1 100644 (file)
@@ -1,8 +1,12 @@
-{ lib, pkgs, config, mylibs, ... }:
+{ lib, pkgs, config, myconfig, mylibs, ... }:
 let
-    aten = pkgs.callPackage ./aten.nix { inherit (mylibs) checkEnv fetchedGitPrivate; };
-    aten_dev  = aten { environment = "dev"; };
-    aten_prod = aten { environment = "prod"; };
+    aten = pkgs.callPackage ./aten.nix { inherit (mylibs) fetchedGitPrivate; };
+    aten_dev  = aten {
+      config = myconfig.env.websites.aten.integration;
+    };
+    aten_prod = aten {
+      config = myconfig.env.websites.aten.production;
+    };
 
     cfg = config.services.myWebsites.Aten;
 in {
index ca34b5a00ff8804692aec42856e5cdca1224f1c5..dcf076d2c8a1743a630396c8ab14e994d7f20932 100644 (file)
@@ -1,18 +1,10 @@
-{ stdenv, lib, checkEnv, fetchzip, fetchurl, fetchedGitPrivate, sassc }:
+{ stdenv, lib, fetchzip, fetchurl, fetchedGitPrivate, sassc }:
 let
-  chloe = { environment ? "dev" }: rec {
-    varPrefix = "CHLOE";
-    envName= lib.strings.toUpper environment;
+  chloe = { config }: rec {
+    environment = config.environment;
     phpFpm = rec {
       socket = "/var/run/phpfpm/chloe-${environment}.sock";
-      pool = 
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_PASSWORD";
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_USER";
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_DB";
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_LDAP_DN";
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_LDAP_PASSWORD";
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_LDAP_SEARCH";
-      ''
+      pool = ''
         listen = ${socket}
         user = ${apache.user}
         group = ${apache.group}
@@ -28,13 +20,13 @@ let
         env[SPIP_SITE] = "chloe-${environment}"
         env[SPIP_LDAP_BASE] = "dc=immae,dc=eu"
         env[SPIP_LDAP_HOST] = "ldaps://ldap.immae.eu"
-        env[SPIP_LDAP_SEARCH_DN] = "${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_LDAP_DN"}"
-        env[SPIP_LDAP_SEARCH_PW] = "${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_LDAP_PASSWORD"}"
-        env[SPIP_LDAP_SEARCH] = "${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_LDAP_SEARCH"}"
+        env[SPIP_LDAP_SEARCH_DN] = "${config.ldap.dn}"
+        env[SPIP_LDAP_SEARCH_PW] = "${config.ldap.password}"
+        env[SPIP_LDAP_SEARCH] = "${config.ldap.search}"
         env[SPIP_MYSQL_HOST] = "db-1.immae.eu"
-        env[SPIP_MYSQL_DB] = "${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_DB"}"
-        env[SPIP_MYSQL_USER] = "${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_USER"}"
-        env[SPIP_MYSQL_PASSWORD] = "${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_PASSWORD"}"
+        env[SPIP_MYSQL_DB] = "${config.mysql.name}"
+        env[SPIP_MYSQL_USER] = "${config.mysql.user}"
+        env[SPIP_MYSQL_PASSWORD] = "${config.mysql.password}"
         ${if environment == "dev" then ''
         pm = ondemand
         pm.max_children = 5
index de85e92a46052aa7383e5ed63e46938e634ae90f..94cd4be5e7e0b99fadf03b93bbb0ccce5ac48cee 100644 (file)
@@ -1,8 +1,12 @@
-{ lib, pkgs, config, mylibs, ... }:
+{ lib, pkgs, config, myconfig, mylibs, ... }:
 let
-    chloe = pkgs.callPackage ./chloe.nix { inherit (mylibs) checkEnv fetchedGitPrivate; };
-    chloe_dev = chloe { environment = "dev"; };
-    chloe_prod = chloe { environment = "prod"; };
+    chloe = pkgs.callPackage ./chloe.nix { inherit (mylibs) fetchedGitPrivate; };
+    chloe_dev  = chloe {
+      config = myconfig.env.websites.chloe.integration;
+    };
+    chloe_prod = chloe {
+      config = myconfig.env.websites.chloe.production;
+    };
 
     cfg = config.services.myWebsites.Chloe;
 in {
index 71f3c0b232a39adf4b381318cb2a13b6cc127c7d..66c9b53673e1a4df8d7119ae3cccc72d59a619a8 100644 (file)
@@ -1,29 +1,25 @@
-{ lib, checkEnv, writeText, fetchedGitPrivate, stdenv, php, git, cacert }:
+{ lib, writeText, fetchedGitPrivate, stdenv, php, git, cacert }:
 let
-  connexionswing = { environment ? "dev" }: rec {
+  connexionswing = { config }: rec {
+    environment = config.environment;
     varDir = "/var/lib/connexionswing_${environment}";
     envName= lib.strings.toUpper environment;
     configRoot =
-      assert checkEnv "NIXOPS_CONNEXIONSWING_${envName}_MYSQL_PASSWORD";
-      assert checkEnv "NIXOPS_CONNEXIONSWING_${envName}_MYSQL_USER";
-      assert checkEnv "NIXOPS_CONNEXIONSWING_${envName}_MYSQL_NAME";
-      assert checkEnv "NIXOPS_CONNEXIONSWING_${envName}_SECRET";
-      assert checkEnv "NIXOPS_CONNEXIONSWING_${envName}_EMAIL";
       writeText "parameters.yml" ''
         # This file is auto-generated during the composer install
         parameters:
             database_host: db-1.immae.eu
             database_port: null
-            database_name: ${builtins.getEnv "NIXOPS_CONNEXIONSWING_${envName}_MYSQL_NAME"}
-            database_user: ${builtins.getEnv "NIXOPS_CONNEXIONSWING_${envName}_MYSQL_USER"}
-            database_password: ${builtins.getEnv "NIXOPS_CONNEXIONSWING_${envName}_MYSQL_PASSWORD"}
+            database_name: ${config.mysql.name}
+            database_user: ${config.mysql.user}
+            database_password: ${config.mysql.password}
             mailer_transport: smtp
             mailer_host: mail.immae.eu
             mailer_user: null
             mailer_password: null
-            subscription_email: ${builtins.getEnv "NIXOPS_CONNEXIONSWING_${envName}_EMAIL"}
+            subscription_email: ${config.email}
             allow_robots: true
-            secret: ${builtins.getEnv "NIXOPS_CONNEXIONSWING_${envName}_SECRET"}
+            secret: ${config.secret}
       '';
     phpFpm = rec {
       socket = "/var/run/phpfpm/connexionswing-${environment}.sock";
index 5667c917e3e84de0ee46eb22d858caeba56fbe6b..2e4dfc7ad9483d17cada504734f8f60899998e16 100644 (file)
@@ -1,8 +1,12 @@
-{ lib, pkgs, config, mylibs, ... }:
+{ lib, pkgs, config, mylibs, myconfig, ... }:
 let
-    connexionswing = pkgs.callPackage ./connexionswing.nix { inherit (mylibs) checkEnv fetchedGitPrivate; };
-    connexionswing_dev  = connexionswing { environment = "dev"; };
-    connexionswing_prod = connexionswing { environment = "prod"; };
+    connexionswing = pkgs.callPackage ./connexionswing.nix { inherit (mylibs) fetchedGitPrivate; };
+    connexionswing_dev  = connexionswing {
+      config = myconfig.env.websites.connexionswing.integration;
+    };
+    connexionswing_prod = connexionswing {
+      config = myconfig.env.websites.connexionswing.production;
+    };
 
     cfg = config.services.myWebsites.Connexionswing;
 in {
index f2f0be11c30e6791ef9cacf8578f76c0936f3c7d..59b9e47412adfb573ac7aa3aa1cd1febc66a0f52 100644 (file)
@@ -1,8 +1,5 @@
 { lib, pkgs, config, mylibs, myconfig, ... }:
 let
-  mypkgs = pkgs.callPackage ../../packages.nix {
-    inherit (mylibs) checkEnv fetchedGit fetchedGithub;
-  };
   cfg = config.services.myWebsites;
   makeService = name: cfg: let
     toVhost = vhostConf: {
@@ -205,7 +202,7 @@ in
       };
       ldap = {
         modules = [ "ldap" "authnz_ldap" ];
-        extraConfig = assert mylibs.checkEnv "NIXOPS_HTTP_LDAP_PASSWORD"; ''
+        extraConfig = ''
           <IfModule ldap_module>
             LDAPSharedCacheSize 500000
             LDAPCacheEntries 1024
@@ -218,7 +215,7 @@ in
             <IfModule authnz_ldap_module>
               AuthLDAPURL          ldap://ldap.immae.eu:389/dc=immae,dc=eu STARTTLS
               AuthLDAPBindDN       cn=httpd,ou=services,dc=immae,dc=eu
-              AuthLDAPBindPassword "${builtins.getEnv "NIXOPS_HTTP_LDAP_PASSWORD"}"
+              AuthLDAPBindPassword "${myconfig.env.httpd.ldap.password}"
               AuthType             Basic
               AuthName             "Authentification requise (Acces LDAP)"
               AuthBasicProvider    ldap
index 6aa1862a13af3339acc9e606eb4694205964c0ce..d13d7004ceef7dceb4f1f8232e428ffc3e550d29 100644 (file)
@@ -1,8 +1,12 @@
-{ lib, pkgs, config, mylibs, ... }:
+{ lib, pkgs, config, myconfig, mylibs, ... }:
 let
-    ludivinecassal = pkgs.callPackage ./ludivinecassal.nix { inherit (mylibs) checkEnv fetchedGitPrivate; };
-    ludivinecassal_dev  = ludivinecassal { environment = "dev"; };
-    ludivinecassal_prod = ludivinecassal { environment = "prod"; };
+    ludivinecassal = pkgs.callPackage ./ludivinecassal.nix { inherit (mylibs) fetchedGitPrivate; };
+    ludivinecassal_dev  = ludivinecassal {
+      config = myconfig.env.websites.ludivinecassal.integration;
+    };
+    ludivinecassal_prod = ludivinecassal {
+      config = myconfig.env.websites.ludivinecassal.production;
+    };
 
     cfg = config.services.myWebsites.Ludivine;
 in {
index 138ea9f3e30681a479432b6f63f1e102778f637d..342c6983a95ccf3ae30b0010d3f3ff559bf7bb37 100644 (file)
@@ -1,30 +1,22 @@
-{ lib, checkEnv, writeText, fetchedGitPrivate, stdenv, php, git, cacert, phpPackages, ruby, sass, imagemagick }:
+{ lib, writeText, fetchedGitPrivate, stdenv, php, git, cacert, phpPackages, ruby, sass, imagemagick }:
 let
-  ludivinecassal = { environment ? "dev" }: rec {
-    varPrefix = "LUDIVINECASSAL";
+  ludivinecassal = { config }: rec {
+    environment = config.environment;
     varDir = "/var/lib/ludivinecassal_${environment}";
-    envName= lib.strings.toUpper environment;
     configRoot =
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_PASSWORD";
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_USER";
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_NAME";
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_SECRET";
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_LDAP_PASSWORD";
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_LDAP_SEARCH_DN";
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_LDAP_SEARCH_FILTER";
       writeText "parameters.yml" ''
         # This file is auto-generated during the composer install
         parameters:
             database_host: db-1.immae.eu
             database_port: null
-            database_name: ${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_NAME"}
-            database_user: ${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_USER"}
-            database_password: ${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_PASSWORD"}
+            database_name: ${config.mysql.name}
+            database_user: ${config.mysql.user}
+            database_password: ${config.mysql.password}
             mailer_transport: smtp
             mailer_host: mail.immae.eu
             mailer_user: null
             mailer_password: null
-            secret: ${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_SECRET"}
+            secret: ${config.secret}
             ldap_host: ldap.immae.eu
             ldap_port: 636
             ldap_version: 3
@@ -32,9 +24,9 @@ let
             ldap_tls: false
             ldap_user_bind: 'uid={username},ou=users,dc=immae,dc=eu'
             ldap_base_dn: 'dc=immae,dc=eu'
-            ldap_search_dn: '${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_LDAP_SEARCH_DN"}'
-            ldap_search_password: '${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_LDAP_PASSWORD"}'
-            ldap_search_filter: '${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_LDAP_SEARCH_FILTER"}'
+            ldap_search_dn: '${config.ldap.dn}'
+            ldap_search_password: '${config.ldap.password}'
+            ldap_search_filter: '${config.ldap.search}'
         leapt_im:
             binary_path: ${imagemagick}/bin
         assetic:
index 80261a39d7cb49f550681c2a351ac8f3aaa9ccaf..f1bb76039b3c74791ba2f4f88097a72a31614c91 100644 (file)
@@ -1,8 +1,12 @@
-{ lib, pkgs, config, mylibs, ... }:
+{ lib, pkgs, config, myconfig, mylibs, ... }:
 let
-    piedsjaloux = pkgs.callPackage ./piedsjaloux.nix { inherit (mylibs) checkEnv fetchedGitPrivate; };
-    piedsjaloux_dev  = piedsjaloux { environment = "dev"; };
-    piedsjaloux_prod = piedsjaloux { environment = "prod"; };
+    piedsjaloux = pkgs.callPackage ./piedsjaloux.nix { inherit (mylibs) fetchedGitPrivate; };
+    piedsjaloux_dev  = piedsjaloux {
+      config = myconfig.env.websites.piedsjaloux.integration;
+    };
+    piedsjaloux_prod = piedsjaloux {
+      config = myconfig.env.websites.piedsjaloux.production;
+    };
 
     cfg = config.services.myWebsites.PiedsJaloux;
 in {
index 4bbf148f2b37cd568d0dc60114c0ff48173e084f..3d30b894a8f03e9f3126e4053743e0a90893b31d 100644 (file)
@@ -1,27 +1,22 @@
-{ lib, checkEnv, writeText, fetchedGitPrivate, stdenv, php, git, cacert, phpPackages, texlive, imagemagick }:
+{ lib, writeText, fetchedGitPrivate, stdenv, php, git, cacert, phpPackages, texlive, imagemagick }:
 let
-  piedsjaloux = { environment ? "dev" }: rec {
-    varPrefix = "PIEDSJALOUX";
+  piedsjaloux = { config }: rec {
+    environment = config.environment;
     varDir = "/var/lib/piedsjaloux_${environment}";
-    envName= lib.strings.toUpper environment;
     configRoot =
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_PASSWORD";
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_USER";
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_NAME";
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_SECRET";
       writeText "parameters.yml" ''
         # This file is auto-generated during the composer install
         parameters:
             database_host: db-1.immae.eu
             database_port: null
-            database_name: ${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_NAME"}
-            database_user: ${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_USER"}
-            database_password: ${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_PASSWORD"}
+            database_name: ${config.mysql.name}
+            database_user: ${config.mysql.user}
+            database_password: ${config.mysql.password}
             mailer_transport: smtp
             mailer_host: mail.immae.eu
             mailer_user: null
             mailer_password: null
-            secret: ${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_SECRET"}
+            secret: ${config.secret}
             pdflatex: "${texlive.combine { inherit (texlive) attachfile preprint scheme-small; }}/bin/pdflatex"
         leapt_im:
             binary_path: ${imagemagick}/bin
index 8f8c35a15b0ea71f1e8acf37f4f2f028331a3a13..f347169bf423cebadb255358162a13504b492185 100644 (file)
@@ -1,9 +1,11 @@
-{ lib, pkgs, config, mylibs, ... }:
+{ lib, pkgs, config, myconfig, mylibs, ... }:
 let
     adminer = pkgs.callPackage ../commons/adminer.nix {};
 
-    tellesflorian = pkgs.callPackage ./tellesflorian.nix { inherit (mylibs) checkEnv fetchedGitPrivate; };
-    tellesflorian_dev  = tellesflorian { environment = "dev"; };
+    tellesflorian = pkgs.callPackage ./tellesflorian.nix { inherit (mylibs) fetchedGitPrivate; };
+    tellesflorian_dev  = tellesflorian {
+      config = myconfig.env.websites.tellesflorian.integration;
+    };
 
     cfg = config.services.myWebsites.TellesFlorian;
 in {
index 2191b318e729cea7e9b49ef3ca6eeded74e4aade..03b1fafb21a587c69a4f0592878e0607d7b047a4 100644 (file)
@@ -1,27 +1,22 @@
-{ lib, checkEnv, writeText, fetchedGitPrivate, stdenv, php, git, cacert, phpPackages }:
+{ lib, writeText, fetchedGitPrivate, stdenv, php, git, cacert, phpPackages }:
 let
-  tellesflorian = { environment ? "dev" }: rec {
-    varPrefix = "TELLESFLORIAN";
+  tellesflorian = { config }: rec {
+    environment = config.environment;
     varDir = "/var/lib/tellesflorian_${environment}";
-    envName= lib.strings.toUpper environment;
     configRoot =
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_PASSWORD";
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_USER";
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_NAME";
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_SECRET";
       writeText "parameters.yml" ''
         # This file is auto-generated during the composer install
         parameters:
             database_host: db-1.immae.eu
             database_port: null
-            database_name: ${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_NAME"}
-            database_user: ${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_USER"}
-            database_password: ${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_MYSQL_PASSWORD"}
+            database_name: ${config.mysql.name}
+            database_user: ${config.mysql.user}
+            database_password: ${config.mysql.password}
             mailer_transport: smtp
             mailer_host: mail.immae.eu
             mailer_user: null
             mailer_password: null
-            secret: ${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_SECRET"}
+            secret: ${config.secret}
       '';
     phpFpm = rec {
       socket = "/var/run/phpfpm/floriantelles-${environment}.sock";
@@ -49,10 +44,8 @@ let
         pm.max_spare_servers = 3
         ''}'';
     };
-    passwords =
-      assert checkEnv "NIXOPS_${varPrefix}_${envName}_INVITE_PASSWORDS";
-      writeText "tellesflorian_passwords" ''
-      invite:${builtins.getEnv "NIXOPS_${varPrefix}_${envName}_INVITE_PASSWORDS"}
+    passwords = writeText "tellesflorian_passwords" ''
+      invite:${config.invite_passwords}
       '';
     apache = {
       user = "wwwrun";
index 7dd5c6e0d1cca19e89ec1026f450c45a0fc1cbd4..241b98251debab4c09b6d6ad9d34bb21c908a3cd 100644 (file)
@@ -1,6 +1,8 @@
-{ lib, pkgs, config, mylibs, ... }:
+{ lib, pkgs, config, myconfig, mylibs, ... }:
 let
-    nextcloud = pkgs.callPackage ./nextcloud.nix { inherit (mylibs) checkEnv; };
+    nextcloud = pkgs.callPackage ./nextcloud.nix {
+      env = myconfig.env.tools.nextcloud;
+    };
 
     cfg = config.services.myWebsites.tools.cloud;
 in {
index b9c8d04d8a6e0d1a18df95c79d93cfd6de5c46c4..815254b50e998e93ee2d4f05e397c3c53539d43d 100644 (file)
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, checkEnv, writeText, lib, phpPackages, php }:
+{ stdenv, fetchurl, env, writeText, lib, phpPackages, php }:
 let
   nextcloud = let
     buildApp = { appName, version, url, sha256, installPhase ? "mkdir -p $out && cp -R . $out/" }:
@@ -96,27 +96,20 @@ let
     };
   in rec {
     varDir = "/var/lib/nextcloud";
-    config_php =
-      assert checkEnv "NIXOPS_NEXTCLOUD_PASSWORD_SALT";
-      assert checkEnv "NIXOPS_NEXTCLOUD_DB_USER";
-      assert checkEnv "NIXOPS_NEXTCLOUD_DB_PASSWORD";
-      assert checkEnv "NIXOPS_NEXTCLOUD_INSTANCE_ID";
-      assert checkEnv "NIXOPS_NEXTCLOUD_SECRET";
-      assert checkEnv "NIXOPS_NEXTCLOUD_REDIS_DB_INDEX";
-      writeText "config.php" ''
+    config_php = writeText "config.php" ''
       <?php
       $CONFIG = array (
-        'instanceid' => '${builtins.getEnv "NIXOPS_NEXTCLOUD_INSTANCE_ID"}',
+        'instanceid' => '${env.instance_id}',
         'datadirectory' => '/var/lib/nextcloud/',
-        'passwordsalt' => '${builtins.getEnv "NIXOPS_NEXTCLOUD_PASSWORD_SALT"}',
+        'passwordsalt' => '${env.password_salt}',
         'debug' => false,
         'dbtype' => 'pgsql',
         'version' => '15.0.0.10',
         'dbname' => 'webapps',
         'dbhost' => '/run/postgresql',
         'dbtableprefix' => 'oc_',
-        'dbuser' => '${builtins.getEnv "NIXOPS_NEXTCLOUD_DB_USER"}',
-        'dbpassword' => '${builtins.getEnv "NIXOPS_NEXTCLOUD_DB_PASSWORD"}',
+        'dbuser' => '${env.postgresql.user}',
+        'dbpassword' => '${env.postgresql.password}',
         'installed' => true,
         'maxZipInputSize' => 0,
         'allowZipDownload' => true,
@@ -127,7 +120,7 @@ let
         array (
           0 => 'cloud.immae.eu',
         ),
-        'secret' => '${builtins.getEnv "NIXOPS_NEXTCLOUD_SECRET"}',
+        'secret' => '${env.secret}',
         'appstoreenabled' => false,
         'appstore.experimental.enabled' => true,
         'loglevel' => 0,
@@ -147,7 +140,7 @@ let
         array (
           'host' => 'localhost',
           'port' => 6379,
-          'dbindex' => ${builtins.getEnv "NIXOPS_NEXTCLOUD_REDIS_DB_INDEX"},
+          'dbindex' => ${env.redis.db_index},
         ),
         'overwrite.cli.url' => 'https://cloud.immae.eu',
         'ldapIgnoreNamingRules' => false,
index cf528ad7631a5681f8763aec4cb1bdc9992a2254..4d0639f3ed6346384bccc1cc9d906655277bfecc 100644 (file)
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gettext, writeText, checkEnv }:
+{ stdenv, fetchurl, gettext, writeText, env }:
 let
   awl = stdenv.mkDerivation rec {
     version = "0.59";
@@ -16,12 +16,9 @@ let
     '';
   };
   davical = rec {
-    config =
-      assert checkEnv "NIXOPS_DAVICAL_DB_PASSWORD";
-      assert checkEnv "NIXOPS_DAVICAL_LDAP_PASSWORD";
-      writeText "davical_config.php" ''
+    config = writeText "davical_config.php" ''
         <?php
-        $c->pg_connect[] = "dbname=davical user=davical_app host=db-1.immae.eu password=${builtins.getEnv "NIXOPS_DAVICAL_DB_PASSWORD"}";
+        $c->pg_connect[] = "dbname=davical user=davical_app host=db-1.immae.eu password=${env.postgresql.password}";
 
         $c->readonly_webdav_collections = false;
 
@@ -44,7 +41,7 @@ let
             'port' => '389',
             'startTLS' => 'yes',
             'bindDN'=> 'cn=davical,ou=services,dc=immae,dc=eu',
-            'passDN'=> '${builtins.getEnv "NIXOPS_DAVICAL_LDAP_PASSWORD"}',
+            'passDN'=> '${env.ldap.password}',
             'protocolVersion' => '3',
             'baseDNUsers'=> array('ou=users,dc=immae,dc=eu', 'ou=group_users,dc=immae,dc=eu'),
             'filterUsers' => 'memberOf=cn=users,cn=davical,ou=services,dc=immae,dc=eu',
index 201da38e6cfaaf53a370bfc6d3562c4654b8d9ee..ef9735e4f40b87d1ff1f113bbe6b6c7458186cf2 100644 (file)
@@ -1,7 +1,9 @@
-{ lib, pkgs, config, mylibs, ... }:
+{ lib, pkgs, config, myconfig, mylibs, ... }:
 let
     infcloud = pkgs.callPackage ./infcloud.nix {};
-    davical = pkgs.callPackage ./davical.nix { inherit (mylibs) checkEnv; };
+    davical = pkgs.callPackage ./davical.nix {
+      env = myconfig.env.tools.davical;
+    };
 
     cfg = config.services.myWebsites.tools.dav;
 in {
index 8285d6cf30869317c075af0eb3c45de9787eb7d5..b15b9ce9619791d3829acc877db5b2562176d03b 100644 (file)
@@ -1,7 +1,8 @@
-{ lib, pkgs, config, mylibs, ... }:
+{ lib, pkgs, config, myconfig, mylibs, ... }:
 let
   diaspora = pkgs.callPackage ./diaspora.nix {
-    inherit (mylibs) fetchedGithub checkEnv;
+    inherit (mylibs) fetchedGithub;
+    env = myconfig.env.tools.diaspora;
   };
 
   cfg = config.services.myWebsites.tools.diaspora;
index 961e1f859170ed3d3bc22c166659475e045cd96e..39de20248d749849a0260d19c1e9e27fd1ec1f2e 100644 (file)
@@ -1,4 +1,4 @@
-{ checkEnv, fetchedGithub, stdenv, defaultGemConfig, writeText, bundlerEnv, ruby_2_4, pkgs, cacert }:
+{ env, fetchedGithub, stdenv, defaultGemConfig, writeText, bundlerEnv, ruby_2_4, pkgs, cacert }:
 let
   gems = bundlerEnv {
     name = "diaspora-env";
@@ -30,13 +30,10 @@ let
     '';
     propagatedBuildInputs = buildInputs;
   });
-  secret_token = assert checkEnv "NIXOPS_DIASPORA_SECRET_TOKEN";
-    writeText "secret_token.rb" ''
-    Diaspora::Application.config.secret_key_base = '${builtins.getEnv "NIXOPS_DIASPORA_SECRET_TOKEN"}'
+  secret_token = writeText "secret_token.rb" ''
+    Diaspora::Application.config.secret_key_base = '${env.secret_token}'
     '';
-  config =
-    assert checkEnv "NIXOPS_DIASPORA_LDAP_PASSWORD";
-    writeText "diaspora.yml" ''
+  config = writeText "diaspora.yml" ''
       configuration:
         environment:
           url: "https://diaspora.immae.eu/"
@@ -101,7 +98,7 @@ let
             skip_email_confirmation: true
             use_bind_dn: true
             bind_dn: "cn=diaspora,ou=services,dc=immae,dc=eu"
-            bind_pw: "${builtins.getEnv "NIXOPS_DIASPORA_LDAP_PASSWORD"}"
+            bind_pw: "${env.ldap.password}"
             search_base: "dc=immae,dc=eu"
             search_filter: "(&(memberOf=cn=users,cn=diaspora,ou=services,dc=immae,dc=eu)(uid=%{username}))"
       production:
@@ -109,15 +106,13 @@ let
       development:
         environment:
     '';
-  database_config =
-    assert checkEnv "NIXOPS_DIASPORA_SQL_PASSWORD";
-    writeText "database.yml" ''
+  database_config = writeText "database.yml" ''
       postgresql: &postgresql
         adapter: postgresql
         host: db-1.immae.eu
         port: 5432
         username: "diaspora"
-        password: "${builtins.getEnv "NIXOPS_DIASPORA_SQL_PASSWORD"}"
+        password: "${env.postgresql.password}"
         encoding: unicode
       common: &common
         <<: *postgresql
index f53350edaca9e962e9751ce1a468575d8bbe1e4c..91aa1d042c7f19b41d52466b77017af8fe48ca10 100644 (file)
@@ -1,6 +1,9 @@
-{ lib, pkgs, config, mylibs, ... }:
+{ lib, pkgs, config, myconfig, mylibs, ... }:
 let
-    mantisbt = pkgs.callPackage ./mantisbt/mantisbt.nix { inherit (mylibs) checkEnv fetchedGithub; };
+    mantisbt = pkgs.callPackage ./mantisbt/mantisbt.nix {
+      inherit (mylibs) fetchedGithub;
+      env = myconfig.env.tools.mantisbt;
+    };
     gitweb = pkgs.callPackage ./gitweb/gitweb.nix { gitoliteDir = config.services.myGitolite.gitoliteDir; };
 
     cfg = config.services.myWebsites.tools.git;
index c1cb60d7e8e99635da3a36b72a267a8bf4c09c72..bc2ff3a1127f1cc0f37a6b02794bbb246383688e 100644 (file)
@@ -1,4 +1,4 @@
-{ lib, checkEnv, writeText, stdenv, fetchurl, fetchedGithub }:
+{ lib, env, writeText, stdenv, fetchurl, fetchedGithub }:
 let
   mantisbt = let
     plugins = {
@@ -18,17 +18,14 @@ let
     };
   in rec {
     config = 
-      assert checkEnv "NIXOPS_MANTISBT_DB_PASSWORD";
-      assert checkEnv "NIXOPS_MANTISBT_MASTER_SALT";
-      assert checkEnv "NIXOPS_MANTISBT_LDAP_PASSWORD";
       writeText "config_inc.php" ''
       <?php
       $g_hostname              = 'db-1.immae.eu';
       $g_db_username           = 'mantisbt';
-      $g_db_password           = '${builtins.getEnv "NIXOPS_MANTISBT_DB_PASSWORD"}';
+      $g_db_password           = '${env.postgresql.password}';
       $g_database_name         = 'mantisbt';
       $g_db_type               = 'pgsql';
-      $g_crypto_master_salt    = '${builtins.getEnv "NIXOPS_MANTISBT_MASTER_SALT"}';
+      $g_crypto_master_salt    = '${env.master_salt}';
       $g_allow_signup          = OFF;
       $g_allow_anonymous_login = ON;
       $g_anonymous_account     = 'anonymous';
@@ -48,7 +45,7 @@ let
       $g_ldap_server = 'ldaps://ldap.immae.eu:636';
       $g_ldap_root_dn = 'ou=users,dc=immae,dc=eu';
       $g_ldap_bind_dn = 'cn=mantisbt,ou=services,dc=immae,dc=eu';
-      $g_ldap_bind_passwd = '${builtins.getEnv "NIXOPS_MANTISBT_LDAP_PASSWORD"}';
+      $g_ldap_bind_passwd = '${env.ldap.password}';
       $g_use_ldap_email = ON;
       $g_use_ldap_realname = ON;
       $g_ldap_uid_field = 'uid'; 
index 25a389bc1684805ef1474ba30fa001200ada9fc5..98ab9be39f51d55361aeccc7dc1f4c079a3172cd 100644 (file)
@@ -1,7 +1,8 @@
-{ lib, pkgs, config, mylibs, ... }:
+{ lib, pkgs, config, myconfig, mylibs, ... }:
 let
   mastodon = pkgs.callPackage ./mastodon.nix {
-    inherit (mylibs) fetchedGithub checkEnv;
+    inherit (mylibs) fetchedGithub;
+    env = myconfig.env.tools.mastodon;
   };
 
   cfg = config.services.myWebsites.tools.mastodon;
index e948852bec98c5a50902fb625c3fa3339687f3e1..463de1cce883f7215816cb262fe02e332df0ac76 100644 (file)
@@ -1,4 +1,4 @@
-{ checkEnv, fetchedGithub, stdenv, writeText, pkgs, cacert }:
+{ env, fetchedGithub, stdenv, writeText, pkgs, cacert }:
 let
   varDir = "/var/lib/mastodon_immae";
   socketsDir = "/run/mastodon";
@@ -21,35 +21,26 @@ let
       jemalloc which postgresql python3 cacert
     ];
   });
-  config =
-      assert checkEnv "NIXOPS_MASTODON_DB_PASS";
-      assert checkEnv "NIXOPS_MASTODON_PAPERCLIP_SECRET";
-      assert checkEnv "NIXOPS_MASTODON_SECRET_KEY_BASE";
-      assert checkEnv "NIXOPS_MASTODON_OTP_SECRET";
-      assert checkEnv "NIXOPS_MASTODON_VAPID_PRIVATE_KEY";
-      assert checkEnv "NIXOPS_MASTODON_VAPID_PUBLIC_KEY";
-      assert checkEnv "NIXOPS_MASTODON_OTP_SECRET";
-      assert checkEnv "NIXOPS_MASTODON_LDAP_PASSWORD";
-      writeText "mastodon_environment" ''
+  config = writeText "mastodon_environment" ''
     REDIS_HOST=localhost
     REDIS_PORT=6379
     REDIS_DB=13
     DB_HOST=/run/postgresql
     DB_USER=mastodon
     DB_NAME=mastodon
-    DB_PASS=${builtins.getEnv "NIXOPS_MASTODON_DB_PASS"}
+    DB_PASS=${env.postgresql.password}
     DB_PORT=5432
 
     LOCAL_DOMAIN=mastodon.immae.eu
     LOCAL_HTTPS=true
     ALTERNATE_DOMAINS=immae.eu
 
-    PAPERCLIP_SECRET=${builtins.getEnv "NIXOPS_MASTODON_PAPERCLIP_SECRET"}
-    SECRET_KEY_BASE=${builtins.getEnv "NIXOPS_MASTODON_SECRET_KEY_BASE"}
-    OTP_SECRET=${builtins.getEnv "NIXOPS_MASTODON_OTP_SECRET"}
+    PAPERCLIP_SECRET=${env.paperclip_secret}
+    SECRET_KEY_BASE=${env.secret_key_base}
+    OTP_SECRET=${env.otp_secret}
 
-    VAPID_PRIVATE_KEY=${builtins.getEnv "NIXOPS_MASTODON_VAPID_PRIVATE_KEY"}
-    VAPID_PUBLIC_KEY=${builtins.getEnv "NIXOPS_MASTODON_VAPID_PUBLIC_KEY"}
+    VAPID_PRIVATE_KEY=${env.vapid.private}
+    VAPID_PUBLIC_KEY=${env.vapid.public}
 
     SMTP_SERVER=mail.immae.eu
     SMTP_PORT=587
@@ -66,7 +57,7 @@ let
     LDAP_METHOD=simple_tls
     LDAP_BASE="dc=immae,dc=eu"
     LDAP_BIND_DN="cn=mastodon,ou=services,dc=immae,dc=eu"
-    LDAP_PASSWORD="${builtins.getEnv "NIXOPS_MASTODON_LDAP_PASSWORD"}"
+    LDAP_PASSWORD="${env.ldap.password}"
     LDAP_UID="uid"
     LDAP_SEARCH_FILTER="(&(%{uid}=%{email})(memberOf=cn=users,cn=mastodon,ou=services,dc=immae,dc=eu))"
     '';
index 99bdce1bb16997a0d6260bb87d29b5df25b34079..5f60503d32e204272283dc2d9c434139a402dd9e 100644 (file)
@@ -1,7 +1,8 @@
-{ lib, pkgs, config, mylibs, ... }:
+{ lib, pkgs, config, myconfig, mylibs, ... }:
 let
   mediagoblin = pkgs.callPackage ./mediagoblin.nix {
-    inherit (mylibs) checkEnv fetchedGit fetchedGithub;
+    inherit (mylibs) fetchedGit fetchedGithub;
+    env = myconfig.env.tools.mediagoblin;
   };
 
   cfg = config.services.myWebsites.tools.mediagoblin;
index e94d8a66fa3b883645b815f528dc2e7ef234fbea..2e62242cb46192fd8d6625e1079b6e5d70597e64 100644 (file)
@@ -1,4 +1,4 @@
-{ checkEnv, makeWrapper, stdenv, writeText, fetchurl, fetchedGit, fetchedGithub, which, python3, pkgs, automake, autoconf, nodejs, nodePackages, git, cacert }:
+{ env, makeWrapper, stdenv, writeText, fetchurl, fetchedGit, fetchedGithub, which, python3, pkgs, automake, autoconf, nodejs, nodePackages, git, cacert }:
 let
   plugins = {
     basicsearch = stdenv.mkDerivation (fetchedGithub ./mediagoblin-plugin-basicsearch.json // rec {
@@ -183,10 +183,7 @@ in
       url_scheme = https
       '';
 
-    mediagoblin_local =
-      assert checkEnv "NIXOPS_MEDIAGOBLIN_LDAP_PASSWORD";
-      assert checkEnv "NIXOPS_MEDIAGOBLIN_SQL_URI";
-      writeText "mediagoblin_local.ini" ''
+    mediagoblin_local = writeText "mediagoblin_local.ini" ''
       [DEFAULT]
       data_basedir = "${varDir}"
 
@@ -195,7 +192,7 @@ in
       email_sender_address = "mediagoblin@mail.immae.eu"
 
       #sql_engine = sqlite:///%(data_basedir)s/mediagoblin.db
-      sql_engine = ${builtins.getEnv "NIXOPS_MEDIAGOBLIN_SQL_URI"}
+      sql_engine = ${env.psql_url}
 
       email_debug_mode = false
       allow_registration = false
@@ -232,7 +229,7 @@ in
             LDAP_SERVER_URI = 'ldaps://ldap.immae.eu:636'
             LDAP_SEARCH_BASE = 'dc=immae,dc=eu'
             LDAP_BIND_DN = 'cn=mediagoblin,ou=services,dc=immae,dc=eu'
-            LDAP_BIND_PW = '${builtins.getEnv "NIXOPS_MEDIAGOBLIN_LDAP_PASSWORD"}'
+            LDAP_BIND_PW = '${env.ldap.password}'
             LDAP_SEARCH_FILTER = '(&(memberOf=cn=users,cn=mediagoblin,ou=services,dc=immae,dc=eu)(uid={username}))'
             EMAIL_SEARCH_FIELD = 'mail'
         [[mediagoblin.plugins.basicsearch]]
index d69ccc9c6497142a9a44ffa507a694af664a8d3d..294959c72455c50138426845d58d3a434817dd99 100644 (file)
@@ -1,10 +1,13 @@
-{ lib, pkgs, config, mylibs, ... }:
+{ lib, pkgs, config, myconfig, mylibs, ... }:
 let
     adminer = pkgs.callPackage ../../commons/adminer.nix {};
     ympd = pkgs.callPackage ./ympd.nix {};
-    ttrss = pkgs.callPackage ./ttrss.nix { inherit (mylibs) checkEnv fetchedGithub fetchedGit; };
-    roundcubemail = pkgs.callPackage ./roundcubemail.nix { inherit (mylibs) checkEnv; };
-    wallabag = pkgs.callPackage ./wallabag.nix { inherit (mylibs) checkEnv; };
+    ttrss = pkgs.callPackage ./ttrss.nix {
+      inherit (mylibs) fetchedGithub fetchedGit;
+      env = myconfig.env.tools.ttrss;
+    };
+    roundcubemail = pkgs.callPackage ./roundcubemail.nix { env = myconfig.env.tools.roundcubemail; };
+    wallabag = pkgs.callPackage ./wallabag.nix { env = myconfig.env.tools.wallabag; };
 
     cfg = config.services.myWebsites.tools.tools;
 in {
index e1653ae5c3756b2673e3dfb31a2169a09e95e12b..877ea8b9cbf501f79bde2cc470601b104961f569 100644 (file)
@@ -1,4 +1,4 @@
-{ lib, checkEnv, writeText, stdenv, fetchurl }:
+{ lib, env, writeText, stdenv, fetchurl }:
 let
   roundcubemail = let
     plugins = {};
@@ -12,12 +12,9 @@ let
         install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
       '';
     };
-    config =
-      assert checkEnv "NIXOPS_ROUNDCUBEMAIL_PSQL_URL";
-      assert checkEnv "NIXOPS_ROUNDCUBEMAIL_SECRET";
-      writeText "config.php" ''
+    config = writeText "config.php" ''
       <?php
-        $config['db_dsnw'] = '${builtins.getEnv "NIXOPS_ROUNDCUBEMAIL_PSQL_URL"}';
+        $config['db_dsnw'] = '${env.psql_url}';
         $config['default_host'] = 'ssl://mail.immae.eu';
         $config['imap_conn_options'] = array("ssl" => array("verify_peer" => false));
         $config['smtp_server'] = 'tls://mail.immae.eu';
@@ -27,7 +24,7 @@ let
 
         $config['support_url'] = ''';
 
-        $config['des_key'] = '${builtins.getEnv "NIXOPS_ROUNDCUBEMAIL_SECRET"}';
+        $config['des_key'] = '${env.secret}';
 
         $config['plugins'] = array();
 
index 2659afddbb285c4746c9ff0d6a551ef4f462992a..76105be615c35f67aff5602700d6c46db16d80fb 100644 (file)
@@ -1,4 +1,4 @@
-{ lib, php, checkEnv, writeText, stdenv, fetchedGit, fetchedGithub }:
+{ lib, php, env, writeText, stdenv, fetchedGit, fetchedGithub }:
 let
   ttrss = let
     plugins = {
@@ -52,10 +52,7 @@ let
         install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
       '';
     };
-    config =
-      assert checkEnv "NIXOPS_TTRSS_DB_PASSWORD";
-      assert checkEnv "NIXOPS_TTRSS_LDAP_PASSWORD";
-      writeText "config.php" ''
+    config = writeText "config.php" ''
       <?php
 
         define('PHP_EXECUTABLE', '${php}/bin/php');
@@ -72,7 +69,7 @@ let
         define('DB_HOST', 'db-1.immae.eu');
         define('DB_USER', 'ttrss');
         define('DB_NAME', 'ttrss');
-        define('DB_PASS', '${builtins.getEnv "NIXOPS_TTRSS_DB_PASSWORD"}');
+        define('DB_PASS', '${env.postgresql.password}');
         define('DB_PORT', '5432');
 
         define('AUTH_AUTO_CREATE', true);
@@ -117,7 +114,7 @@ let
         define('LDAP_AUTH_SEARCHFILTER', '(&(memberOf=cn=users,cn=ttrss,ou=services,dc=immae,dc=eu)(|(cn=???)(uid=???)(&(uid:dn:=???)(ou=ttrss))))');
 
         define('LDAP_AUTH_BINDDN', 'cn=ttrss,ou=services,dc=immae,dc=eu');
-        define('LDAP_AUTH_BINDPW', '${builtins.getEnv "NIXOPS_TTRSS_LDAP_PASSWORD"}');
+        define('LDAP_AUTH_BINDPW', '${env.ldap.password}');
         define('LDAP_AUTH_LOGIN_ATTRIB', 'immaeTtrssLogin');
 
         define('LDAP_AUTH_LOG_ATTEMPTS', FALSE);
index 0b54fffc6bda17a76cf81927e8534703ea3e26e5..22089dad9da07b8576a195f5bdfb3a74eb55da9b 100644 (file)
@@ -1,12 +1,8 @@
-{ stdenv, fetchurl, writeText, checkEnv, phpPackages, php, which }:
+{ stdenv, fetchurl, writeText, env, phpPackages, php, which }:
 let
   wallabag = rec {
     varDir = "/var/lib/wallabag";
-    parameters =
-      assert checkEnv "NIXOPS_WALLABAG_SQL_PASSWORD";
-      assert checkEnv "NIXOPS_WALLABAG_SECRET";
-      assert checkEnv "NIXOPS_WALLABAG_LDAP_PASSWORD";
-    writeText "parameters.yml" ''
+    parameters = writeText "parameters.yml" ''
       # This file is auto-generated during the composer install
       parameters:
           database_driver: pdo_pgsql
@@ -15,7 +11,7 @@ let
           database_port: null
           database_name: webapps
           database_user: wallabag
-          database_password: ${builtins.getEnv "NIXOPS_WALLABAG_SQL_PASSWORD"}
+          database_password: ${env.postgresql.password}
           database_path: null
           database_table_prefix: wallabag_
           database_socket: null
@@ -26,7 +22,7 @@ let
           mailer_user: null
           mailer_password: null
           locale: fr
-          secret: ${builtins.getEnv "NIXOPS_WALLABAG_SECRET"}
+          secret: ${env.secret}
           twofactor_auth: true
           twofactor_sender: wallabag@immae.eu
           fosuser_registration: false
@@ -52,7 +48,7 @@ let
           ldap_bind_requires_dn: true
           ldap_base: 'dc=immae,dc=eu'
           ldap_manager_dn: 'cn=wallabag,ou=services,dc=immae,dc=eu'
-          ldap_manager_pw: ${builtins.getEnv "NIXOPS_WALLABAG_LDAP_PASSWORD"}
+          ldap_manager_pw: ${env.ldap.password}
           ldap_filter: '(&(memberOf=cn=users,cn=wallabag,ou=services,dc=immae,dc=eu))'
           ldap_admin_filter: '(&(memberOf=cn=admins,cn=wallabag,ou=services,dc=immae,dc=eu)(uid=%s))'
           ldap_username_attribute: uid