42 lines
1002 B
Nix
42 lines
1002 B
Nix
|
{ config, pkgs, lib, ... }:
|
||
|
|
||
|
with lib;
|
||
|
|
||
|
let
|
||
|
cfg = config.within.services.graphviz;
|
||
|
graphviz = pkgs.stdenv.mkDerivation {
|
||
|
name = "GraphvizOnline";
|
||
|
src = pkgs.fetchFromGitHub {
|
||
|
owner = "Xe";
|
||
|
repo = "GraphvizOnline";
|
||
|
rev = "98ab98e6dbabba984e49be2c8b46c470aca829fe";
|
||
|
sha256 = "l3BEmY20pfC1rWyQLz6j4pDPdZcv1FYKeIpBZUmosXc=";
|
||
|
fetchSubmodules = false;
|
||
|
};
|
||
|
|
||
|
phases = "installPhase";
|
||
|
|
||
|
installPhase = ''
|
||
|
mkdir -p $out
|
||
|
cp -vrf $src/* $out
|
||
|
'';
|
||
|
};
|
||
|
in {
|
||
|
options.within.services.graphviz.enable =
|
||
|
mkEnableOption "Activates the graphviz site";
|
||
|
|
||
|
config = mkIf cfg.enable {
|
||
|
services.nginx.virtualHosts."graphviz" = {
|
||
|
serverName = "graphviz.christine.website";
|
||
|
locations."/".root = graphviz;
|
||
|
forceSSL = true;
|
||
|
useACMEHost = "christine.website";
|
||
|
extraConfig = ''
|
||
|
access_log /var/log/nginx/graphviz.access.log;
|
||
|
'';
|
||
|
};
|
||
|
|
||
|
services.cfdyndns.records = [ "graphviz.christine.website" ];
|
||
|
};
|
||
|
}
|