aboutsummaryrefslogtreecommitdiff
path: root/virtual/modules
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2019-01-10 00:40:53 +0100
committerIsmaël Bouya <ismael.bouya@normalesup.org>2019-01-10 00:40:53 +0100
commit3013caf18db83d43a1703b1a74cb484f70bab3a8 (patch)
tree1bd0a2ee04a906149b0d9a6653c663164a3a42b6 /virtual/modules
parent4d4f13f4a8e7df6480da895d80d487c891441745 (diff)
downloadNix-3013caf18db83d43a1703b1a74cb484f70bab3a8.tar.gz
Nix-3013caf18db83d43a1703b1a74cb484f70bab3a8.tar.zst
Nix-3013caf18db83d43a1703b1a74cb484f70bab3a8.zip
Start moving websites to their own modules: certificates
Diffstat (limited to 'virtual/modules')
-rw-r--r--virtual/modules/certificates.nix30
-rw-r--r--virtual/modules/websites/aten.nix28
-rw-r--r--virtual/modules/websites/chloe.nix27
-rw-r--r--virtual/modules/websites/connexionswing.nix31
-rw-r--r--virtual/modules/websites/ludivine.nix27
-rw-r--r--virtual/modules/websites/piedsjaloux.nix28
6 files changed, 171 insertions, 0 deletions
diff --git a/virtual/modules/certificates.nix b/virtual/modules/certificates.nix
new file mode 100644
index 0000000..a9d6d99
--- /dev/null
+++ b/virtual/modules/certificates.nix
@@ -0,0 +1,30 @@
1{ lib, pkgs, config, mylibs, ... }:
2{
3 options.services.myCertificates = {
4 certConfig = lib.mkOption {
5 default = {
6 webroot = "/var/lib/acme/acme-challenge";
7 email = "ismael@bouya.org";
8 postRun = ''
9 systemctl reload httpd.service
10 '';
11 plugins = [ "cert.pem" "chain.pem" "fullchain.pem" "full.pem" "key.pem" "account_key.json" ];
12 };
13 description = "Default configuration for certificates";
14 };
15 };
16
17 config = {
18 # FIXME: doesn't work with httpd?
19 security.acme.preliminarySelfsigned = true;
20
21 security.acme.certs = {
22 # FIXME: /!\ To create a new certificate, create it before using
23 # it in httpd
24 "eldiron" = config.services.myCertificates.certConfig // {
25 domain = "eldiron.immae.eu";
26 allowKeysForGroup = true;
27 };
28 };
29 };
30}
diff --git a/virtual/modules/websites/aten.nix b/virtual/modules/websites/aten.nix
new file mode 100644
index 0000000..7567289
--- /dev/null
+++ b/virtual/modules/websites/aten.nix
@@ -0,0 +1,28 @@
1{ lib, pkgs, config, mylibs, ... }:
2let
3 cfg = config.services.myWebsites.Aten;
4in {
5 options.services.myWebsites.Aten = {
6 production = {
7 enable = lib.mkEnableOption "enable Aten's website in production";
8 };
9 integration = {
10 enable = lib.mkEnableOption "enable Aten's website in integration";
11 };
12 };
13
14 config = lib.mkMerge [
15 (lib.mkIf cfg.production.enable {
16 security.acme.certs."aten" = config.services.myCertificates.certConfig // {
17 domain = "aten.pro";
18 extraDomains = {
19 "www.aten.pro" = null;
20 };
21 };
22 })
23 (lib.mkIf cfg.integration.enable {
24 security.acme.certs."eldiron".extraDomains."dev.aten.pro" = null;
25 })
26 ];
27}
28
diff --git a/virtual/modules/websites/chloe.nix b/virtual/modules/websites/chloe.nix
new file mode 100644
index 0000000..2c0c65d
--- /dev/null
+++ b/virtual/modules/websites/chloe.nix
@@ -0,0 +1,27 @@
1{ lib, pkgs, config, mylibs, ... }:
2let
3 cfg = config.services.myWebsites.Chloe;
4in {
5 options.services.myWebsites.Chloe = {
6 production = {
7 enable = lib.mkEnableOption "enable Chloe's website in production";
8 };
9 integration = {
10 enable = lib.mkEnableOption "enable Chloe's website in integration";
11 };
12 };
13
14 config = lib.mkMerge [
15 (lib.mkIf cfg.production.enable {
16 security.acme.certs."chloe" = config.services.myCertificates.certConfig // {
17 domain = "osteopathe-cc.fr";
18 extraDomains = {
19 "www.osteopathe-cc.fr" = null;
20 };
21 };
22 })
23 (lib.mkIf cfg.integration.enable {
24 security.acme.certs."eldiron".extraDomains."chloe.immae.eu" = null;
25 })
26 ];
27}
diff --git a/virtual/modules/websites/connexionswing.nix b/virtual/modules/websites/connexionswing.nix
new file mode 100644
index 0000000..ed6799f
--- /dev/null
+++ b/virtual/modules/websites/connexionswing.nix
@@ -0,0 +1,31 @@
1{ lib, pkgs, config, mylibs, ... }:
2let
3 cfg = config.services.myWebsites.Connexionswing;
4in {
5 options.services.myWebsites.Connexionswing = {
6 production = {
7 enable = lib.mkEnableOption "enable Connexionswing's website in production";
8 };
9 integration = {
10 enable = lib.mkEnableOption "enable Connexionswing's website in integration";
11 };
12 };
13
14 config = lib.mkMerge [
15 (lib.mkIf cfg.production.enable {
16 security.acme.certs."connexionswing" = config.services.myCertificates.certConfig // {
17 domain = "connexionswing.com";
18 extraDomains = {
19 "www.connexionswing.com" = null;
20 "sandetludo.com" = null;
21 "www.sandetludo.com" = null;
22 };
23 };
24 })
25 (lib.mkIf cfg.integration.enable {
26 security.acme.certs."eldiron".extraDomains."sandetludo.immae.eu" = null;
27 security.acme.certs."eldiron".extraDomains."connexionswing.immae.eu" = null;
28 })
29 ];
30}
31
diff --git a/virtual/modules/websites/ludivine.nix b/virtual/modules/websites/ludivine.nix
new file mode 100644
index 0000000..5729c09
--- /dev/null
+++ b/virtual/modules/websites/ludivine.nix
@@ -0,0 +1,27 @@
1{ lib, pkgs, config, mylibs, ... }:
2let
3 cfg = config.services.myWebsites.Ludivine;
4in {
5 options.services.myWebsites.Ludivine = {
6 production = {
7 enable = lib.mkEnableOption "enable Ludivine's website in production";
8 };
9 integration = {
10 enable = lib.mkEnableOption "enable Ludivine's website in integration";
11 };
12 };
13
14 config = lib.mkMerge [
15 (lib.mkIf cfg.production.enable {
16 security.acme.certs."ludivinecassal" = config.services.myCertificates.certConfig // {
17 domain = "ludivinecassal.com";
18 extraDomains = {
19 "www.ludivinecassal.com" = null;
20 };
21 };
22 })
23 (lib.mkIf cfg.integration.enable {
24 security.acme.certs."eldiron".extraDomains."ludivine.immae.eu" = null;
25 })
26 ];
27}
diff --git a/virtual/modules/websites/piedsjaloux.nix b/virtual/modules/websites/piedsjaloux.nix
new file mode 100644
index 0000000..849df63
--- /dev/null
+++ b/virtual/modules/websites/piedsjaloux.nix
@@ -0,0 +1,28 @@
1{ lib, pkgs, config, mylibs, ... }:
2let
3 cfg = config.services.myWebsites.PiedsJaloux;
4in {
5 options.services.myWebsites.PiedsJaloux = {
6 production = {
7 enable = lib.mkEnableOption "enable PiedsJaloux's website in production";
8 };
9 integration = {
10 enable = lib.mkEnableOption "enable PiedsJaloux's website in integration";
11 };
12 };
13
14 config = lib.mkMerge [
15 (lib.mkIf cfg.production.enable {
16 security.acme.certs."piedsjaloux" = config.services.myCertificates.certConfig // {
17 domain = "piedsjaloux.fr";
18 extraDomains = {
19 "www.piedsjaloux.fr" = null;
20 };
21 };
22 })
23 (lib.mkIf cfg.integration.enable {
24 security.acme.certs."eldiron".extraDomains."piedsjaloux.immae.eu" = null;
25 })
26 ];
27}
28