Aloha!
I'm having issues establishing a fully valid sogo.conf. Looking over it, it
appears to be syntactically correct to me, but I could be missing something.
At first I thought it was a file permissions issue because it didn't occur to
me that the error could mean that sogod refuses to use the configuration
because it is not valid, in addition to throwing that error when it cannot open
the file for reading. In any case, permissions and ownership of /etc/sogo and
/etc/sogo.conf should be fine, but something is causing sogod to complain that
it cannot read configuration from /etc/sogo/sogo.conf, and so it aborts when I
attempt to start it or restart it. Researching the error online seems to
suggest it's a syntax error of some kind, or something wrong with the way the
file is written. I've been looking at a lot of config examples just to make
sure I'm writing things correctly, but I just can't seem to notice the issue.
I actually had it working as recently as last night, but I don't have access to
sufficient undo history to go back to its last working state, I can't seem to
pinpoint what has changed between it working last night and right now, and
after looking over the config file over and over again, nothing is standing out
as obviously wrong to me. But again, I'm probably just missing something or
don't know something (I am brand new to sogo).
Here are the details of my setup:
Versions:OS: Ubuntu 24.04.3
MariaDB: 12.0.2
Nginx: 1.29.1
SOGo: 5.12.4
Permissions/Ownership:
/etc/sogo -> 0755 root:sogo
/etc/sogo/sogo.conf -> 0600 root:sogo
/var/run/sogo -> 0755 sogo:sogo
/var/spool/sogo -> 0700 sogo:sogo
Contents of /etc/sogo/sogo.conf:
{
/* Authentication */
SOGoAuthenticationMethod = SQL;
SOGoPasswordChangeEnabled = YES;
/* MariaDB configuration */
SOGoProfileURL =
"mysql://sogo:{REDACTED}@localhost:3306/sogo/sogo_user_profile";
OCSFolderInfoURL =
"mysql://sogo:{REDACTED}@localhost:3306/sogo/sogo_folder_info";
OCSSessionsFolderURL =
"mysql://sogo:{REDACTED}@localhost:3306/sogo/sogo_sessions_folder";
SOGoUserSources = (
{
type = sql;
id = directory;
viewURL = "mysql://sogo:{REDACTED}@localhost:3306/sogo/sogo_users";
canAuthenticate = YES;
isAddressBook = YES;
displayName = "SOGo Mail Users";
MailFieldNames = ["mail"];
searchFields = ["Mail", "cn", "uid"];
userPasswordAlgorithm = md5;
}
);
/* MariaDB/SSL */
//MySQL4SSLEnabled = YES;
//MySQL4SSLKeyPath = "/mysql_keys/client-key.pem";
//MySQL4SSLCertPath = "/mysql_keys/client-cert.pem";
//MySQL4SSLCaPath = "/mysql_keys/ca-cert.pem";
/* MariaDB Encoding */
MySQL4Encoding = "utf8mb4";
/* Domains */
domains = {
{REDACTED}.{TLD} = {
SOGoMailDomain = {REDACTED}.{TLD};
SOGoTimeZone = Pacific/Honolulu;
};
{REDACTED}.{TLD} = {
SOGoMailDomain = {REDACTED}.{TLD};
SOGoTimeZone = Pacific/Honolulu;
};
{REDACTED}.{TLD} = {
SOGoMailDomain = {REDACTED}.{TLD};
SOGoTimeZone = Pacific/Honolulu;
};
{REDACTED}.{TLD} = {
SOGoMailDomain = {REDACTED}.{TLD};
SOGoTimeZone = Pacific/Honolulu;
};
{REDACTED}.{TLD} = {
SOGoMailDomain = {REDACTED}.{TLD};
SOGoTimeZone = Pacific/Honolulu;
};
{REDACTED}.{TLD} = {
SOGoMailDomain = {REDACTED}.{TLD};
SOGoTimeZone = Pacific/Honolulu;
};
};
/* Mail */
SOGoIMAPServer = localhost;
SOGoSieveServer = "sieve://127.0.0.1:4190";
SOGoSMTPServer = 127.0.0.1;
SOGoMailingMechanism = smtp;
SOGoForceExternalLoginWithEmail = NO;
SOGoMailSpoolPath = /var/spool/sogo;
NGImap4ConnectionStringSeparator = "/";
/* Folders */
SOGoDraftsFolderName = Drafts;
SOGoSentFolderName = Sent;
SOGoTrashFolderName = Trash;
SOGoJunkFolderName = Spam;
/* Notifications */
SOGoAppointmentSendEMailNotifications = YES;
SOGoACLsSendEMailNotifications = NO;
SOGoFoldersSendEMailNotifications = NO;
/* Calendar */
SOGoCalendarDefaultRoles = (
PublicDAndTViewer,
ConfidentialDAndTViewer
);
/* Web Interface */
SOGoVacationEnabled = YES;
SOGoForwardEnabled = YES;
SOGoSieveScriptsEnabled = YES;
SOGoMailAuxiliaryUserAccountsEnabled = YES;
SOGoTrustProxyAuthentication = NO;
SOGoXSRFValidationEnabled = NO;
/* General */
SOGoPageTitle = "SOGo Mail";
SOGoLanguage = English;
SOGoSuperUsernames = (administrator); // This is an array - keep the parens!
SxVMemLimit = 384;
WOPidFile = "/var/run/sogo/sogo.pid";
SOGoMemcachedHost = 127.0.0.1;
/* ActiveSync */
WOWorkersCount = 15;
WOWatchDogRequestTimeout = 59;
SOGoMaximumPingInterval = 3540;
SOGoMaximumSyncInterval = 3540;
SOGoInternalSyncInterval = 30;
/* Debug */
SOGoDebugRequests = YES;
SoDebugBaseURL = YES;
ImapDebugEnabled = YES;
LDAPDebugEnabled = YES;
PGDebugEnabled = YES;
MySQL4DebugEnabled = YES;
SOGoUIxDebugEnabled = YES;
WODontZipResponse = YES;
WOLogFile = /var/log/sogo/sogo.log;
}
Can anyone help me spot what's wrong with this config? General advice about it
is also welcome. Even when I was able to start sogod without error and visit
the site, sogod didn't successfully make a database connection and populate it
with missing tables.
Cheers!
--
Secured with Tuta Mail:
https://tuta.com/free-email