import ./make-test-python.nix ( { pkgs, ... }: { name = "sogo"; meta = with pkgs.lib.maintainers; { maintainers = [ ]; }; nodes = { sogo = { config, pkgs, ... }: { services.nginx.enable = true; services.mysql = { enable = true; package = pkgs.mariadb; ensureDatabases = [ "sogo" ]; ensureUsers = [ { name = "sogo"; ensurePermissions = { "sogo.*" = "ALL PRIVILEGES"; }; } ]; }; services.sogo = { enable = true; timezone = "Europe/Berlin"; extraConfig = '' WOWorkersCount = 1; SOGoUserSources = ( { type = sql; userPasswordAlgorithm = md5; viewURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_users"; canAuthenticate = YES; id = users; } ); SOGoProfileURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_user_profile"; OCSFolderInfoURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_folder_info"; OCSSessionsFolderURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_sessions_folder"; OCSEMailAlarmsFolderURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_alarms_folder"; OCSStoreURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_store"; OCSAclURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_acl"; OCSCacheFolderURL = "mysql://sogo@%2Frun%2Fmysqld%2Fmysqld.sock/sogo/sogo_cache_folder"; ''; }; }; }; testScript = '' start_all() sogo.wait_for_unit("multi-user.target") sogo.wait_for_open_port(20000) sogo.wait_for_open_port(80) sogo.succeed("curl -sSfL http://sogo/SOGo") ''; } )