1import ./make-test-python.nix ({ lib, ... }:
2 let
3 certs = import ./common/acme/server/snakeoil-certs.nix;
4 mobilizonDomain = certs.domain;
5 port = 41395;
6 in
7
8 {
9 name = "mobilizon";
10 meta.maintainers = with lib.maintainers; [ minijackson erictapen ];
11
12 nodes.server =
13 { pkgs, ... }:
14 {
15 services.mobilizon = {
16 enable = true;
17 settings = {
18 ":mobilizon" = {
19 ":instance" = {
20 name = "Test Mobilizon";
21 hostname = mobilizonDomain;
22 };
23 "Mobilizon.Web.Endpoint".http.port = port;
24 };
25 };
26 };
27
28 services.postgresql.package = pkgs.postgresql_14;
29
30 security.pki.certificateFiles = [ certs.ca.cert ];
31
32 services.nginx.virtualHosts."${mobilizonDomain}" = {
33 enableACME = lib.mkForce false;
34 sslCertificate = certs.${mobilizonDomain}.cert;
35 sslCertificateKey = certs.${mobilizonDomain}.key;
36 };
37
38 networking.hosts."::1" = [ mobilizonDomain ];
39 };
40
41 testScript = ''
42 server.wait_for_unit("mobilizon.service")
43 server.wait_for_open_port(${toString port})
44 server.succeed("curl --fail https://${mobilizonDomain}/")
45 '';
46 })