59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| import ./make-test-python.nix ({ pkgs, ... }: {
 | |
|   name = "sogo";
 | |
|   meta = with pkgs.stdenv.lib.maintainers; {
 | |
|     maintainers = [ ajs124 das_j ];
 | |
|   };
 | |
| 
 | |
|   nodes = {
 | |
|     sogo = { config, pkgs, ... }: {
 | |
|       services.nginx.enable = true;
 | |
| 
 | |
|       services.mysql = {
 | |
|         enable = true;
 | |
|         package = pkgs.mysql;
 | |
|         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")
 | |
|   '';
 | |
| })
 | 
