Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status


sogo (8) Versions 0.3.4

Installs and configures SOGo groupware server solution

cookbook 'sogo', '= 0.3.4', :supermarket
cookbook 'sogo', '= 0.3.4'
knife supermarket install sogo
knife supermarket download sogo
Quality -%

sogo Cookbook

This cookbook installs and configures SOGo, an open source groupware server solution.



  • sogo - main package of the solution.
  • sope4.9-gdl1-postgresql - postgresql connector for SOPE's fork of the GNUstep database libraries.


  • apache2
  • apt
  • database
  • postgreql


For now just Debian or Ubuntu. Other Linux based distributions where SOGo works could be supported with some adaptations


Only manual testing has be done


  • node['sogo']['db_host'] - server host for SOGo database
  • node['sogo']['db_name'] - name of SOGo database
  • node['sogo']['db_user'] - user to connect to SOGo database
  • node['sogo']['db_password'] - password to connect to SOGo database
  • node['sogo']['web_app_name'] - name to use when creating virtual host file for Apache
  • node['sogo']['use_vhost'] - if true a new virtual host file will be created, if false a file within /etc/apache2/conf.d/ will be created and it's assumed that will work with the existing default virtual host of Apache
  • node['sogo']['web_app_dns_name'] - DNS name to access to the SOGo installation, when using a virtual host
  • node['sogo']['imap_server'] - address of IMAP server that SOGo will connect to
  • node['sogo']['smtp_server'] - address of SMTP server that SOGo will connect to
  • node['sogo']['specific_config_json'] - complementary configuration to get a working SOGo installation. It's specific for each deployment scenario and it's empty by default



To work with a PostgreSQL database for SOGo and the default recipe, some attributes must be set and then include the recipes. A simple example configuration authenticating via LDAP or via SQL will look like this:

node.default['sogo']['specific_config_json'] = <<-EOH
  "SOGoLanguage": "Spanish",
  "SOGoTimeZone": "America/Caracas",
  "SOGoPageTitle": "My SOGo",
  "SOGoEnableDomainBasedUID": true,
  "domains": {
    "myLdap": {
      "SOGoMailDomain": "",
      "SOGoUserSources": [{
        "id": "myldapId",
        "type": "ldap",
        "CNFieldName": "cn",
        "UIDFieldName": "uid",
        "IDFieldName": "mail",
        "bindFields": ["uid", "mail"],
        "baseDN": "dc=yourdomainhere,dc=com",
        "bindDN": "cn=some_read_only_connection_user,dc=yourdomainhere,dc=com",
        "bindPassword": "a_very_hard_password_that_is_unguessable",
        "canAuthenticate": true,
        "IMAPLoginFieldName": "mail",
        "displayName": "Shared AddressBook",
        "hostname": "ldap://your_ldap_server_host_here:your_ldap_server_port_here",
        "isAddressBook": true
    "sqlDomains": {
      "SOGoUserSources": [{
        "id": "sqlDomainsId",
        "type": "sql",
        "viewURL": "postgresql://other_connection_user:other_connection_password@other_database_server:5432/other_database_name/other_table_or_view",
        "canAuthenticate": true,
        "isAddressBook": true,
        "displayName": "Another Shared AddressBook",
        "userPasswordAlgorithm": "SHA"

node.default['sogo']['web_app_dns_name'] = ''
node.default['sogo']['use_vhost'] = true

# order is important: default recipe is needed before pgdb to configure APT repository for SOGo
include_recipe "sogo::default"
include_recipe "sogo::pgdb"

Note that the value of node.default['sogo']['specific_config_json'] will be merged with the hardcoded values of templates/default/sogo_base_config.json.erb. In that merging the specific values have higher precedence, so for example, to use another SMTP server just include this value to node.default['sogo']['specific_config_json']:

node.default['sogo']['specific_config_json'] = <<-EOH
  "SOGoSMTPServer": "",


Use it, fork it and every improvement, comment and correction will be welcomed.

License and Authors

  • Author:: Rodolfo Castellanos: rodolfojcj at

  • Copyright:: 2014, OpenSinergia

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.

Dependent cookbooks

apt >= 0.0.0
apache2 >= 0.0.0
database >= 0.0.0
postgres >= 0.0.0

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

No quality metric results found