Skip to content

NethServer/ns8-sogo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

64f56ae · Jan 5, 2024

History

58 Commits
Nov 21, 2023
Nov 21, 2023
Nov 21, 2023
Jan 5, 2024
Nov 21, 2023
Dec 19, 2023
Nov 21, 2023
Nov 21, 2023
Dec 19, 2023
Dec 18, 2023
Nov 21, 2023

Repository files navigation

ns8-sogo

This module intends to istall the SOGo groupware : https://www.sogo.nu/

Install

Instantiate the module with:

add-module ghcr.io/nethserver/sogo:latest 1

The output of the command will return the instance name. Output example:

{"module_id": "sogo1", "image_name": "sogo", "image_url": "ghcr.io/nethserver/sogo:latest"}

Get the configuration

You can retrieve the configuration with

api-cli run get-configuration --agent module/sogo1

Configure

Let's assume that the sogo instance is named sogo1.

Launch configure-module, by setting the following parameters:

  • host: a fully qualified domain name for the application
  • lets_encrypt: enable or disable Let's Encrypt certificate (true/false)
  • mail_server: the module UUID of the the mail server (only on NS8), for example 24c52316-5af5-4b4d-8b0f-734f9ee9c1d9
  • mail_domain: the mail domain used for user IMAP login and SOGo user identifier. It must correspond to a valid mail domain handled by mail_server where user names are valid mail addresses too
  • ldap_domain: a Ldap domain where to authenticate the users, it could be different than hostname. The ldap_domain is used to find an existing LDAP through LDAP proxy
  • admin_users: the administrator of SOGo, a comma separated list (user1,user2)
  • workers_count: The number of workers for SOGo; you need to adapt it to the numbers of users
  • auxiliary_account: Allow users to set other email accounts inside the SOGo webmail (boolean)
  • activesync: Enable the activesync protocom (boolean)
  • dav: Enable the DAV protocol (caldav,cardav) (boolean)

Example:

api-cli run configure-module --agent module/sogo1 --data - <<EOF
{
"mail_server": "f38f9911-8341-452e-8941-d889385a59a8",
"ldap_domain": "ad.rocky9-pve4.org",
"admin_users" : "Administrator",
"mail_domain": "rocky9-pve4.org",
"lets_encrypt": false,
"host": "sogo3.rocky9-pve4.org",
"workers_count": "3",
"auxiliary_account": true,
"activesync": true,
"dav": true
}
EOF

The above command will:

  • start and configure the SOGo instance
  • configure a virtual host for trafik to access the instance

Manual configuration

Some settings are not available in the UI, you need to change them manually, refer to documentation : https://www.sogo.nu/files/docs/SOGoInstallationGuide.html

ssh sogo1@::1
vim .config/state/environment

modify the settings, then restart sogo : systemctl restart --user sogo

BACKUPTIME=#30 0
DRAFTSFOLDER=Drafts
SENTFOLDER=Sent
SESSIONDURATION=1440
SOGOACLSSENDEMAILNOTIFICATIONS=NO
SOGOAPPOINTMENTSENDEMAILNOTIFICATIONS=YES
SOGOENABLEEMAILALARMS=YES
SOGOFOLDERSSENDEMAILNOTIFICATIONS=NO
SOGOINTERNALSYNCINTERVAL=30
SOGOMAXIMUMPINGINTERVAL=3540
SOGOMAXIMUMSYNCINTERVAL=3540
SOGOMAXIMUMSYNCRESPONSESIZE=2048
SOGOMAXIMUMSYNCWINDOWSIZE=100
SXVMEMLIMIT=512
WOWATCHDOGREQUESTTIMEOUT=60

Fine tuning

SOGo must be tuned https://sogo.nu/files/docs/SOGoInstallationGuide.html#_microsoft_enterprise_activesync_tuning following the number of users, some settings can be tested.

Keep in mind to set one worker per active user for the activesync connection. The SXVMEMLIMIT https://sogo.nu/files/docs/SOGoInstallationGuide.html#_general_preferences could be be adjusted also, between 25MB to 45 MB per active user with the activesync service.

Backup database

You can enable a databse backup for each users of their addressbooks and their calendars, older entries more than 31 days are removed. The syntax is cron based, in the example it will be triggered each day at 00h30. the backup is disabled by default

- BACKUPTIME=#30 0
+ BACKUPTIME=30 0

you can restore the data with a tool sogo-restore-user, for example:

sogo-restore-user /var/lib/sogo/backups/sogo-2017-12-10_0030/ stephane

or for all users:

sogo-restore-user /var/lib/sogo/backups/sogo-2017-12-10_0030/ -A

Uninstall

To uninstall the instance:

remove-module --no-preserve sogo1

Testing

Test the module using the test-module.sh script:

./test-module.sh <NODE_ADDR> ghcr.io/nethserver/sogo:latest

The tests are made using Robot Framework

UI translation

Translated with Weblate.

To setup the translation process: