3. Инструкция по установке Web клиента Nextcloud.¶
- Содержание
- 3. Инструкция по установке Web клиента Nextcloud.
- 3.1. Преамбула.
- 3.2. Подготовительные работы.
- 3.3. Установка базы данных Postres.
- 3.3.1. Конфигурируем компоненты Postgres
- 3.4. Установка модулей PHP + Apache
- 3.5. Установка Nextcloud.
- 3.6. Настройка Apache.
- 3.7. Продолжаем установку в Web интерфейсе
- 3.8. Дополнительные настройки.
- 3.9. Публикация конфигурации для Apache Reverse Proxy
- 3.10. Полезные команды при настройке и отладке Nextcloud.
- 3.11. Интеграция с LDAP / AD.
- 3.12 Настройка интеграции Nextcloud с LDAP из командной строки.
- 3.13. Установка и настройка Rainloop
- 3.14 Установка Onlyoffice.
- 3.14.1 Подготовительные работы.
- 3.14.2 Настройка и установка системной локали по умолчанию.
- 3.14.3 Установка, настройка и изменение часового пояса
- 3.14.4 Устанавливаем совместимую с дистрибутивом базу данных PostgreSQL:
- 3.14.5 Подключаемся к PostgreSQL
- 3.14.6 Создаем пользователя и базу для onlyoffice
- 3.14.7 Устанавливаем брокер сообщений RabbitMQ:
- 3.14.8 Устанавливаем дополнения веб-сервера nginx-extras:
- 3.14.9 Обновляем пакетный менеджер:
- 3.14.10 Устанавливаем пакет стандартных шрифтов майкрософт:
- 3.14.11 Проверка работоспособности серверной части.
- 3.14.12 Установка клиентской части и интеграция с nextcloud.
- 3.15 Настрока Apache Revers Proxy для работы сервера через протокол HTTPS.
- 3.16. Вопросы и ответы
3.1. Преамбула.¶
NextCloud - набор инструментов с открытым исходным кодом для создания облачного хранилища.
Это веб-приложение и для своей работы требует настроенного веб-сервера.
3.2. Возможности NextCloud¶
Файлы NextCloud хранятся на сервере и могут быть доступны через WebDAV, если это необходимо. Пользовательские файлы зашифровываются во время транзита (необходимо включить шифрование)
Может быть интегрирован с пакетом онлайн-офиса OnlyOffice, что даст возможность создавать и редактировать файлы doc, ppt, xls прямо из NextCloud.
Приложения-клиент для синхронизации доступны для систем Linux, macOS, Windows, iOS и Android.
Пользователи Nextcloud могут управлять календарями (CalDAV), контактами (CardDAV), планировать задачи изнутри платформы.
Nextcloud позволяет управлять пользователями и группами с помощью OpenID или LDAP.
Пользователи Nextcloud могут делиться файлами через веб-ссылки.
В данной инструкции мы рассмотрим процесс настройки сервиса в связке в Apache и Apache Reverce Proxy
на базе дистрибутива OS Debian 11 и PHP 7.4, хотя дистрибутив поддерживается любой.
Предполагается, что у вас уже установлен и настроен Apache Reverce Proxy (Обратный Прокси).
Обратный прокси-сервер – это тип прокси-сервера, который ретранслирует HTTP/HTPPS-запросы на один или несколько бэкенд-серверов.
(к которым пользователи не должны иметь доступ напрямую).
В конце инструкции мы опубликуем два рабочих конфига для обратного прокси и инструкцию по генерации валидных SSL сертификатов.
Также предполагается что у вас настроена и сконфигурирована доменная зона для Nextcloud.
Рассмотрим эту запись не примере:
Хост
cloud.tegu.online A 95.163.87.33
3.2. Подготовительные работы.¶
3.2.1. Настройка и установка системной локали по умолчанию.¶
dpkg-reconfigure locales
выбираем ru_RU.UTF-8
3.2.2. Установка, настройка и изменение часового пояса¶
timedatectl set-timezone Europe/Moscow
3.3. Установка базы данных Postres.¶
Здесь мы рассматриваем установку обычной версии Postres, допускается установка версии Pro.
sudo apt install postgresql postgresql-contrib
После завершения установки вы можете убедиться, что служба PostgreSQL активна. Для чего в командной строке наберите:
sudo systemctl is-active postgresql
Также, посмотрите, включена ли служба:
sudo systemctl is-enabled postgresql
Проверка запуска PostgreSQL - как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04
И наконец, вы можете увидеть статус службы PostgreSQL:
sudo systemctl status postgresql
Проверка статуса PostgreSQL
После чего, убедитесь, что PostgreSQL-сервер готов принимать подключения от клиентов:
sudo pg_isready
Проверка готовности PostgreSQL - как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04
3.3.1. Конфигурируем компоненты Postgres¶
Конфигурируем PostgreSQL
Подключаемся к PostgreSQL
sudo -u postgres psql
или такой командой.
su - postgres -s /bin/bash
psql
Создаем пользователя и базу для NextCloud
CREATE USER nextcloud WITH PASSWORD 'your_password'; CREATE DATABASE nextcloud TEMPLATE template0 ENCODING 'UNICODE'; ALTER DATABASE nextcloud OWNER TO nextcloud; GRANT ALL PRIVILEGES ON DATABASE nextcloud TO nextcloud; \q
Смотрим вывод в консоли после исполнения вышеперечисленных команд.
postgres=# CREATE USER nextcloud WITH PASSWORD 'Qwe123Poi'; CREATE ROLE postgres=# CREATE DATABASE nextcloud TEMPLATE template0 ENCODING 'UNICODE'; CREATE DATABASE postgres=# ALTER DATABASE nextcloud OWNER TO nextcloud; ALTER DATABASE postgres=# GRANT ALL PRIVILEGES ON DATABASE nextcloud TO nextcloud; GRANT postgres=#
3.4. Установка модулей PHP + Apache¶
apt install -y php-imagick php7.4-common php7.4-mysql php7.4-fpm php7.4-gd php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-bcmath php7.4-gmp libapache2-mod-php php7.4-pgsql php7.4-ldap apache2
Настраиваем php.ini:
nano /etc/php/7.4/apache2/php.ini
opcache.enable=1 opcache.enable_cli=1 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=1
Посмотреть версию PHP можно командой:
php -v
Для применения изменений в настройках PHP необходимо перезапустить Apache.
systemctl reload apache2
3.5. Установка Nextcloud.¶
3.5.1. Скачиваем NextCloud:¶
wget https://cloud.mbk-lab.ru/index.php/s/xaBr56D7c88yGkp/download/nextcloud-24.0.4.tar.bz2 tar xjvf nextcloud-24.0.4.tar.bz2 cp -R nextcloud /var/www/
3.5.2. Меняем владельца каталога:¶
chown -R www-data:www-data /var/www/nextcloud/
3.6. Настройка Apache.¶
3.6.1. Разрешаем модули ssl, rewrite и headers:¶
a2enmod ssl a2enmod rewrite a2enmod headers
3.6.2. Создаем виртуальный домен и настраиваем его для работы с облачным сервисом:¶
nano /etc/apache2/sites-available/nextcloud.conf
<VirtualHost *:80> ServerName localhost ServerAdmin root@localhost DocumentRoot "/var/www/nextcloud" Redirect 301 /.well-known/carddav https://cloud.tegu.online/remote.php/dav Redirect 301 /.well-known/caldav https://cloud.tegu.online/remote.php/dav Redirect 301 /.well-known/webdav https://cloud.tegu.online/remote.php/dav <Directory "/var/www/nextcloud"> Options FollowSymLinks MultiViews AllowOverride All Require all granted <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/nextcloud SetEnv HTTP_HOME /var/www/nextcloud </Directory> <IfModule mpm_peruser_module> ServerEnvironment apache apache </IfModule> ErrorLog /var/log/apache2/error_log TransferLog /var/log/apache2/access_log </VirtualHost>
* где cloud.tegu.online — домен, на котором будет работать сервис; /var/www/nextcloud — каталог с порталом.
3.6.3. Запускаем Apache.¶
Включаем нашу конфигурацию.
a2ensite nextcloud.conf
Выключаем дефолтные конфиги Apache.
a2dissite 000-default.conf a2dissite default-ssl.conf
Проверяем конфигурацию Apache:
apachectl configtest
... если видим:
Syntax OK
Разрешаем автозапуск апача и перезапускаем сервис:
systemctl enable apache2 systemctl restart apache2
3.7. Продолжаем установку в Web интерфейсе¶
Перед установкой рекомендуется сделать резервную копию.
И внимательно заполнить конфиг, если по ошибке введете неправильно данные сервера базы и данных и пароль, необходимо будет вручную исправить это в конфигах PHP
/var/www/nextcloud/config/config.php
После завершения установки необходимо отказаться от установки рекомендованных приложений.
Нажимаем отмена.
3.7.1. Настройка фоновых заданий через Cron.¶
Открываем crontab файл из под пользователя "www-data".
crontab -u www-data -e
Необходимо выбрать вариант 1 (Редактор Nano), тем кто привык к редактору Vim, значит выбирают второй вариант.
Select an editor. To change later, run 'select-editor'. 1. /bin/nano <---- easiest 2. /usr/bin/vim.tiny Choose 1-2 [1]: 1
Далее необходимо добавить задание в Crontab на исполнение каждые 5 минут и сохранить файл.
*/5 * * * * php -f /var/www/nextcloud/cron.php
3.7.2. Продолжим настройку в Web интерфейсе.¶
Необходимо навести мышкой в правом верхнем углу на профиль пользователя, выбрать настройки и в левой стороне экрана " основные параметры"
и сменить настройку Ajax на рекомендованный Cron.
3.7.3. Необходимо установить модуль php-imagick и SVG.¶
apt install imagemagick
3.8. Дополнительные настройки.¶
Необходимо зайти в общие сведения и проверить и исправить предупреждения связанные с безопасностью:
3.8.1. Исправляем предупреждение о php.¶
Разрешённое максимальное значение использования памяти PHP не ниже рекомендуемого значения в 512 МБ.
nano /etc/php/7.4/fpm/php.ini
Ищем memory_limit и вводим, 512M вместо 128M.
приводим пример: часть конфига.
; Maximum amount of memory a script may consume ; http://php.net/memory-limit memory_limit = 512M
Перезапускаем Apache.
systemctl reload apache2
3.8.2. Не указан регион размещения этого сервера Nextcloud.¶
Что требуется для возможности проверки номеров телефонов без указания кода страны.
Чтобы разрешить пользователям сервера указывать номера телефонов без указания кода страны,
добавьте параметр «default_phone_region» с соответствующим кодом страны в соответствии с ISO 3166-1↗.
Для устранения данного предупреждения откроем конфигурационный файл NextCloud:
nano /var/www/nextcloud/config/config.php
и добавим следующие строки:
'default_phone_region' => 'RU',
3.8.3. Проблема: Не настроена система кеширования.¶
Для увеличения производительности сервера, по возможности, настройте memcache.
Для решения проблемы устанавливаем Redis.
apt install -y redis-server php-redis systemctl start redis-server systemctl enable redis-server phpenmod redis
Добавляем в конец конфига следующие значения:
sudo nano /var/www/nextcloud/config/config.php
'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.local' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => array( 'host' => 'localhost', 'port' => 6379, ),
Должно получится так.
'installed' => true, 'default_phone_region' => 'RU', 'memcache.distributed' => '\OC\Memcache\Redis', 'memcache.local' => '\OC\Memcache\Redis', 'memcache.locking' => '\OC\Memcache\Redis', 'redis' => array( 'host' => 'localhost', 'port' => 6379, ), );
Перезапускаем Apache и PHP-FPM:
systemctl restart apache2 php7.4-fpm
3.8.4. Настройка почтового сервера¶
Переходим в основные параметры и прописываем настройки учетной записи и почтового сервера.
На предупреждение об отправке тестового письма переходим по рекомендуемой ссылке
http://cloud.tegu.online/index.php/settings/user
Заполняем реквизиты:
3.8.5. Заголовки обратного прокси¶
Заголовки обратного прокси настроены неправильно, либо подключение к серверу Nextcloud осуществляется через доверенный прокси. Если Nextcloud открыт не через доверенный прокси, то это проблема безопасности, которая может позволить атакующему подделать IP-адрес, определяемый сервером Nextcloud. Дополнительная информация представлена в документации ↗.
Добавляем в конфиг IP обратного прокси сразу после конфига обратного прокси.
nano /var/www/nextcloud/config/config.php
'trusted_proxies' => array ( 0 => '10.199.199.11', ),
Должно получиться так:
'trusted_domains' => array ( 0 => 'cloud.tegu.online', 1 => '10.44.44.32', ), 'trusted_proxies' => array ( 0 => '10.199.199.11', ),
Перезапускаем Apache и PHP.
systemctl restart apache2 php7.4-fpm
3.8.6. Небезопасные ссылки¶
Сервер создаёт небезопасные ссылки, несмотря на то, что к нему осуществлено безопасное подключение. Скорее всего, причиной являются неверно настроенные параметры обратного прокси и значения переменных перезаписи исходного адреса. Рекомендации по верной настройке приведены в документации ↗.
Редактируем следующий конфиг:
nano /var/www/nextcloud/config/config.php
Добавляем параметр
'overwriteprotocol' => 'https'
перед настройкой mail
Должно получится так:
'overwriteprotocol' => 'https', 'mail_smtpmode' => 'smtp', 'mail_smtpsecure' => 'ssl', 'mail_sendmailmode' => 'smtp',
Перезапускаем Apache и PHP.
systemctl restart apache2 php7.4-fpm
Проверяем остались ли еще какие то предупреждения или нет.
Ура, все предупреждения безопасности полностью пофиксены о чем свидетельствует результат проверки на скриншоте.
3.9. Публикация конфигурации для Apache Reverse Proxy¶
Идем по пути:
cd /etc/apache2/sites-available
Создаем конфиг. Этап первый.
nano nextcloud.conf
Вставляем конфиг со своими параметрами.
<VirtualHost *:80> ServerName cloud.tegu.online ErrorLog /var/log/apache2/cloud-tegu-error.log TransferLog /var/log/apache2/cloud-tegu-access.log RewriteEngine on RewriteCond %{SERVER_NAME} =cloud.tegu.online RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost>
Включаем конфиг.
a2ensite nextcloud.conf
Получаем сертификат Certbort. На вопрос перенаправлять на SSL, отвечаем да (2)
(здесь указываете свои параметры домена)
certbot --apache -d cloud.tegu.online
Редактируем конфиг для работы с SSL.
nano nexcloud-le-ssl.conf
Должно получится так:
<IfModule mod_ssl.c> <VirtualHost *:443> <IfModule mod_proxy.c> ProxyPass /.well-known/acme-challenge ! </IfModule> <IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" </IfModule> RewriteEngine On RewriteRule ^/\.well-known/carddav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L] RewriteRule ^/\.well-known/caldav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L] ServerName cloud.tegu.online RequestHeader set X-Forwarded-Proto "https" ProxyRequests Off ProxyPreserveHost On ProxyPass / http://10.44.44.32/ ProxyPassReverse / http://10.44.44.32/ RemoteIPHeader X-Real-IP RemoteIPInternalProxy 10.44.44.0/24 ErrorLog /var/log/apache2/cloud-tegu-error.log TransferLog /var/log/apache2/cloud-tegu-access.log SSLCertificateFile /etc/letsencrypt/live/cloud.tegu.online/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/cloud.tegu.online/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf </VirtualHost> </IfModule>
3.10. Полезные команды при настройке и отладке Nextcloud.¶
3.10.1. Отключение сброса пароля¶
Нужно добавить в файл nano /var/www/nextcloud/config/config.php
'lost_password_link' => 'disabled',
3.10.2. Вывести из бана ip адрес.¶
sudo -u www-data php /var/www/nextcloud/occ security:bruteforce:reset 10.252.128.1
3.10.3. Отключение "Создайте свою бесплатную учётную запись"¶
Отключение ссылки на https://nextcloud.com/signup/
Нужно добавить в файл nano /var/www/nextcloud/config/config.php
'simpleSignUpLink.shown' => false,
3.10.4. Работа с пользователями из UNIX-Shell¶
В состав nextcloud входит php-скрипт occ, с помощью которого можно управлять сервисом из командной строки Linux.
Добавление пользователя.
Создать нового пользователя можно командой:
sudo -u www-data php /var/www/nextcloud/occ user:add admin
- где admin — имя учетной записи.
Сброс пароля.
При необходимости сбросить пароль пользователя, можно воспользоваться командой:
sudo -u www-data php /var/www/nextcloud/occ user:resetpassword admin
- где admin — учетная запись пользователя, чей пароль хотим сбросить.
3.11. Интеграция с LDAP / AD.¶
Для настройки интеграции с LDAP необходимо включить данный компонент:
Идем в профиль пользователя -> приложения.
Опускаемся в самый низ списка приложений, находим LDAP и включаем его.
Переходим обратно в профиль -> Настройки.
Слева в низу экрана появится настройка: LDAP/AD интеграция.
Проваливаемся внутрь и заполняем своими данными настройки.
3.11.1. Настройка пользователей¶
Переходим на вкладку “пользователи” и вписываем запрос LDAP
(&(objectclass=user)(mail=*))
3.11.2. На вкладке “Учетные данные” вписать следующий запрос LDAP¶
(mail=%uid)
3.11.3. На вкладке “Группы” вписываем запрос:¶
(objectclass=group)
3.12 Настройка интеграции Nextcloud с LDAP из командной строки.¶
Нам необходимо убедиться в наличие модуля php-ldap.
Иначе в процессе настройки мы можем получить ошибку:
the library ldap is not available
3.12.1 Проверка наличия модуля можно выполнить команду на сервере:
php -m | grep ldap
3.12.2 Должны получить следующий вывод:
ldap
Если мы получим в ответ пустую строку, то необходимо установить пакет php-ldap
и перезапустить службу, обрабатывающую скрипты php.
Выполняем поочередно следующие команды:
apt-get install php-ldap systemctl restart php7.4-fpm systemctl restart apache2
- в данном примере мы перезапускаем и php7.4-fpm, и apache2.
В вашей системе может использоваться только один сервис.
Имя для сервиса php7.4-fpm может быть другим — это зависит от версии PHP.
У нас должна быть учетная запись на сервере LDAP с правами чтения (DN user).
От данной учетной записи будет выполняться подключение к серверу каталогов.
Из командной строки мы можем управлять Nextcloud с помощью утилиты occ, которая находится в каталоге самого портала.
Для включения приложения интеграции LDAP вводим следующую команду:
sudo -u www-data php /var/www/nextcloud/occ app:enable user_ldap
3.12.3 Настройка интеграции.¶
Cоздаем конфигурацию:
sudo -u www-data php /var/www/nextcloud/occ ldap:create-empty-config
Должны получить следующий вывод:
Created new configuration with configID s01
- в данном примере создана конфигурация с идентификатором s01 — последующие команды будут вводиться с данным ID.
Посмотреть информацию о созданной конфигурации можно командой:
sudo -u www-data php /var/www/nextcloud/occ ldap:show-config
3.12.4 Задаем настройки LDAP.
- в данном примере вы указываете свои настройки своего домена.
Указываем ldap-сервер для подключения и порт:
sudo -u www-data php /var/www/nextcloud/occ ldap:set-config s01 ldapHost "ds.tegu.online"
sudo -u www-data php /var/www/nextcloud/occ ldap:set-config s01 ldapPort "636"
- в данном примере мы используем сервер ds.tegu.online и порт 636 (зашифрованные запросы к ldap).
Для использования не зашифрованных запросов, соответственно используем порт 389
3.12.5 Задаем пользователя, от которого будем выполнять подключения к каталогу:
sudo -u www-data php /var/www/nextcloud/occ ldap:set-config s01 ldapAgentName "tegu"
sudo -u www-data php /var/www/nextcloud/occ ldap:set-config s01 ldapAgentPassword "Qwerty123_tegu"; history -d $((HISTCMD-1))
- мы указали, что подключение будет выполняться от пользователя tegu с паролем Qwerty123_tegu.
Дополнительная команда history -d $((HISTCMD-1)) удалить из истории строку с паролем.
3.12.6 Задаем область поиска учетных записей:
sudo -u www-data php /var/www/nextcloud/occ ldap:set-config s01 ldapBase "ou=mail,dc=tegu,dc=online"
3.12.7 Задаем фильтры пользователя, поля для логина и класса объекта:
sudo -u www-data php /var/www/nextcloud/occ ldap:set-config s01 ldapLoginFilter "(&(objectclass=user)(mail=*))" sudo -u www-data php /var/www/nextcloud/occ ldap:set-config s01 ldapUserFilter "(|(objectclass=user))" sudo -u www-data php /var/www/nextcloud/occ ldap:set-config s01 ldapUserFilterObjectclass "user"
3.12.8 Указываем поле для атрибута электронной почты:
sudo -u www-data php /var/www/nextcloud/occ ldap:set-config s01 ldapEmailAttribute "mail"
3.12.9 Проверяем конфигурацию:
sudo -u www-data php /var/www/nextcloud/occ ldap:test-config s01
Мы должны увидеть:
The configuration is valid and the connection could be established!
Если же мы увидим ошибку, смотрим лог и устраняем проблемы:
tail /var/www/nextcloud/data/nextcloud.log
3.12.10 Активируем конфигурацию:
sudo -u www-data php /var/www/nextcloud/occ ldap:set-config s01 ldapConfigurationActive "1"
Пользователи будут загружаться из каталога ldap,
но их идентификаторы будут отображаться в виде UID — это произвольные набор цифр и букв и его использовать не удобно.
Чтобы изменить атрибут для имени nextcloud, вводим:
sudo -u www-data php /var/www/nextcloud/occ ldap:set-config s01 ldapExpertUsernameAttr "sAMAccountName"
3.13. Установка и настройка Rainloop¶
RainLoop(rainloop.net) — легкий, современный и красивый веб-клиент электронной почты, разработанный специально с учетом малого потребления памяти и использования на low-end серверах.
Использование ресурсов не зависит от объема почтового ящика, сообщения или вложения, а поэтому каждый активный пользователь требует не много памяти, даже в случае обработки больших сообщений.
Такой эффект достигнут за счет того что веб-клиент не использует базу данных, а обращается на прямую к файлам почтового сервера и просто отображает имеющиеся там письма, загружая по мере необходимости.
Встроенная система кэширования позволяет повысить общую производительность и снижая нагрузку на веб-и почтовых серверов. Хотя в зависимостях СУБД (MySQL, PostgreSQL, SQLite и т.п.) указана,
но она задействуется исключительно для хранения данных контактов). RainLoop это именно веб-клиент, в его задачи не входит настройка почтовых серверов и управление учетными записями.
Поэтому какую либо базу учетных записей RainLoop не использует, после настройки подключения к почтовым серверам, пользователь может подключиться указав свой логин и пароль созданные ранее.
В настройках уже есть привязка к Gmail, Yahoo, Outlook.com и qq.com. То есть фактически после установки RainLoop, пользователи могут сразу, без дополнительных настроек, подключаться
к этим серверам используя свои учетные записи. Добавить любой сервер, можно за пару кликов. Чтобы ограничить подключения к почтовым серверам используются белые списки.
Но у такого подхода есть и мину — нельзя объединить несколько ящиков и получать к ним доступ с одного места, для каждлой учетной записи потребуется открыть свое окно.
Поддерживает IMAP и SMTP протоколы, включая защищенные SSL и STARTTLS. Возможно шифрование сообщений при помощи OpenPGP и управление ключами (импорт и создание новых).
Интерфейс локализован. Причем это могут быть как корпоративные сервера так и публичные сервера. Поддерживаются многие функции настольного приложения drag’n’drop,
горячие клавиши, автозавершение адресов, виртуальные папки, импорт и экспорт контактов (CSV, VCF и vCard).
Пункты меню позволяют произвести все необходимые операции с сообщением отредактировать, переслать, пометить как спам, распечатать, скачать в виде eml файла.
Поддерживается интеграция с Google (включая Google Drive), Dropbox др системы. Возможности расширяются при помощи плагинов.
В поставке имеется 15 плагинов упрощающих интеграцию с некоторыми приложениями и добавляющих функциональность (белый и черный списки, капча и другие).
Среди плагинов проекта [ownCloud](apps.owncloud.com/content) также можно найти RainLoop (Apps > Enable ‘RainLoop’).
Те кто использует данную систему для обмена и синхронизации данных, вероятно оценят это, так как поддерживается возможность работы в одном домене
с технологией единого входа SSO, что очень удобно как для пользователя так и админа (нет дублирования учетных записей). Внешний вид меняется при помощи тем.
3.13.1. Установка Rainloop¶
Для установки Rainloop, необходимо зайти в приложения найти по алфавиту данное приложение и установить.
Необходимо опять перейти в профиль пользователя -> настройки
Необходимо в дополнительных параметрах выбрать автоматический вход пользователей.
Далее необходимо в этом же окне перейти по ссылке:
Перейти в панель администратора RainLoop
Увидим окно приглашение.
логин: admin
пароль 12345
Меняем пароль и выставляем языковые предпочтения.
Добавляем домен и прописываем соответствующие настройки почтового сервера:
Добавляем основной домен.
3.14 Установка Onlyoffice.¶
OnlyOffice – офисный пакет с открытым исходным кодом, можно сказать что он больше чем просто офисный пакет в браузере.
Это многофункциональный портал совместной работы, включающий в себя управление документами и проектами.
Он позволяет Вам планировать рабочие задачи и вехи, хранить корпоративные или персональные документы и совместно работать над ними,
использовать инструменты социальной сети, такие как блоги и форумы, а также общаться с членами коллектива через корпоративную программу обмена мгновенными сообщениями.
Устанавливается на отдельную виртуальную машину:
3.14.1 Подготовительные работы.¶
Также предполагается что у вас настроена и сконфигурирована доменная зона для onlyoffice.
Рассмотрим эту запись не примере:
Хост
onlyoffice.tegu.online A 95.163.87.33
3.14.2 Настройка и установка системной локали по умолчанию.¶
dpkg-reconfigure locales
выбираем ru_RU.UTF-8
3.14.3 Установка, настройка и изменение часового пояса¶
timedatectl set-timezone Europe/Moscow
Первым делом обновляем данные о пакетах:
sudo apt-get update sudo apt-get upgrade
Помимо прочих компонентов, для нормальной работы требуется наличие в системе работающего веб-сервера Nginx.
Выполним для этого ряд действий:
sudo apt-get install nginx sudo systemctl start nginx sudo systemctl enable nginx
Необходимые изменения в конфигурационные файлы будут внесены автоматически при выполнении последующих этапов установки.
3.14.4 Устанавливаем совместимую с дистрибутивом базу данных PostgreSQL:¶
sudo apt-get install postgresql
После успешной установки необходимо создать саму базу данных и пользователя.
Стоит обратить особое внимание, что имя пользователя базы данных обязательно должно быть — onlyoffice,
а вот пароль (password) можно указать любой, главное — его не забыть. Он понадобится на этапе установки самого сервера.
3.14.5 Подключаемся к PostgreSQL¶
sudo -u postgres psql
или такой командой.
su - postgres -s /bin/bash
psql
3.14.6 Создаем пользователя и базу для onlyoffice¶
CREATE DATABASE onlyoffice; CREATE USER onlyoffice WITH password 'password'; GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice; \q
3.14.7 Устанавливаем брокер сообщений RabbitMQ:¶
sudo apt-get install rabbitmq-server
3.14.8 Устанавливаем дополнения веб-сервера nginx-extras:¶
sudo apt-get install nginx-extras
Для выполнения самой установки нужно сделать ещё ряд подготовительных действий.
Добавить в систему ключ PGP и подключить репозиторий:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80--recv-keys CB2DE8E5 echo "deb https://download.onlyoffice.com/repo/debian squeeze main" | sudo tee /etc/apt/sources.list.d/onlyoffice.list
3.14.9 Обновляем пакетный менеджер:¶
sudo apt-get update
3.14.10 Устанавливаем пакет стандартных шрифтов майкрософт:¶
sudo apt-get install ttf-mscorefonts-installer
И собственно сама установка ONLYOFFICE Documentserver'а. Вот при выполнении этого этапа и будет запрошен пароль доступа к создаваемой ранее базе данных.
sudo apt-get install onlyoffice-documentserver
3.14.11 Проверка работоспособности серверной части.¶
Собственно, на данном моменте уже можно проверить работоспособность.
Зайдя в браузере по адресу настраиваемого сервера, мы должны увидеть следующее:
Здесь внизу есть кнопка [GO TO TEST EXAMPLE], по которой можно запустить тестовые документы и проверить работоспособность.
Но для этого сначала нужно выполнить:
sudo supervisorctl start ds:example
И теперь можно убедиться в работоспособности сервера и оценить интерфейс.
Главное, после проверки работоспособности не забыть выключить тестовые файлы:
sudo supervisorctl stop ds:example
3.14.12 Установка клиентской части и интеграция с nextcloud.¶
С установкой серверной части закончено, и пора приступать к настройке клиентской.
Здесь всё просто. Заходим в Nextcloud (под аккаунтом администратора),
открываем магазин приложений > аккаунт > приложения, в поиске вводим ONLYOFFICE и устанавливаем.
После переходим в аккаунт > настройки и в левом меню в разделе «Параметры сервера» ищем пункт ONLYOFFICE
Здесь в поле «Адрес» ONLYOFFICE Docs пишем адрес сервера, который настраивали на предыдущих шагах, и ниже нажимаем сохранить.
Здесь также желательно настроить секретный ключ для доступа к серверу Onlyoffice.
Токен включается сервере Onlyoffice следующим образом:
nano /etc/onlyoffice/documentserver/local.json
Должно получится так:
"token": { "enable": { "request": { "inbox": true, "outbox": true }, "browser": true }, "inbox": { "header": "Authorization" }, "outbox": { "header": "Authorization" } }, "secret": { "inbox": { "string": "9Adl54NYtDvYMS"
- Где inbox, outbox меняется на true
а в секции string генерируете удобным способом токен и вписываете его сюда, этот же токен прописываете при интеграции в nextcloud.
Видим в правом верхнем углу надпись: «Настройки были успешно обновлены (версия 7.1.1.23)», что свидетельствует об успешно установленном соединении с сервером.
Помимо этого, ниже на странице появились и дополнительные настройки, позволяющие выбрать типы документов, доступные для редактирования.
Выбираем нужные и ещё раз жмём сохранить. На этом основная настройка завершена.
Теперь в меню создания нового файла появились дополнительные пункты для создания файлов текстового редактора / таблиц / презентаций.
Нижен представлен конфиг для публикации:
3.15 Настрока Apache Revers Proxy для работы сервера через протокол HTTPS.¶
Здесь всё тоже довольно просто и лаконично.
Применяем подобную схему apache reverse proxy как и для настройки Nextcloud.
3.15.1 Создаем конфиг oo.tegu.online.conf¶
Конфиги находятся здесь:
cd /etc/apache2/sites-available
nano /etc/apache2/sites-available/oo.tegu.online.conf
Вставляем конфиг со своими параметрами.
root@www:/etc/apache2/sites-available# cat oo.tegu.online.conf <VirtualHost *:80> ServerName oo.tegu.online DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/oo-tegu-error.log CustomLog ${APACHE_LOG_DIR}/oo-tegu-access.log combined RewriteEngine on RewriteCond %{SERVER_NAME} =oo.tegu.online RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost>
3.15.2 Включаем созданный конфиг в Apache.¶
a2ensite oo.tegu.online.conf
Получаем сертификат Certbort. На вопрос перенаправлять на SSL, отвечаем да (2)
(здесь указываете свои параметры домена)
certbot --apache -d oo.tegu.online
3.15.3 Редактируем конфиг для работы с SSL.¶
oo.tegu.online-le-ssl.conf
Должно получится так:
<VirtualHost *:443> ServerName oo.tegu.online DocumentRoot /var/www/html ProxyRequests Off RequestHeader set X-Forwarded-Proto "https" <IfModule mod_proxy.c> ProxyPass /.well-known/acme-challenge ! </IfModule> SSLProxyEngine On SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off ProxyPreserveHost On ProxyPassMatch "^/(.*\websocket)$" "ws://10.44.44.33/$1" ProxyPass / http://10.44.44.33/ ProxyPassReverse / http://10.44.44.33/ RemoteIPHeader X-Real-IP RemoteIPInternalProxy 10.44.44.0/24 ErrorLog ${APACHE_LOG_DIR}/oo-tegu-error.log CustomLog ${APACHE_LOG_DIR}/oo-tegu-access.log combined SetEnvIf Host "^(.*)$" THE_HOST=$1 RequestHeader setifempty X-Forwarded-Proto https RequestHeader setifempty X-Forwarded-Host %{THE_HOST}e ProxyAddHeaders Off SSLCertificateFile /etc/letsencrypt/live/oo.tegu.online/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/oo.tegu.online/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf </VirtualHost> </IfModule>
Вот, собственно, и все действия необходимые для базовой локальной настройки интеграции пакета ONLYOFFICE в Nextcloud.
На этом наша настройка облачного хранилища подошла к концу.
3.16. Вопросы и ответы¶
3.16.1. При авторизации Nextcloud выдает «Слишком много попыток авторизации»?¶
Для этого нужно очистить таблицу oc_bruteforce_attempts
Подключаемся к базе данных postgres.
su - postgres -s /bin/bash
Далее — запустим psql
psql -Unextcloud -hlocalhost -W --dbname=nextcloud
Проверим, сколько записей в таблице.
select count(*) from oc_bruteforce_attempts;
Смотрим вывод в консоли: видим 6 записей в таблице
nextcloud=> select count(*) from oc_bruteforce_attempts; count ------- 6 (1 строка)
Для очистки запустим команду:
truncate oc_bruteforce_attempts RESTART IDENTITY;
проверяем после очистки
nextcloud=> select count(*) from oc_bruteforce_attempts; count ------- 0 (1 строка) nextcloud=>
3.16.2. Nextcloud не отправляет почту. stream_socket_enable_crypto(): SSL operation failed with code 1¶
Nextcloud не отправляет письма. При попытке отправить тестовое письмо получаем ошибку:
«stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL
routines:tls_process_server_certificate:certificate verify failed at /var/www/nextcloud/3rdparty/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php#94»
Проблема в самоподписанном сертификате. По умолчанию Nextcloud живет в идеальном мире в котором все сертификаты заверены доверенными УЦ)
Галочки «доверять всем сертификатам» в настройках нет, значит… We need to go deeper
Открываем текстовым редактором /nextcloud/lib/private/Mail/Mailer.php (обычно полный путь «/var/www/nextcloud/lib/private/Mail/Mailer.php»),
находим блок настроек отправки(ориентировочно 250-257 строки):
$transport = new \Swift_SmtpTransport(); $transport->setTimeout($this->config->getSystemValue('mail_smtptimeout', 10)); $transport->setHost($this->config->getSystemValue('mail_smtphost', '127.0.0.1')); $transport->setPort($this->config->getSystemValue('mail_smtpport', 25)); if ($this->config->getSystemValue('mail_smtpauth', false)) { $transport->setUsername($this->config->getSystemValue('mail_smtpname', '')); $transport->setPassword($this->config->getSystemValue('mail_smtppassword', '')); $transport->setAuthMode($this->config->getSystemValue('mail_smtpauthtype', 'LOGIN'));
и добавляем новой строкой:
$transport->setStreamOptions(array('ssl' => array('allow_self_signed' => true, 'verify_peer' => false)));
Этой строчкой мы разрешаем принимать самоподписанные сертификаты. После этого отправка почты будет работать.
3.16.3. Забыли административный пароль от Rainloop¶
Rainloop хранить пароли в зашифрованном виде, можно сбросить пароль на перврначальный 12345
nano /var/www/nextcloud/data/rainloop-storage/_data_/_default_/configs/nano application.ini
Находим строку ; Login and password for web admin panel
должно получиться так:
; Login and password for web admin panel admin_login = "admin" admin_password = "12345"
3.16.4. Как включить логи Rainloop¶
Включаем логи в конфиге.
nano /var/www/nextcloud/data/rainloop-storage/_data_/_default_/configs/application.ini
Должно получиться так:
[logs] enable = On