Support #377
Updated by Daniel Curtis about 10 years ago
Zimbra is one of the top contenders of Microsoft Exchange services (email, calendar, employee collaboration, etc.) in the Open Source Community. Here is a blurb from their site:
> Zimbra Community is an online community and private social networking solution designed to enhance customer support and increase employee productivity.
Unfortunately, the supported Operating Systems for Zimbra are rather old (Ubuntu 12.04 / Debian 5) and it does not support FreeBSD either. I do not want to dedicate a physical box to so I have chosen to build Zimbra 8 from source in a FreeNAS Jail, which is just a FreeBSD 9.2 virtual server. This guide assumes that the server has already been setup and SSH access has been obtained.
h2. (Option 1) Installing the unofficial binary
* Start by refreshing the ports tree:
<pre>
portsnap fetch extract
pkg install bash
</pre>
* And install a few prerequisite PERL Modules:
<pre>
pkg install p5-DBI p5-Data-UUID p5-Net-DNS-Resolver-Programmable p5-NetAddr-IP
</pre>
* Then build the Zimbra run dependencies from source:
*# Download the zimbra-rundeps port from an external source (I will include a copy for posterity) and add it to the ports tree:
<pre>
mkdir /home/user/src/ && cd /home/user/src/
wget http://zimbra.imladris.sk/download/ports/usrports_zimbra-rundeps-8.0.8.tgz
tar xzf usrports_zimbra-rundeps-8.0.8.tgz
cp -r zimbra-rundeps /usr/ports/net/
</pre>
*# Build the dependencies
<pre>
cd /usr/ports/net/zimbra-rundeps
make install clean
</pre>
* Next download and install Zimbra 8.0.8 (I will include a copy for posterity)
<pre>
cd /home/user/src
wget http://zimbra.imladris.sk/download/zimbra-packages/IRONMAIDEN-808/zcs-8.0.8_GA_6038.FreeBSD_amd64.20140410114750.tgz
tar xzf zcs-8.0.8_GA_6038.FreeBSD_amd64.20140410114750.tgz
cd zcs-8.0.8_GA_6038.FreeBSD_amd64.20140410114750/
./FreeBSD_amd64.install.sh
y
y
</pre>
NOTE: This will also prompt to automagically install the zimbra-rundep dependency. Select Y to continue installing Zimbra.
h3. Configure Zimbra
When the install finished, a prompt will appear. The admin password needs to be set before continuing:
<pre>
3
4
SuperSecretPassword
r
a
</pre>
When the installation finished, point a web browser at the newly create Zimbra server and login using the admin credentials provided during configuration.
NOTE: To download the Desktop Client Applications, go to *http://zimbra.example.com/downloads/index.html*.
This method worked to get Zimbra installed; the following versions are recorded in hopes to documents building Zimbra fully from source.
h2. (Option 2) -Building Zimbra from git source-
*WARNING*: I have yet been able to successfully build Zimbra from source on FreeBSD 9.2.
* To begin, we need to install some dependencies.
<pre>
pkg install git bash wget p5-DBI p5-Data-UUID p5-Net-DNS-Resolver-Programmable p5-NetAddr-IP libltdl
</pre>
* Next refresh the ports tree:
<pre>
portsnap fetch extract
pkg install bash
</pre>
h3. Add the Zimbra git development keys:
* Obtain the git ssh access keys
<pre>
mkdir -p /tmp/zimbra-git
cd /tmp/zimbra-git
wget http://files2.zimbra.com/downloads/git-fusion/zimbra-git-ssh.tgz
tar xfz zimbra-git-ssh.tgz
</pre>
* Add the access keys to your own user account:
<pre>
cd ~/.ssh
cp /tmp/zimbra-git/id_rsa_git* .
</pre>
* Add the following @~/.ssh/config@. Create the file if it doesn't exist:
<pre>
Host zimbra-git
User public
Hostname git.zimbra.com
IdentityFile ~/.ssh/id_rsa_git
IdentitiesOnly yes
Port 1067
</pre>
h3. Build the Zimbra dependencies from source:
* Download the zimbra-builddeps port from an external source (I will include a copy for posterity) and add it to the ports tree:
<pre>
portsnap fetch extract
cd /usr/ports/mail
wget http://zimbra.imladris.sk/download/ports/usrports_zimbra-builddeps-8.0.8.tgz
wget http://zimbra.imladris.sk/download/ports/usrports_zimbra-rundeps-8.0.8.tgz
tar xzf usrports_zimbra-builddeps-8.0.8.tgz
tar xzf usrports_zimbra-rundeps-8.0.8.tgz
</pre>
* Build the Zimbra build dependencies
<pre>
cd /usr/ports/mail/zimbra-builddeps
make install clean
</pre>
* Build the Zimbra run dependencies
<pre>
cd /usr/ports/mail/zimbra-rundeps
make install clean
</pre>
* Next download the current release of Zimbra:
<pre>
mkdir ~/git
cd ~/git
git clone git@zimbra-git:zimbra-foss
</pre>
NOTE: This took nearly 12GB of storage, so be forewarned.
* Change the current branch to the most current stable version
<pre>
cd ~/git/zimbra-foss
git checkout ironmaiden-foss
</pre>
* Then download the FreeBSD patch for Zimbra and patch the install:
<pre>
cd ~/git
wget http://zimbra.imladris.sk/download/patches/IRONMAIDEN-808-FreeBSD.patch
cd zimbra-foss
patch -p1 -s < ../IRONMAIDEN-808-FreeBSD.patch
chmod 755 ZimbraBuild/rpmconf/Spec/Scripts/FreeBSD/*
mkdir /opt/zimbra
chown zimbra:zimbra /opt/zimbra
</pre>
* Download the "Java Cryptographic Extension":http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
<pre>
mkdir -p ~/git/zimbra-foss/ThirdPartyBuilds/i386/java/jce
mkdir ~/jce && cd ~/jce
cp /path/to/jce_policy-6.zip
unzip jce_policy-6.zip
cp -r ~/jce ~/git/zimbra-foss/ThirdPartyBuilds/i386/java/
</pre>
* Compile and install Zimbra
<pre>
cd ~/git/zimbra-foss/ZimbraBuild
./buildZCS.sh -t
</pre>
This will begin a process to automatically resolve any further dependencies.
* I used the following CPAN repository, since I am not a fan of yahoo (the default):
> http://ftp.osuosl.org/pub/CPAN/
h2. Resources
* https://wiki.zimbra.com/wiki/Zimbra_on_FreeBSD
* http://www.zimbra.com/forums/installation/61938-ironmaiden-8-0-3-ported-freebsd-2.html
* https://wiki.zimbra.com/wiki/Building_Zimbra_using_Git
* http://wiki.zimbra.com/wiki/Building_IRONMAIDEN_8.0.3_on_FreeBSD_9.1_amd64