What is SOGo ?
SOGo (formerly named Scalable OpenGroupware.org) is an open source collaborative software (groupware) server with a focus on simplicity and scalability. It is developed in Objective-C using PostgreSQL, Apache, and IMAP.
SOGo provides collaboration for Mozilla Thunderbird/Lightning, Microsoft Outlook, Apple iCal/iPhone and BlackBerry client users. Its features include the ability to share calendars, address books and e-mail using an open source, cross-platform environment. The Funambol middleware and the Funambol SOGo Connector allow SyncML clients to synchronize contacts, events and tasks.
SOGo supports standard groupware capabilities including CalDAV, CalDAV auto-scheduling, CardDAV, WebDAV Sync, WebDAV ACLs, and iCalendar.
Microsoft Outlook support is provided through an OpenChange storage provider to remove the MAPI dependency for sharing address books, calendars and e-mails. Native connectivity to Microsoft Outlook allows SOGo to emulate a Microsoft Exchange server to Outlook clients.
(source : Wikipedia contributors, "SOGo," Wikipedia, The Free Encyclopedia, https://en.wikipedia.org/w/index.php?title=SOGo&oldid=731475399 (accessed August 5, 2016). )
Use with care and contribute to Inverse Inc
This image is in use in a organization of 80 people, without any known problem (except when we migrated from 2.3 to 3.2, see above).
Since July 2016, Inverse Inc. ask for some support to provide debian packages. This should help them to increase their investments in SOGo. If you can afford this, you should consider getting support on Inverse Inc.
How to use this image
This image requires :
- a working IMAP and SMTP server (not provided under docker container) ;
- a postgresql / mysql database ;
- memcached ;
- some way to authenticate user: LDAP, SQL table, ... (see the docs)
- a configuration file
This container only execute the
sogod process, taking into account the best practice "running one process per container".
In order to run it You should create an adapt a config file to your needs, using the docs. This file should be recorded into the container as
Using the command line
TO BE DONE
This is a
docker-compose.yml file you could adapt to launch this image :
Note : the docker compose file in this project can be used, but it is using a non-standard port. After login, if you use a different port thant port 80, the redirection will not work and you will be redirected to
http://localhost/SOGo/<your path> instead of
http://localhost:8080/SOGo/<your path>. Simply add the missing port part (replace
version: '2' services: sogo: # if you prefer building by yourself build: context: . args: # replace by your desired version version: x.x.x # if you prefer using a pre-built image (replace by your desired version) # image: julienfastre/sogo:x.x links: - db volumes: # replace by your own file - /path/to/your/file/sogo.conf:/etc/sogo/sogo.conf environment: # set the timezone in environment (see https://serverfault.com/a/826222/194817) - "TZ=Europe/Brussels" db: image: postgres:9.5 # for debug purpose only: reach the database from outside #ports: # - "5432" memcached: image: memcached:1.4-alpine nginx: image: nginx links: - sogo volumes_from: # you will be able to serve assets from sogo image - sogo:ro ports: # publish on port 80 - "80:80" # if port 80 is already in use, **replace** by this line. (for testing only) Note that, after login, you will have to add the ":8080" in url # - "8080:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro
You should then be able to reach sogo on http://localhost:PORT/SOGo. Using the actual
nginx.conf file and using a different port than the port 80 or 443, after login, you will encounter an http error on page
http://localhost/SOGo/<something> Simply re-add the PORT number to reach correct server.
How to build this image
version is required to build this image.
Example of how to build this image :
# download sources $ git clone https://framagit.org/julienfastre/docker-sogo.git $ cd docker-sogo # launch the build using specific version (replace with your own version) $ docker build --build-arg version=x.x.x .
The timezone may be set in environement, using the
TZ variable. See example in
migrating from 2.3 to 3.1|3.2 using docker-compose
The assets (css, js, ...) are contained in a volume. Those assets are completely different from version 2.3 to version 3.1 and 3.2. If you used
docker-compose and migrated from 2.3 to 3.2, you have to either :
- remove the volume containing those assets, to let a clean place for the asset for the new version.
- or use an anonymous volume, which will be re-created on each restart
Usage of sendmail /
Sendmail is not installed in this image: sogo must be able to send mails using a smtp server. The
sogo.conf file must have the option
smtp. See the section "SMTP Server Configuration" of the sogo manual.
Please reports bug on https://github.com/julienfastre/docker-sogo/issues