SOGo is a free and modern scalable groupware server. It provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV, CardDAV and GroupDAV, as well as Microsoft ActiveSync. SOGo offers shared calendars, address books, and emails through your favourite Web browser and by using a native client such as Mozilla Thunderbird and Lightning.
In this article, we will provide you with the steps needed for installing SOGo on a Debian 8 VPS.
REQUIREMENTS
We will be using our SSD 1 Linux VPS Hosting plan for this tutorial.
Login to your server via SSH
# ssh root@server_ip
You can check whether you have the proper version of Debian installed on our server with the below command:
# lsb_release -a
Which should give you the underneath output:
Distributor ID: Debian Description: Debian GNU/Linux 8.2 (jessie) Release: 8.2 Codename: jessie
UPDATE THE SYSTEM
Make sure your server is fully up to date.
# apt-get update && apt-get upgrade
Next thing you need to to is to add the SOGo repository to your server sources. We will use vim as our text editor, but free to use the one which suits your skills the most.
# vim /etc/apt/sources.list
Once you open /etc/apt/sources.list, add the below line at the bottom of the file:
# deb http://inverse.ca/debian jessie jessie
In order to verify the SOGo builds signature, their GPG public key has to be added into apt keyring. To do so, run the following command:
# apt-key adv --keyserver keys.gnupg.net --recv-key 0x810273C4
Update the package index:
# apt-get update
INSTALL SOGO
Use the below command to install SOGo and some necessary applications:
# apt-get install sogo sope4.9-gdl1-mysql memcached rpl
Then, enable some much needed Apache modules:
# a2enmod proxy proxy_http headers rewrite
Restart Apache for the changes to take effect:
# service apache2 restart
Remove the tmpreader warning:
# rpl 'SHOWWARNING=true' 'SHOWWARNING=false' /etc/tmpreaper.conf
Configure Memcached:
# rpl '127.0.0.1' localhost /etc/memcached.conf
Next run the MySQL post-installation script mysql_secure_installation:
# mysql_secure_installation
Configure it like this:
- Set root password? [Y/n] y - Remove anonymous users? [Y/n] y - Disallow root login remotely? [Y/n] y - Remove test database and access to it? [Y/n] y - Reload privilege tables now? [Y/n] y
Restart MySQL and Memcached:
# service mysql restart # service memcached restart
Now, create a database for SOGo. Enter MySQL as root:
# mysql -u root -p mysql> CREATE DATABASE sogo; mysql> GRANT ALL ON sogo.* TO 'sogou'@'localhost' IDENTIFIED BY 'your_password'; mysql> USE sogo; mysql> CREATE TABLE sogo_users (c_uid VARCHAR(10) PRIMARY KEY, c_name VARCHAR(10), c_password VARCHAR(32), c_cn VARCHAR(128), mail VARCHAR(128)); mysql> INSERT INTO sogo_users VALUES ('tom', 'tom', MD5('your_password'), 'Tom User', 'tom@daywalker.cf'); mysql> flush privileges; mysql> exit
The SOGo configuration has to be done by the ‘sogo‘ user itself. Enter the below commands and replace the ‘your_domain‘ and ‘your_password‘ values with your actual domain and password that you used in the above database creation procedure:
# su - sogo -s /bin/bash # defaults write sogod SOGoTimeZone "US/Central" # defaults write sogod SOGoMailDomain "your_domain" # defaults write sogod SOGoLanguage "English" # defaults write sogod SOGoUserSources '({canAuthenticate = YES; displayName = "SOGo Users"; id = users; isAddressBook = YES; type = sql; userPasswordAlgorithm = md5; viewURL ="mysql://sogoUSER:your_password@127.0.0.1:3306/sogoDB/sogo_users";})' # defaults write sogod SOGoProfileURL 'mysql://sogoUSER:your_password@127.0.0.1:3306/sogoDB/sogo_user_profile' # defaults write sogod OCSFolderInfoURL 'mysql://sogoUSER:your_password@127.0.0.1:3306/sogoDB/sogo_folder_info' # defaults write sogod OCSSessionsFolderURL 'mysql://sogoUSER:your_password@127.0.0.1:3306/sogoDB/sogo_sessions_folder' # defaults write sogod SOGoAppointmentSendEMailNotifications YES # defaults write sogod SOGoLoginModule Calendar # defaults write sogod SOGoSieveScriptsEnabled YES # defaults write sogod SOGoSieveServer sieve://localhost:4190 # defaults write sogod SOGoVacationEnabled YES # defaults write sogod SOGoMailMessageCheck every_5_minutes # defaults write sogod SOGoFirstDayOfWeek 1 # defaults write sogod SOGoSuperUsernames '( "admin" )' # defaults write sogod SOGoDraftsFolderName "INBOX.Drafts" # defaults write sogod SOGoSentFolderName "INBOX.Sent" # defaults write sogod SOGoTrashFolderName "INBOX.Trash" # defaults write sogod NGImap4ConnectionStringSeparator "." # exit
Configure SOGo configuration file:
# sed -i 's#yourhostname#your_domain#g' /etc/apache2/conf-available/SOGo.conf # sed -i 's#"x-webobjects-server-port" "443"#"x-webobjects-server-port" "80"#' /etc/apache2/conf-available/SOGo.conf # sed -i 's#https#http#' /etc/apache2/conf-available/SOGo.conf
Restart SOGo:
# service sogo restart
Now, open your favorite browser and navigate to http://your_domain/SOGo . You should see the same page as the one in the image below:
That’s it. You have successfully installed SOGo on a Debian 8 VPS.
Of course you don’t have to do any of this if you use one of our Linux VPS Hosting services, in which case you can simply ask our expert Linux admins to install SOGo for you. They are available 24×7 and will take care of your request immediately.
PS. If you liked this post please share it with your friends on the social networks using the buttons on the left or simply leave a reply below. Thanks.
Good tutorial works, but is the only detail that does not allow user authentication, :(
Hey Juan, for more information on using/configuring SOGO, please refer to their official guide at:
http://www.sogo.nu/files/docs/SOGo%20Installation%20Guide.pdf
You may also find this article useful:
http://www.openchange.org/cookbook/backends/sogo/#sogo-backend-setup
This tutorial does not work anymore — Inverse wants now to get paid for using their repository.
I was using Sogo for 10 years, but now I need to find a different solution. Suggestions are welcome!
What this company is doing is a security nightmare to all of its users!
Sometimes I am really wondering who makes decisions like that in a company?
You can try Citadel. It is an open source messaging and collaboration platform that has lot of useful features, such as managing emails, calendars, scheduling, instant messaging and other collaboration tools.