Little roadmap nethserver SOGo module

Here 's the little roadmap for fixing/updating the SOGo nethserver module. :slight_smile:

Without severe setbacks 1 to 4 will be done by the next week,
although i need some help with the httpd configuration (thx @stephdl)

Hopefully shorty after you can find it in testing.

Fix basic functionality #1

  • Refactor https SOGo.conf restore proxy pass RequestHeader set
  • Fix https rewrite’s
  • Change Ldap login with user@domain

Fix ActiveSync & DAV support #2

  • Provide rewrite rules for ActiveSync & DAV (Not pretty, it works)
  • restore proxy pass for ActiveSync

(take notice of conflicting services with webtop)

Fix Virtualhost support #3

  • Refactor to new NS7 (virtual) host implementation

(Could just be wrapping httpd SOGo.conf in a virtualhost is enough)

Fix and clean-up nethserver-sogo-events #4
(re)implement sogo-tool actions:

  • nethserver-sogo-delete-user
  • nethserver-sogo-backup-user
  • nethserver-sogo-migrate: yes and no; although SOGo doesn’t authenticate through pam: more info


  • createlinks: 50%
  • ???

Fix Android ActiveSync support #5

Problem is dovecot uses the root (/) for the inbox.
android likes to have /INBOX
An alias namespace in dovecot.conf could be the solution

namespace compat_android_ac {
  separator = /
  prefix = INBOX/
  inbox = no
  hidden = yes
  list = no
  alias_for =

Did I forget something, are there other issues ? let me know !

@dev_team I introduce a dav enabled/disabled db entry and assume Webtop (5.0) is getting this too so user can choose which cal/carddav they want to use. I give Webtop preference in Dav and (the existing) Active Sync.


where the sources are available ?

working in my wip branch


ok, not sure it can help you, but I put also my hand in sogo for sme maybe, some ideas can be imported.


Looks good to me!

You’re doing a great job, ping me (even in pvt) if you need help on specific topics :wink:


and shared, I hope, my friend :slight_smile:


This guy just deserves a :medal:
Fantastic work @mark_nl


Your goals sound good to me, in fact I think every module should have a Roadmap like this! :thinking:
As @giacomo already said, me @Stll0 @giacomo and @davidep did some work in the past on SOGo templates. If you need help just ask! :point_up:

1 Like

Thanks for the good work!

Since WebTop is not yet ready in my eyes, I’m glad that you and others, Sogo cultivate and care about it!

Thank you!

best regards



Just thinking out loud about the virtualhost configuration;

SOGo is by default exposed to all (virtual)hosts, ie all FQDN/SOGo known by apache.

We don’t need the Virtualhosts db property for SOGo :grinning:
Or use it for one exclusive virtualhost and stop exposing it to all other (virtual)hosts;
use the default SSL certificate or (if present) a certificate called sogo.crt

What do you think?
Do this?

(Thx to all of you, It is more fun working on something appreciated)


@dev_team or others

is the sAMAccountName the full username ie user@domain or just user?

asking to get nethserver-sogo-delete-user working.

IIRC that attribute stores the old NT username. Thus it has no @domain suffix.

I’m trying to configure sssd to support also the traditional “short” username. Please comment here:


More Votes … last thing to round up

1 Like

Almost done, for none detail i like your help (no rush),
Its the Dashboard (application) module in this:

public function getInfo()
     $host = explode(':',$_SERVER['HTTP_HOST']);
     return array(
        'url' => "https://".$host[0]."/SOGo/"

I need (pseudo code)

if sogod db prop 'VirtualHost' exists;
      $host = sogod db prop 'VirtualHost';
    $host = explode(':',$_SERVER['HTTP_HOST']);

EDIT and just don’t get what is wrong with this perl:
We need some of some.crt

if ($sogo_cert =~ /./) {
       $sogo_cert = (split(/./, $sogo_cert))[0];

Escape the . \.

thanx in advance.

1 Like

You need something like this (not very elegant):

public function getInfo()
     $vhost = $this->getPlatform()->getDatabase('configuration')->getProp('sogod,'VirtualHost');
     if ($vhost) {
         return array('url' => "https://".$vhost."/SOGo/");
     } else {
         $host = explode(':',$_SERVER['HTTP_HOST']);
         return array(
            'url' => "https://".$host[0]."/SOGo/"

Why not use the default certificate? Just use /etc/pki/tls/certs/localhost.crt

1 Like


its a changed functionality[quote=“mark_nl, post:16, topic:4783”]
and is accessible
Oops :hushed: and is not accessible

If I understand correctly, you would give the chance to choose a custom certificate for SOGo virtual host.
I’m not against it, but I can’t figure out why you need it.

Let’s assume this scenario:

If you need a valid SSL certificate for SOGo virtual host, you can simply create a new Let’s Encrypt certificate with multiple domain names and use it also for the specific virtual host.
Please, also take note that you should take care of the chain file :wink:

User case i had in mind was (ie a specific mail domain)

Tnx, :slight_smile:

LE works even with different domains :wink:

EDIT forgot this: Still have to look in LE

I did not succeed is redirecting https: > https://somthing_else.

The only way i figured out to get this working is warping the hole httpd sogo.conf in a virtual host,
or make a virtualhost in the service manager for this sole purpose.
And a personal preference, i dont like SOGo to be exposed to all other hosts. Note (as is) doesn’t get redirected.
Have to say, webthingy’s is my blind spot so open for suggestions :grin: