52 lines
1.3 KiB
Nix
52 lines
1.3 KiB
Nix
import ../make-test-python.nix (
|
|||
{ pkgs, ... }:
|
|||
|
|||
let
|
|||
certs = import ../common/acme/server/snakeoil-certs.nix;
|
|||
|
|||
serverDomain = certs.domain;
|
|||
in
|
|||
{
|
|||
name = "open-web-calendar";
|
|||
meta.maintainers = with pkgs.lib.maintainers; [ erictapen ];
|
|||
|
|||
nodes.server =
|
|||
{ pkgs, lib, ... }:
|
|||
{
|
|||
services.open-web-calendar = {
|
|||
enable = true;
|
|||
domain = serverDomain;
|
|||
calendarSettings.title = "My custom title";
|
|||
};
|
|||
|
|||
services.nginx.virtualHosts."${serverDomain}" = {
|
|||
enableACME = lib.mkForce false;
|
|||
sslCertificate = certs."${serverDomain}".cert;
|
|||
sslCertificateKey = certs."${serverDomain}".key;
|
|||
};
|
|||
|
|||
security.pki.certificateFiles = [ certs.ca.cert ];
|
|||
|
|||
networking.hosts."::1" = [ "${serverDomain}" ];
|
|||
networking.firewall.allowedTCPPorts = [
|
|||
80
|
|||
443
|
|||
];
|
|||
};
|
|||
|
|||
nodes.client =
|
|||
{ pkgs, nodes, ... }:
|
|||
{
|
|||
networking.hosts."${nodes.server.networking.primaryIPAddress}" = [ "${serverDomain}" ];
|
|||
|
|||
security.pki.certificateFiles = [ certs.ca.cert ];
|
|||
};
|
|||
|
|||
testScript = ''
|
|||
start_all()
|
|||
server.wait_for_unit("open-web-calendar.socket")
|
|||
server.wait_until_succeeds("curl -f https://${serverDomain}/ | grep 'My custom title'")
|
|||
'';
|
|||
}
|
|||
)
|