at 22.05-pre 3.2 kB view raw
1import ../make-test-python.nix ({pkgs, ...}: 2{ 3 name = "peertube"; 4 meta.maintainers = with pkgs.lib.maintainers; [ izorkin ]; 5 6 nodes = { 7 database = { 8 networking = { 9 interfaces.eth1 = { 10 ipv4.addresses = [ 11 { address = "192.168.2.10"; prefixLength = 24; } 12 ]; 13 }; 14 firewall.allowedTCPPorts = [ 5432 6379 ]; 15 }; 16 17 services.postgresql = { 18 enable = true; 19 enableTCPIP = true; 20 authentication = '' 21 hostnossl peertube_local peertube_test 192.168.2.11/32 md5 22 ''; 23 initialScript = pkgs.writeText "postgresql_init.sql" '' 24 CREATE ROLE peertube_test LOGIN PASSWORD '0gUN0C1mgST6czvjZ8T9'; 25 CREATE DATABASE peertube_local TEMPLATE template0 ENCODING UTF8; 26 GRANT ALL PRIVILEGES ON DATABASE peertube_local TO peertube_test; 27 \connect peertube_local 28 CREATE EXTENSION IF NOT EXISTS pg_trgm; 29 CREATE EXTENSION IF NOT EXISTS unaccent; 30 ''; 31 }; 32 33 services.redis = { 34 enable = true; 35 bind = "0.0.0.0"; 36 requirePass = "turrQfaQwnanGbcsdhxy"; 37 }; 38 }; 39 40 server = { pkgs, ... }: { 41 environment = { 42 etc = { 43 "peertube/password-posgressql-db".text = '' 44 0gUN0C1mgST6czvjZ8T9 45 ''; 46 "peertube/password-redis-db".text = '' 47 turrQfaQwnanGbcsdhxy 48 ''; 49 }; 50 }; 51 52 networking = { 53 interfaces.eth1 = { 54 ipv4.addresses = [ 55 { address = "192.168.2.11"; prefixLength = 24; } 56 ]; 57 }; 58 extraHosts = '' 59 192.168.2.11 peertube.local 60 ''; 61 firewall.allowedTCPPorts = [ 9000 ]; 62 }; 63 64 services.peertube = { 65 enable = true; 66 localDomain = "peertube.local"; 67 enableWebHttps = false; 68 69 database = { 70 host = "192.168.2.10"; 71 name = "peertube_local"; 72 user = "peertube_test"; 73 passwordFile = "/etc/peertube/password-posgressql-db"; 74 }; 75 76 redis = { 77 host = "192.168.2.10"; 78 passwordFile = "/etc/peertube/password-redis-db"; 79 }; 80 81 settings = { 82 listen = { 83 hostname = "0.0.0.0"; 84 }; 85 instance = { 86 name = "PeerTube Test Server"; 87 }; 88 }; 89 }; 90 }; 91 92 client = { 93 environment.systemPackages = [ pkgs.jq ]; 94 networking = { 95 interfaces.eth1 = { 96 ipv4.addresses = [ 97 { address = "192.168.2.12"; prefixLength = 24; } 98 ]; 99 }; 100 extraHosts = '' 101 192.168.2.11 peertube.local 102 ''; 103 }; 104 }; 105 106 }; 107 108 testScript = '' 109 start_all() 110 111 database.wait_for_unit("postgresql.service") 112 database.wait_for_unit("redis.service") 113 114 database.wait_for_open_port(5432) 115 database.wait_for_open_port(6379) 116 117 server.wait_for_unit("peertube.service") 118 server.wait_for_open_port(9000) 119 120 # Check if PeerTube is running 121 client.succeed("curl --fail http://peertube.local:9000/api/v1/config/about | jq -r '.instance.name' | grep 'PeerTube\ Test\ Server'") 122 123 client.shutdown() 124 server.shutdown() 125 database.shutdown() 126 ''; 127})