at master 1.2 kB view raw
1{ pkgs, ... }: 2 3let 4 certs = import ../common/acme/server/snakeoil-certs.nix; 5 6 serverDomain = certs.domain; 7in 8{ 9 name = "open-web-calendar"; 10 meta.maintainers = with pkgs.lib.maintainers; [ erictapen ]; 11 12 nodes.server = 13 { pkgs, lib, ... }: 14 { 15 services.open-web-calendar = { 16 enable = true; 17 domain = serverDomain; 18 calendarSettings.title = "My custom title"; 19 }; 20 21 services.nginx.virtualHosts."${serverDomain}" = { 22 enableACME = lib.mkForce false; 23 sslCertificate = certs."${serverDomain}".cert; 24 sslCertificateKey = certs."${serverDomain}".key; 25 }; 26 27 security.pki.certificateFiles = [ certs.ca.cert ]; 28 29 networking.hosts."::1" = [ "${serverDomain}" ]; 30 networking.firewall.allowedTCPPorts = [ 31 80 32 443 33 ]; 34 }; 35 36 nodes.client = 37 { pkgs, nodes, ... }: 38 { 39 networking.hosts."${nodes.server.networking.primaryIPAddress}" = [ "${serverDomain}" ]; 40 41 security.pki.certificateFiles = [ certs.ca.cert ]; 42 }; 43 44 testScript = '' 45 start_all() 46 server.wait_for_unit("open-web-calendar.socket") 47 server.wait_until_succeeds("curl -f https://${serverDomain}/ | grep 'My custom title'") 48 ''; 49}