65 lines
2 KiB
Nix
65 lines
2 KiB
Nix
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")
|
|
'';
|
|
}
|
|
)
|