OpenGroupware-Debian-HOWTO

based on the work by Bjoern Stierand posted on the OGo-Users list [archive].

1) add the DEB repository to /etc/apt/sources.list.

Do this as root.

For Debian Sarge:

echo "deb http://download.opengroupware.org/packages/debian sarge trunk" >> /etc/apt/sources.list

For Debian Sid:

echo "deb http://download.opengroupware.org/packages/debian sid trunk" >> /etc/apt/sources.list

2) install the packages

apt-get update
apt-get install opengroupware.org


opengroupware.org is a meta package that will install all of the other opengroupware packages.

3) setup the db

You have to patch your pg_hba.conf to allow tcp host connections.  What we want is a setup that will trust connections from the localhost, but deny from other hosts.  The following will accomplish this.
# TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK           METHOD
local   all         all                                             trust
host    all         all         127.0.0.1         255.255.255.255   trust
host    all         all         0.0.0.0           255.255.255.255   reject

Some people have had problems with this.  You may need to put the following in instead.  I'm not sure why at this stage; I think perhaps the file format for woody and sid are different.  If you're running woody, try the following:

local   all                                           trust
host    all         127.0.0.1         255.255.255.0   trust
host    all         0.0.0.0           255.255.255.255 reject


You also have to make sure that you allow TCP/IP socket connections.  You do this in your
/etc/postgresql/postgresql.conf file with the line:

tcpip_socket = true

Then restart postgres with
/etc/init.d/postgresql restart.  You can see if postgres is allowing connections by looking in /var/log/syslog.

If you want get more security replace trust by password, md5 or something... depends on postgres version.  Don't forget to restart postgres after modifying these settings.  TODO: update this bit


bjoern just set pg_hba.conf to 'md5' and set a password in the LSConnectionDictionary
lamer that would work eh
lamer lemme have a go at that
lamer ident auth bad
bjoern you need to change the 'host' entries, not the 'local' ones



Now we can create the database, user and import tables:

su - postgres
createdb ogo
createuser -a -d ogo
psql ogo ogo #if you have problems with this, try psql -U ogo ogo
# [now you are on the postgresql prompt]
ogo=# \i /usr/lib/opengroupware.org/Database/PostgreSQL/pg-build-schema.psql
ogo=# \q
logout

4) setup the defaults

su - root
chown -R opengroupware.skyrix /usr/lib/opengroupware.org
su - opengroupware
source OpenGroupware.org.sh
Defaults write NSGlobalDomain LSConnectionDictionary '{hostName=localhost; userName=ogo; password=""; port=5432; databaseName=ogo}'
Defaults write NSGlobalDomain NGBundlePath "/usr/lib/opengroupware.org/Library/OpenGroupware.org"
Defaults write NSGlobalDomain LSAttachmentPath /usr/lib/opengroupware.org/documents
Defaults write NSGlobalDomain LSModelName OpenGroupware.org_PostgreSQL
Defaults write NSGlobalDomain LSAdaptor PostgreSQL72
cd WOApps/OpenGroupware.woa
ln -s ../../WebServerResources/
cd ..


Now run the OGo server.  Add the -WOHttpAllowHost <host> switch to the following cmd to connect from host <host>.  I found that localhost didn't work; I had to use my hostname (you can find your hostname using the command hostname):

/usr/lib/opengroupware.org/WOApps/OpenGroupware.woa/ix86/linux-gnu/gnu-fd-nil/OpenGroupware -WOHttpAllowHost <host>

If you want to be able to connect from more than one system, you can use the following syntax:

-WOHttpAllowHost '([your-host],[your-host2])'

Now connect to the installation at http://localhost:20000/OpenGroupwareIf you want to access the system from another host, you will need to add the hostname to the /etc/hosts file so that OGo doesn't barf when trying to do the hostname lookup.

This is not really satisfactory, though.  What we will do now is set up Apache as the front end to OGo so that it can do all the hard work of the HTTP requests for us.  This will allow us to connect from hosts without specifying them on the command line.

5) set up the Apache front end

A new version of the apache module has been uploaded.  It now supports Apache 1.3 and 2.  It can be had here.

After you download the archive and extract the files, adjust the Makefile (which is called GNUmakefile) so that it points to the right directories.

Look for the section just under the line with
# config on it.  Set the following variables:

APXS   = /usr/bin/apxs
HTTPD  = /usr/sbin/apache  # or /usr/sbin/apache-perl if you're using the mod-perl version of apache


Also note that there's another line with
#HTTPD = /usr/sbin/httpd on it a bit further down.  Comment this out or delete it.  Also update the APACHE_VERSION = line to reflect the version you have installed (1.3.27 on sid, 1.3.26 on woody).

You need to have an Apache, its header files and the 'apxs' tool installed on your system.  You can get these from the
apache-dev package. Now type make. This will create the file, ngobjweb-x.xx.so (where x.xx is your Apache version).

Create the directory
/usr/lib/opengroupware.org/WebServer and copy ngobjweb-x.xx.so there.

Now become root (
su - root) edit the Apache config file (usually located at /etc/apache/httpd.conf or /etc/httpd/httpd.conf) and add the following entries:

LoadModule ngobjweb_module /usr/lib/opengroupware.org/WebServer/ngobjweb_1.3.27.so
(if you're using woody, then the version number above will be 1.3.26)

<LocationMatch "^/OpenGroupware/*">
  SetHandler ngobjweb-adaptor
  SetAppPort 20000
</LocationMatch>

Alias /OpenGroupware.woa/WebServerResources/ \
      /usr/lib/opengroupware.org/WebServerResources/


Adjust the paths to match your system. Now start the OpenGroupware.org application (by hand for testing; the init scripts are below for every day use).  Start the OGo server:

su - opengroupware
cd ~
source
OpenGroupware.org.sh # (this may no longer be necessary, depending on the contents of your .bash_profile)
/usr/lib/opengroupware.org/WOApps/OpenGroupware.woa/ix86/linux-gnu/gnu-fd-nil/OpenGroupware -WOHttpAllowHost <hostname>

and connect to it through 'http://your.web.server/OpenGroupware'.

6) Init Scripts

Jeremy Stenke has provided an init script.  Thanks Jeremy!  I've tested it breifly and it seems to be good.  It's available here.
Henrik Holmboe has also made an init script which seems to do a better job of logging the output from OpenGroupware.  It's avaliable here.  If you use this one, make sure that you read the beginning of the script and add the relevant lines to your opengroupware
.bash_profile.

To install it (as root):

7) Getting email server to work

Cyrus IMAPD is supported.  TODO: write this section.

8) Getting news to work

TODO: write this section.

9) Interfacing with client software

Outlook, Evolution, Mozilla.

TODO: write this section.  I have sent off a request for information to sales@skyrix.com about ZideLook, but have had no response.  Interesting sales technique.  Also mailed info@skyrix.com now... waiting... waiting...

*UPDATE* 19/7/2003 They got back to me:
Dear Mr. Hutton,
thank you for your email and the interest in OpenGroupware.org.
> I'm interested in a quote for 15 licenses of the ZideLook plugin to 
> connect outlook 2000/XP with OpenGroupware.org.
Thanks. The OGo Knoppix is the fastest way to get a running OGo demo, as 
it requires no installation - just boot from it and you get a working
system, including a Cyrus IMAP4 server.
In some days it will give a ZideLook Clienten to the Download. Thus can
then - in connection with the LiveCD - which are tested Outlook binding.

You can buy the OpenGroupware.org Knoppix CD on www.LinuxLand.de or
download from www.opengroupware.org. The CD costs 5 EUR plus shipping.
LinuxLand will sponsor 1 EUR of each sold copy for the production of
additional CDs at OGo.

We make further information available shortly. Our distributor will
contact with you.

Yours sincerely
Silke Schwabe
I'm looking forward to it!

9) Tips for using the web based front end

When you first log into the web based front end, you're logged in as root with no password.  In order to log in to other accounts, you will have to set the root password.

Maintainer: Robert Hutton <rwh@helms-deep.cable.nu>
$Revision: 1.9 $
$Date: 2004/11/03 02:01:45 $