at 25.11-pre 2.1 kB view raw
1import ./make-test-python.nix ( 2 { pkgs, ... }: 3 { 4 name = "sogo"; 5 meta = with pkgs.lib.maintainers; { 6 maintainers = [ ]; 7 }; 8 9 nodes = { 10 sogo = 11 { config, pkgs, ... }: 12 { 13 services.nginx.enable = true; 14 15 services.mysql = { 16 enable = true; 17 package = pkgs.mariadb; 18 ensureDatabases = [ "sogo" ]; 19 ensureUsers = [ 20 { 21 name = "sogo"; 22 ensurePermissions = { 23 "sogo.*" = "ALL PRIVILEGES"; 24 }; 25 } 26 ]; 27 }; 28 29 services.sogo = { 30 enable = true; 31 timezone = "Europe/Berlin"; 32 extraConfig = '' 33 WOWorkersCount = 1; 34 35 SOGoUserSources = ( 36 { 37 type = sql; 38 userPasswordAlgorithm = md5; 39 viewURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_users"; 40 canAuthenticate = YES; 41 id = users; 42 } 43 ); 44 45 SOGoProfileURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_user_profile"; 46 OCSFolderInfoURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_folder_info"; 47 OCSSessionsFolderURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_sessions_folder"; 48 OCSEMailAlarmsFolderURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_alarms_folder"; 49 OCSStoreURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_store"; 50 OCSAclURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_acl"; 51 OCSCacheFolderURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_cache_folder"; 52 ''; 53 }; 54 }; 55 }; 56 57 testScript = '' 58 start_all() 59 sogo.wait_for_unit("multi-user.target") 60 sogo.wait_for_open_port(20000) 61 sogo.wait_for_open_port(80) 62 sogo.succeed("curl -sSfL http://sogo/SOGo") 63 ''; 64 } 65)