services: add blog

This commit is contained in:
Bruno BELANYI 2021-02-07 21:07:24 +00:00
parent 5fc1b7ae74
commit c8e9dd8535
2 changed files with 38 additions and 0 deletions

37
services/blog.nix Normal file
View file

@ -0,0 +1,37 @@
# 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;
useACMEHost = "${domain}";
inherit root;
};
in
{
options.my.services.blog = {
enable = lib.mkEnableOption "Blog hosting";
};
config = lib.mkIf cfg.enable {
services.nginx.virtualHosts = with lib.attrsets;
mapAttrs' makeVirtualHost hosts;
};
}

View file

@ -3,6 +3,7 @@
{ {
imports = [ imports = [
./backup.nix ./backup.nix
./blog.nix
./gitea.nix ./gitea.nix
./indexers.nix ./indexers.nix
./jellyfin.nix ./jellyfin.nix