diff options
Diffstat (limited to 'krebs/3modules')
-rw-r--r-- | krebs/3modules/default.nix | 5 | ||||
-rw-r--r-- | krebs/3modules/krebs-pages.nix | 44 |
2 files changed, 45 insertions, 4 deletions
diff --git a/krebs/3modules/default.nix b/krebs/3modules/default.nix index 0ac8cb743..6babac72e 100644 --- a/krebs/3modules/default.nix +++ b/krebs/3modules/default.nix @@ -34,6 +34,7 @@ let ./iptables.nix ./kapacitor.nix ./konsens.nix + ./krebs-pages.nix ./monit.nix ./nixpkgs.nix ./on-failure.nix @@ -83,10 +84,6 @@ let @ IN SOA dns19.ovh.net. tech.ovh.net. (2015052000 86400 3600 3600000 86400) IN NS ns19.ovh.net. IN NS dns19.ovh.net. - IN A 185.199.108.153 - IN A 185.199.109.153 - IN A 185.199.110.153 - IN A 185.199.111.153 ''; }; }; diff --git a/krebs/3modules/krebs-pages.nix b/krebs/3modules/krebs-pages.nix new file mode 100644 index 000000000..a2a5b723e --- /dev/null +++ b/krebs/3modules/krebs-pages.nix @@ -0,0 +1,44 @@ +{ config, modulesPath, pkgs, ... }: let + cfg = config.krebs.pages; + lib = import ../../lib; + extraTypes.nginx-vhost = lib.types.submodule ( + lib.recursiveUpdate + (import (modulesPath + "/services/web-servers/nginx/vhost-options.nix") + { inherit config lib; }) + {} + ); +in { + options.krebs.pages = { + enable = lib.mkEnableOption "krebs-pages"; + domain = lib.mkOption { + type = lib.types.hostname; + default = "krebsco.de"; + }; + nginx = lib.mkOption { + type = extraTypes.nginx-vhost; + default = {}; + example = lib.literalExpression /* nix */ '' + { + # To enable encryption and let let's encrypt take care of certificate + enableACME = true; + forceSSL = true; + } + ''; + description = lib.mkDoc '' + With this option, you can customize the nginx virtualHost settings. + ''; + }; + package = lib.mkOption { + type = lib.types.package; + default = pkgs.krebs-pages; + }; + }; + config = lib.mkIf cfg.enable { + services.nginx = { + enable = lib.mkDefault true; + virtualHosts.${cfg.domain} = lib.mkMerge [ cfg.nginx { + root = lib.mkForce cfg.package; + }]; + }; + }; +} |