Руководство по tine20

Описание

Tine20 - сервис для групповой работы профессионального уровня с открытым исходным кодом. Некоторое время назад откололся от eGroupWare и поэтому является его аналогом. Сетевое приложение, написанное на PHP с использованием БД MySQL для хранения данных. Поддерживает синхронизацию с помощью WebDAV и ActiveSync. В состав этого продукта входят:

  • Адресная книга

  • Менеджер файлов (с синхронизацией через клиент OwnCloud)

  • Календарь

  • CRM

  • Sipgate

  • Электронная почта c поддержкой нескольких аккаунтов и общими папками (Все входящие, все непрочитанные и так далее)

  • Задания

  • Продажи (Sales)

  • Human Resources

  • Инвентаризация (Inventory)

  • Хронометраж

  • Проекты

  • ЧаВО

Сайт проекта

Установка Tine 2.0

Использование сервера на стороне разработчика

Неплохой вариант для тех, у кого нет технической возможности развернуть данный комплекс у себя или нет грамотного специалиста для разворачивания этого комплекса. Разработчики без проблем сделают это для вас, но стоит учитывать, что это платная услуга. Заказать её можно на странице tine20.com

Установка на свой хостинг

Традиционно проста до безобразия.

  • Копируем код в папку, куда настроен Apache или Nginx

  • Создаём базу и пользователя для этой системы

  • Заходим в настройку: DOMAIN/setup.php и устанавливаем всё, что необходимо.

Настройка Nginx как прокси

Apache у нас будет висеть на 127.0.0.1:8080, а Nginx будет выдавать статику, проксировать запросы к Apache и блокировать вставки ваших картинок на левых сайтах.

Конфигурация:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
server {
    listen IP:80;
    server_name DOMAIN;
    access_log  /PATH/tine/access.log;
    error_log  /PATH/tine/error.log;
    proxy_ignore_client_abort on;

        location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$ {
        root /PATH/tine;
        expires 31536000s;
        add_header Pragma "public";
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
                valid_referers none blocked DOMAIN;
                        if ($invalid_referer) {
                        return   403;
        }
        }

        location ~ /\.ht {
        deny  all;
        }

        location / {
        proxy_pass `[`http://127.0.0.1:8080`](/http://127.0.0.1:8080)`;
        proxy_redirect     off;
        proxy_set_header  Host       $host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_cache_valid   200 302 10m;
        proxy_cache_valid   404 10m;
        proxy_cache_valid  301 1h;
        proxy_cache_valid  any 10m;
        }

        gzip  on;
        gzip_static on;
        gzip_http_version 1.1;
        gzip_vary on;
        gzip_comp_level 6;
        gzip_proxied any;
        gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
        gzip_buffers 16 8k;
        gzip_disable “MSIE [1-6].(?!.*SV1)”;

}

где IP, DOMAIN и PATH нужно заменить на свои.

Блокируем поисковые системы

Учитывая, что Tine 2.0 не просто обычный сайт для всех, поисковым механизмам тут делать нечего. Давайте в /PATH/robots.txt запретим индексацию этого веб-приложения. Добавьте:

1
2
User-agent: *
Disallow: /

Настраиваем htaccess для корректной работы Tine 2.0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
RewriteEngine on
RewriteRule Microsoft-Server-ActiveSync(.*) index.php?frontend=activesync [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
RewriteCond %{REQUEST_METHOD} !^(GET|POST)$
RewriteRule ^$            /index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
RewriteRule ^addressbooks /index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
RewriteRule ^calendars    /index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
RewriteRule ^principals   /index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
RewriteRule ^webdav       /index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
<ifmodule mod_expires.c>
 ExpiresActive On
 ExpiresDefault A604800
 ExpiresByType image/x-icon A604800
 ExpiresByType image/jpeg A604800
 ExpiresByType image/png A604800
 ExpiresByType image/gif A604800
 ExpiresByType image/js A604800
 ExpiresByType application/x-shockwave-flash A604800
</ifmodule>
php_flag zlib.output_compression On`

Как настроить, чтобы на почту приходило уведомление о событиях календаря Tine 2.0

  • Для начала в setup нужно правильно установить данные вашего SMTP-сервера

  • Задайте команду

php PATH/tine20.php --method Tinebase.triggerAsyncEvents -v --username ADMIN

где PATH - путь к вашей установке, ADMIN - имя администратора. Если будет просто

Tine 2.0 scheduler run (Tinebase_Alarm) complete.

Значит всё ок. Задайте эту команду в Cron на выполнение каждые 5 минут:

*/5 * * * * php PATH/tine20.php --method Tinebase.triggerAsyncEvents -v --username ADMIN

Внимание! На некоторых хостингах это может не работать. В консоли отдаём команду и получаем всё как надо:

Tine 2.0 scheduler run (Tinebase_Alarm,Tinebase_Controller_ScheduledImport) complete.

Но если это же задание работает в CRON, то получаем ошибку

1
2
3
4
X-Powered-By: PHP/5.5.17
Content-type: text/html

Not allowed: wrong sapi name!

В моём случае проблема решилась просто исправлением задания, вместо:

/usr/bin/php

прописал

/usr/local/bin/php

Настройка после установки

Как подключить Android к Tine

  • на андроид-устройстве нужно зайти в “настройки” - “аккаунты и синхронизация”

  • добавить аккаунт

  • вручную указать параметры сервера:

    • адрес почты в tine

    • адрес сервера DOMAIN.

    • логин

    • пароль

    • SSL по желанию и если настроен (рекомендуется)

Далее можно выставить индивидуальные настройки синхронизации (частота, давность загруженных писем и так далее)

Можно ли подключиться к Tine как к жёсткому диску?

Да, такая возможность есть. Для Windows 7 нужно:

  • зайти в меню и на “компьютер” нажать правой кнопкой мышки

  • выбрать “подключить сетевой диск”

  • выбрать “подключение к сайту….”

  • далее

  • выберите другое сетевое размещение

  • сетевой адрес: https://DOMAIN/webdav

  • введите имя для сетевого размещения (любое какое понравится, например, просто Tine)

  • Готово

Вы сможете работать с файлами напрямую. Например, документы открывать в Word или Excel. Естественно, это будет работать при корректной настройке htaccess (описано выше).

Как синхронизировать задачи (задания) с мобильными устройствами?

  • Для работы с задачами на смартфонах под управлением OS Android достаточно установить одно из приложений, работающих с таск-листами MS Exchange. Например, Tasks & Notes for MS Exchange (ссылка). Настройка аналогична настройке ActiveSync этого же смартфона.

Синхронизация файлов

Разработчики сделали просто замечательную функцию и теперь можно достаточно просто синхронизировать свои данные. Пригодиться для тех, кто ищет замену dropbox или кому нужен достаточно простой способ подливать данные на сервер.

  • Добавляем в .htaccess следующую строчку

RewriteRule ^remote.php   /index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] 

  • Ставим клиент OwnCloud (для Windows, Linux и Mac OS можно найти на этой странице) (Для Android есть тоже приложение в маркете, хотя оно и платное (на данный момент стоит всего 30 рублей)

  • Устанавливаем, настраиваем папку для синхронизации и всё!

Чистка базы данных

Заметил, что база данных растёт просто бешеными темпами. Любая синхронизация оставляет запись, вся почта болтается в кеше, даже удалённая. Вывод один - чистить. Какие таблички можно чистить, а какие нет - чуть ниже. User - пользователь базы данных, password - пароль к БД и base - сама база. Всё, что вы делаете, делается на свой страх и риск, поэтому помните про бэкапы!

mysql --user=user --password=password base -e "TRUNCATE tine20_access_log;"

После чисток этих баз придётся обновлять почту, в ящиках сразу не будет сообщений, ни входящих, ни исходящих. Помогает при интенсивном использовании почты.

`mysql –user=user –password=password base -e ”TRUNCATE tine20_felamimail_cache_message;”

`mysql –user=user –password=password base -e ”TRUNCATE tine20_felamimail_cache_message_to;”

mysql --user=user --password=password base -e "TRUNCATE tine20_felamimail_cache_msg_flag;"


Клиенты для офлайн-работы

  • OS Android, подключение к exchange

  • Kontakt - решение по управлению персональной информацией. Программа объединяет известные приложения KDE: электронную почту, адресную книгу, заметки и электронные конференции (KMail, KOrganizer, KAddressBook, KTimeTracker, KNotes и KNode) в единый комплекс. Может работать с почтой, а так же работать с адресной книгой и календарём.

  • Почтовый клиент Thunderbird. Необходимо добавить SOGo-connector и будет работать синхронизация почты, адресной книги и календарей.

Локализация

Вы можете помочь с переводом этого ПО. В настоящее время переведено примерно на 82 процента. Вы можете:

  • зарегистрироваться тут.

  • подать заявку

  • помочь с переводом или корректировкой неправильного перевода

Использование данного программного обеспечения

Почта

Адресная книга

Календарь

Файловое хранилище

Задачи