nix-config/modules/services/blog.nix

40 lines
848 B
Nix
Raw Normal View History

2021-02-07 22:07:24 +01:00
# My blog setup
{ config, lib, ... }:
let
cfg = config.my.services.blog;
domain = config.networking.domain;
makeHostInfo = name: {
name = "${name}.${domain}";
value = "/var/www/${name}";
};
hostsInfo = [
{
name = domain;
value = "/var/www/blog";
}
] ++ builtins.map makeHostInfo [ "cv" "dev" "key" ];
hosts = builtins.listToAttrs hostsInfo;
makeVirtualHost = with lib.attrsets;
name: root: nameValuePair "${name}" {
forceSSL = true;
2021-02-24 21:50:05 +01:00
useACMEHost = domain;
2021-02-07 22:07:24 +01:00
inherit root;
# Make my blog the default landing site
default = (name == domain);
2021-02-07 22:07:24 +01:00
};
in
{
options.my.services.blog = {
enable = lib.mkEnableOption "Blog hosting";
};
config = lib.mkIf cfg.enable {
services.nginx.virtualHosts = with lib.attrsets;
mapAttrs' makeVirtualHost hosts;
};
}