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

Reply via email to