{ lib, pkgs, config, ... }:
with lib;
let
  cfg = config.luj.docs;
  port = 3013;
in
{

  options.luj.docs = {

    enable = mkEnableOption "activate hedgedoc service";
    nginx.enable = mkEnableOption "activate nginx";
    nginx.subdomain = mkOption {
      type = types.str;
    };

  };

  config = mkIf cfg.enable (
    mkMerge [{
      services.hedgedoc = {
        enable = true;
        settings = {
          port = port;
          db = {
            dialect = "postgres";
            host = "/run/postgresql";
          };
          domain = "docs.julienmalka.me";
          protocolUseSSL = true;
          allowFreeURL = true;
          allowEmailRegister = false;
          allowAnonymous = false;
          allowAnonymousEdits = true;
          allowGravatar = true;
        };
      };
      services.postgresql = {
        ensureDatabases = [ "hedgedoc" ];
        ensureUsers = [
          {
            name = "hedgedoc";
            ensurePermissions."DATABASE hedgedoc" = "ALL PRIVILEGES";
          }
        ];
      };
    }


      (mkIf cfg.nginx.enable (mkSubdomain cfg.nginx.subdomain port))

      (mkIf cfg.nginx.enable (mkVPNSubdomain cfg.nginx.subdomain port))]);





}
