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