Skip to content

Deploying Tine

Introduction

Tine (formerly Tine 2.0) is a comprehensive open-source groupware solution designed for businesses and organizations. It provides integrated tools for calendar management, contact organization, email, task tracking, file sharing, and more. Built with a modern web interface, Tine offers enterprise-grade features while remaining flexible and customizable.

Key features of Tine include:

  • Calendar Management: Personal and shared calendars with scheduling
  • Contact Management: Address books with custom fields and groups
  • Email Integration: Web-based email client with IMAP/SMTP support
  • Task Management: To-do lists with priorities and due dates
  • File Management: Document storage and sharing
  • CRM Module: Customer relationship management
  • Human Resources: Employee management and leave tracking
  • Time Tracking: Project-based time recording
  • ActiveSync Support: Mobile device synchronization
  • LDAP Integration: Enterprise authentication support
  • Multi-Tenant: Support for multiple organizations

This guide walks you through deploying Tine on Klutch.sh, configuring the database, and setting up your groupware environment.

Why Deploy Tine on Klutch.sh

Deploying Tine on Klutch.sh provides several advantages:

Centralized Collaboration: Access calendars, contacts, and files from anywhere.

Data Control: Self-hosted solution keeps your business data under your control.

Simplified Deployment: Klutch.sh handles container orchestration automatically.

Persistent Storage: Reliable storage for documents and configurations.

HTTPS by Default: Secure access with automatic SSL certificates.

Scalable Resources: Adjust resources as your organization grows.

Prerequisites

Before deploying Tine on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your configuration
  • MySQL or MariaDB database (can be deployed on Klutch.sh)
  • Basic familiarity with Docker and groupware concepts
  • (Optional) SMTP server for email notifications

Preparing Your Repository

Create a GitHub repository with the following structure:

tine-deploy/
├── Dockerfile
├── .dockerignore
└── config/
└── config.inc.php

Creating the Dockerfile

FROM php:8.1-apache
# Install system dependencies
RUN apt-get update && apt-get install -y \
libpng-dev \
libjpeg-dev \
libfreetype6-dev \
libzip-dev \
libicu-dev \
libxml2-dev \
libldap2-dev \
unzip \
git \
cron \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install gd mysqli pdo_mysql zip intl xml ldap opcache \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Install Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Enable Apache modules
RUN a2enmod rewrite headers
# Set working directory
WORKDIR /var/www/html
# Download Tine
RUN git clone --depth 1 https://github.com/tine20/tine20.git .
# Install dependencies
RUN cd tine20 && composer install --no-dev --optimize-autoloader
# Set permissions
RUN chown -R www-data:www-data /var/www/html
# Configure PHP
RUN echo "memory_limit = 512M" >> /usr/local/etc/php/conf.d/tine.ini \
&& echo "upload_max_filesize = 64M" >> /usr/local/etc/php/conf.d/tine.ini \
&& echo "post_max_size = 64M" >> /usr/local/etc/php/conf.d/tine.ini \
&& echo "max_execution_time = 300" >> /usr/local/etc/php/conf.d/tine.ini
# Apache configuration
RUN echo '<Directory /var/www/html>\n\
AllowOverride All\n\
Require all granted\n\
</Directory>' > /etc/apache2/conf-available/tine.conf \
&& a2enconf tine
EXPOSE 80
CMD ["apache2-foreground"]

Environment Variables Reference

VariableRequiredDefaultDescription
DB_HOSTYes-MySQL database hostname
DB_NAMEYes-MySQL database name
DB_USERYes-MySQL username
DB_PASSYes-MySQL password
TINE_SETUP_USERNAMEYes-Initial admin username
TINE_SETUP_PASSWORDYes-Initial admin password
SMTP_HOSTNo-SMTP server for emails
SMTP_PORTNo587SMTP port
SMTP_USERNo-SMTP username
SMTP_PASSNo-SMTP password

Deploying on Klutch.sh

    Set Up MySQL Database

    Tine requires MySQL or MariaDB. Deploy it on Klutch.sh:

    Mount PathSizePurpose
    /var/lib/mysql20 GBDatabase storage

    Create database and user for Tine.

    Push Your Repository to GitHub

    Commit and push your Dockerfile and configuration.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project named “tine” or “groupware”.

    Create the Tine App

    Within your project, create a new app and connect your GitHub repository.

    Configure HTTP Traffic

    Set the traffic type to HTTP with the internal port set to 80.

    Set Environment Variables

    Configure the required variables:

    VariableValue
    DB_HOSTYour MySQL host
    DB_NAMEtine
    DB_USERYour database user
    DB_PASSYour secure password
    TINE_SETUP_USERNAMEadmin
    TINE_SETUP_PASSWORDYour admin password

    Attach Persistent Volumes

    Add persistent storage:

    Mount PathSizePurpose
    /var/www/html/files50 GBUser files and documents
    /var/www/html/log2 GBApplication logs
    /var/www/html/cache5 GBCache storage

    Deploy Your Application

    Click Deploy to build and launch Tine.

    Run Initial Setup

    Access the setup wizard to complete installation.

Initial Configuration

Running the Setup Wizard

  1. Navigate to https://your-app-name.klutch.sh/setup.php
  2. Enter database credentials
  3. Create the administrator account
  4. Configure basic settings
  5. Complete the installation

Configuring Applications

Enable Tine applications:

  1. Log in as administrator
  2. Go to Admin > Applications
  3. Enable desired modules:
    • Calendar
    • Addressbook
    • Felamimail (Email)
    • Tasks
    • Filemanager

User Management

Create user accounts:

  1. Navigate to Admin > Users
  2. Click Add User
  3. Enter user details
  4. Assign groups and permissions

Core Applications

Calendar

Manage schedules and meetings:

  • Create personal and shared calendars
  • Schedule events with attendees
  • Set reminders and notifications
  • Import/export iCal format

Addressbook

Organize contacts:

  • Personal and shared address books
  • Custom contact fields
  • Contact groups and lists
  • vCard import/export

Email (Felamimail)

Web-based email client:

  • Configure IMAP accounts
  • Send/receive emails
  • Organize with folders
  • Full-text search

Tasks

Manage to-do items:

  • Create task lists
  • Set priorities and due dates
  • Track completion
  • Assign to team members

Filemanager

Document management:

  • Upload and organize files
  • Share with users/groups
  • Version control
  • WebDAV access

Advanced Configuration

LDAP Integration

Connect to enterprise directories:

  1. Configure LDAP server settings
  2. Map LDAP attributes
  3. Set up user synchronization
  4. Configure authentication

ActiveSync

Mobile device synchronization:

  1. Enable ActiveSync module
  2. Configure in Admin settings
  3. Connect mobile devices
  4. Sync calendars, contacts, and email

Email Configuration

Set up email integration:

  1. Configure IMAP server settings
  2. Set up SMTP for sending
  3. Configure user email accounts
  4. Test email functionality

Production Best Practices

Security Recommendations

  • Strong Passwords: Enforce strong password policies
  • HTTPS Only: Use Klutch.sh’s automatic SSL
  • Regular Updates: Keep Tine updated
  • Access Control: Configure proper permissions
  • Backup Encryption: Encrypt sensitive backups

Performance Optimization

  • PHP Caching: Enable opcache
  • Database Indexing: Ensure proper indexes
  • File Storage: Use efficient storage configuration
  • Memory Allocation: Tune PHP memory limits

Backup Strategy

Protect your organization’s data:

  1. Regular database backups
  2. Back up file storage volume
  3. Export user data periodically
  4. Test restoration procedures

Troubleshooting

Installation Errors

  • Verify database connectivity
  • Check PHP extensions
  • Review file permissions
  • Check setup logs

Email Not Working

  • Verify IMAP/SMTP settings
  • Check firewall rules
  • Test credentials separately
  • Review email logs

Sync Issues

  • Check ActiveSync configuration
  • Verify device settings
  • Review sync logs
  • Test with different clients

Performance Problems

  • Increase PHP memory
  • Optimize database queries
  • Enable caching
  • Review resource allocation

Additional Resources

Conclusion

Deploying Tine on Klutch.sh provides a comprehensive groupware solution for your organization. With integrated calendars, contacts, email, and file management, Tine centralizes team collaboration while keeping your data under your control. The combination of Tine’s extensive feature set and Klutch.sh’s reliable infrastructure ensures your organization stays productive and connected.