Admins/Install Howto

From Tine 2.0 - Wiki

This guide describes how to install Tine20 in a MySQL database (including account and authentication backend).

Check the system requirements to find out, which other databases are supported and adapt the configuration to your needs.

Install packages

Download from

Download the latest version of Tine20 from and unzip the archive into your documentroot (or a subfolder) of your webserver.

Install Debian/Ubuntu packages

Alternatively you can install Debian/Ubuntu packages from the Tine 2.0 deb repository.

If you choose this installation method, you can skip steps 2 and 3 (Base configuration file / Preparing the database) as this is handled already by the install script.

1. Add the repository to /etc/apt/sources.list.d/tine20org.list

Ubuntu (only works for 14.04 and 16.04)

echo "deb $(lsb_release -sc) stable" > /etc/apt/sources.list.d/tine20org.list


echo "deb trusty stable" > /etc/apt/sources.list.d/tine20org.list

Debian (8/9)

echo "deb $(lsb_release -sc) stable" > /etc/apt/sources.list.d/tine20org.list


echo "deb jessie stable" > /etc/apt/sources.list.d/tine20org.list

2. Import the key (as root or with sudo)

(new repo key id since 2016-11-24)

apt-key adv --recv-keys --keyserver 8825FD82

if you get this error:

   gpg: failed to start the dirmngr '/usr/bin/dirmngr': No such file or directory
   gpg: connecting dirmngr at '/tmp/apt-key-gpghome.wmr2cMEj2F/S.dirmngr' failed: No such file or directory
   gpg: keyserver receive failed: No dirmngr

you need to install the dirmngr:

   apt install dirmngr

or download via wget from the repo and use "apt-key add"

3. Update sources (as root or with sudo)

apt-get update

4. Install Tine 2.0 (as root or with sudo)

apt-get install tine20

5. go to

Install Fedora packages

First import the public key used to sign the repository:<b/>

rpm --import

Then create the file /etc/yum.repos.d/ with following content:

[] repository

Now update the metadata cache...

yum makecache

... and now you can install Tine 2.0 with following command:

yum install tine20

Base configuration file

Tine20 requires a minimal configuration file, that contains at least information about how to connect to the database and an user account for the setup.

You can copy and adapt the sample file ( or create your own with the following content:

  return array(
    'database' => array(
      'host'        => '{Database hostname}',
      'dbname'      => '{Database name}',
      'username'    => '{Database username}',
      'password'    => '{Database password}',
      'port'        => '3306',
      'adapter'     => 'pdo_mysql',
      'tableprefix' => 'tine20_',
    'setupuser' => array(
      'username'    => 'tine20setup',
      'password'    => 'setup'

The user you specify here is just for entering the setup. For administrating you will create an initial admin user during the setup process.

Preparing the database

Connect to your MySQL database server using your favorite client. Create a database with UTF8 charset and connect user with the data you had entered into the 'database' array of your '':

mysql> GRANT ALL PRIVILEGES ON tine20db.* TO 'tine20user'@'localhost' IDENTIFIED BY 'tine20pw';

The first command creates the database 'tine20db'. The second one adds a user 'tine20user' with password 'tine20pw' and all privileges on the previously created database. Connections of that user are allowed only from localhost.

Start the setup GUI

Open your favorite web browser and go to http://your_webserver/path_to_tine/setup.php

Log in with the username/password you filled into the 'setupuser' array of your

Terms and conditions

After you have read the license and privacy policy, accept both by checking the two boxes below them and clicking the 'Accept' button.

Setup Checks

If all checks are successfull, you see a green check mark behind them and you can continue.

If one or more checks failed, you have to fix these problems first. See the system requirements and FAQ for first point of help and consult your PHP and database server documentation.

Config Manager

The 'setup authentication' and 'database' related fields should already been filled correctly by the information you had entered in


Logging: Specify a logfile for debugging purposes. Caching: Folder for Tine20 related caching files. Temporary files: Folder for temporary files created by Tine20. Session files: Folder for Tine20 session files (if not specified, the folder defined in the variable 'session.save_path' of your php.ini is used).

The folders you specify must already exist and be writeable by the webserver user. For security reasons, no other user should have access to them! Also for security reasons this files/folders should never be below your webservers documentroot!

To save your settings, click the 'save config' button. If your is not writeable by your webserver user, you have to download and replace the file of your installation.

Even if you haven't changed anything, you should re-save the file, because the password of your setup user is encrypted and replaced in your configuration file.


Authentication provider: This is the system Tine20 authenticate against. Leave the backend at 'SQL' and enter an initial admin login name and password. This account you can use later for administrating your installation. Leave all other fields at their default.

Accounts storage: This is the place where Tine20 saves it's account information. Leave the backend at 'SQL' and change the other values to your needs.


Redirect settings: Configure redirecting to a different page then the login screen.

If you have finished filling this dialog, click to 'Save config and install'. This could take a short while. Setup creates the initial database and configuration.


If you plan to use FeLaMiMail, you have to configure your Imap and Smtp server here. If you need notifcation (e. g. from calendar events), you only need to fill the Stmp section. Otherwise you can leave all untouched here.

If you make any changes, save them by clicking to 'Save config'.

Application Manager

This menu allows you to install/uninstall different modules of Tine20. Right-click and choose 'Install application' creates the neccessary requirements in your database and allow users to access this applications.

There are three applications preinstalled (Tinebase, Admin, Addressbook). They are neccessary for Tine20. Uninstalling will damage your installation!

Securing your Tine20 installation

The folder containing your Tine20 installation, needs just to be readable by the user account your webserver is executed as.

If you want your to be updated via GUI, then this is the only file that has to be writeable for the webserver account. If you want this file also to be read-only, you can download the changed file during the GUI setup process.

Administrating Tine20 (Optional)

After finishing the setup process, go to the Tine20 login page http://your_webserver/path_to_tine/ and login with the initial admin account you had created. Click to the tab 'Tine 2.0' and choose the 'Admin' module.


Here you can add/modify/remove/enable/disable users to/of your installation. Every user has to be member of at least one (primary) group.


Here you can add/modify/remove groups to/of your installation. Users can be member in any number of groups.


Roles allow you to specify privileges based on groups.

Example: If you want to allow/disallow a group to access the calendar, you create roles with the corresponding privileges and add the groups to them.


If you manage Samba with your Tine20 installation, you can add machine accounts here.


Allows you to (temporary) enable/disable installed applications and configure them (if settings are available) by right-clicking.

Access Log

Tine20 Logfile (inside the database).

How to purge old entries, see the FAQ.

Shared Tags

Here you can create tags that are available for all users in specified/all applications.


If you migrate from Egroupware, see the eGW Migration Howto.

If you plan to import users from a CSV-File, see the User Import Howto.

Optimizing server settings for tine 2.0

Tine 2.0 sends a lot of data when request are sent to it. An (optional) possible solution is to enable the zlib compression within PHP5. For that add/change the following settings in your php.ini

 zlib.output_compression = On
 zlib.output_compression_level = -1

see also: and

More installation related information

  • Install/Configuration HowTo (in german) for version Milan (2012-03):

  • Install HowTo (in german) with lighttpd (Debian 6.0.4 Squeeze)

  • Install HowTo (in german) Tine 2.0, Debian Wheezy und PostgreSQL