at master 1.8 kB view raw
1{ pkgs, ... }: 2{ 3 name = "owncast"; 4 meta = with pkgs.lib.maintainers; { 5 maintainers = [ MayNiklas ]; 6 }; 7 8 nodes = { 9 client = 10 { pkgs, ... }: 11 with pkgs.lib; 12 { 13 networking = { 14 dhcpcd.enable = false; 15 interfaces.eth1.ipv6.addresses = mkOverride 0 [ 16 { 17 address = "fd00::2"; 18 prefixLength = 64; 19 } 20 ]; 21 interfaces.eth1.ipv4.addresses = mkOverride 0 [ 22 { 23 address = "192.168.1.2"; 24 prefixLength = 24; 25 } 26 ]; 27 }; 28 }; 29 server = 30 { pkgs, ... }: 31 with pkgs.lib; 32 { 33 networking = { 34 dhcpcd.enable = false; 35 useNetworkd = true; 36 useDHCP = false; 37 interfaces.eth1.ipv6.addresses = mkOverride 0 [ 38 { 39 address = "fd00::1"; 40 prefixLength = 64; 41 } 42 ]; 43 interfaces.eth1.ipv4.addresses = mkOverride 0 [ 44 { 45 address = "192.168.1.1"; 46 prefixLength = 24; 47 } 48 ]; 49 50 firewall.allowedTCPPorts = [ 8080 ]; 51 }; 52 53 services.owncast = { 54 enable = true; 55 listen = "0.0.0.0"; 56 }; 57 }; 58 }; 59 60 testScript = '' 61 start_all() 62 63 client.systemctl("start network-online.target") 64 server.systemctl("start network-online.target") 65 client.wait_for_unit("network-online.target") 66 server.wait_for_unit("network-online.target") 67 server.wait_for_unit("owncast.service") 68 server.wait_until_succeeds("ss -ntl | grep -q 8080") 69 70 client.succeed("curl http://192.168.1.1:8080/api/status") 71 client.succeed("curl http://[fd00::1]:8080/api/status") 72 ''; 73}