1{ lib, pkgs, ... }:
2{
3 name = "realm";
4
5 meta = {
6 maintainers = with lib.maintainers; [ ocfox ];
7 };
8
9 nodes.machine =
10 { pkgs, ... }:
11 {
12 services.nginx = {
13 enable = true;
14 statusPage = true;
15 };
16 # realm need DNS resolv server to run or use config.dns.nameserver
17 services.resolved.enable = true;
18
19 services.realm = {
20 enable = true;
21 config = {
22 endpoints = [
23 {
24 listen = "0.0.0.0:1000";
25 remote = "127.0.0.1:80";
26 }
27 ];
28 };
29 };
30 };
31
32 testScript = ''
33 machine.wait_for_unit("nginx.service")
34 machine.wait_for_unit("realm.service")
35
36 machine.wait_for_open_port(80)
37 machine.wait_for_open_port(1000)
38
39 machine.succeed("curl --fail http://localhost:1000/")
40 '';
41
42}