Рассмотрим некоторые нюансы настройки NextCloud работающем на Calculate Linux. Установим Collabora Office и другие полезные приложения. Расскажу про основные моменты работы и настройки этого свободного облачного хранилища. Большой диапазон возможностей в использовании.

Содержание:

Введение

За основу была взята настройка свободного облачного хранилища из статьи NextCloud установка на Nginx.

Создание облачного хранилища для работы с файлами удобная и практичная технология. Облачное хранилище на базе NextCloud даёт воистину восхитительные возможности. В одном месте вы сможете настроить совместную работу с документами, безопасность, и общение. Облако позволит сократить количество стороннего программного обеспечения используемого пользователями. Разве не сказка использовать для работы практически любой браузер, смотреть видео, редактировать документы, делать видео звонки, общаться в чате, и много что ещё. Далеко не все рассказал в статье, так как это просто не возможно. Для работы со всеми форматами офисных документов рекомендую использовать Collabora Office, так как только он даст вам спокойно работать с любыми форматами офисных документов без конвертирования в формат docx, как это делает OnlyOffice. Устанавливайте, настраивайте и почувствуйте сами все прелести использования своего подконтрольного вам облачного хранилища.

Долго использовал работу NextCloud на дистрибутиве CentOS c базой данных MariaDB. При тестирования работы на Calculate Linux был приятно удавлен, что при одинаковых настройках производительность была лучше а после перехода на базу данных PosgreSQL расход памяти стал просто смешной.

Дизайн NextCloud

Разработчики предусмотрели желание пользователей произвести изменения внешнего вида. К сожалению не все можно поменять с панели управления. Некоторые изменения дизайна произведём в ручном режиме.

Темы оформления

Настройка дизайна производится на странице Администрирование — Темы оформления.

Вот так выглядит моя страница настройки:

collabora_sevo44_01

В итоге я получил такую страницу приветствия:

collabora_sevo44_02

Значок веб-сайта

Заменяем файл favicon.ico в папке согласно пути от корневой папки сайта ../core/img.

Существует множество сайтов предоставляющих возможность сделать файл значка веб-сайта. Обычно я использую портал указанный здесь.
Создание favicon.ico

После замены незабываем дать права на файл:

chown nginx:nginx /var/www/nextcloud/htdocs/core/img/favicon.ico

Картинка для Telegram

Картинка ссылки что будет в чате Телеграм находится по пути ../core/img и называется favicon-fb.png.

После замены на свой файл с аналогичными параметрами не забываем дать необходимые права:

chown -R nginx:nginx /var/www/nextcloud/htdocs/core/img/favicon-fb.png

При обновлении NextCloud файлы с папки ../core/img будут заменены на стандартные!

Документы по умолчанию для пользователя

Папка где лежат файлы которые по умолчанию увидит новый созданный пользователь находится по пути ../core/skeleton. Создайте в папке все необходимые файлы и папки. Не забудьте дать необходимые права на все файлы и папки:

chown -R nginx:nginx /var/www/nextcloud/htdocs/core/skeleton

Основные моменты работы с NextCloud

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

Настройка почтового сервера NextCloud

Первым делом необходимо настроить почтовый сервер.

Без настройки почтового сервера с ресурса не будут отправляться почтовые сообщения которые используются в разных настройках и использовании ресурса.

Настройки сервера SMTP находится по пути Администрирование — Дополнительные настройки — Почтовый сервер. В моем случае настройки выглядят следующим образом:

collabora_sevo44_07

Фоновые задания

Для оптимальной производительности важно правильно настроить выполнение задач в фоновом режиме. Для больших экземпляров рекомендуется использовать параметр «Cron».

Создадим необходимый файл с запуском от nginx:

cat /etc/cron.d/nextcloud_cron
= необходимый код =
# Global variables
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
HOME=/

#Nextcloud
*/15 * * * * nginx php -f /var/www/nextcloud/htdocs/cron.php

collabora_sevo44_11

Размер загружаемых файлов

В файле настроек Nginx для Nextcloud мы указали что размер загружаемого файла не может превышать 10 Gb. Добавим этот параметр на странице Администрирование — Дополнительные настройки — Управление файлами.

collabora_sevo44_08

Подключение к базе пользователей LDAP

Используя дополнение LDAP user and group backend можно подключать как LDAP каталог так и AD от Windows. На практике подключал оба варианта. Проблема возникла только с аватарами пользователей.

Настройка очистки удалённых файлов

Корзина включена по умолчанию. Настройки корзины позволяют использовать два параметра, минимальное время хранения удалённых данных и максимальное время хранения. Минимальное время — это количество дней, в течение которых файлы будет сохранены, после чего они могут быть удалены. Максимальное время — это количество дней, в течение которых данные будут удалены. Как минимальное, так и максимальное время можно определить параметрами настройки.

По умолчанию данные в корзине NextCloud хранятся 30 дней и удаляются в случае необходимости свободного места на диске.

Доступные значения:

  • auto— настройки по умолчанию. Хранит файлы и папки в мусорном ведре в течение 30 дней и автоматически удаляет в любое время после этого, если требуется пространство (обратите внимание: файлы не могут быть удалены, если пространство не требуется)
  • D, auto—  хранит файлы и папки в мусорном ящике для дней D +, удаляет в любое время в случае необходимости (обратите внимание: файлы не могут быть удалены, если пространство не требуется)
  • auto, D — удалите все файлы в мусорном ящике, которые старше D дней автоматически, удаляют другие файлы в любое время, если необходимо пространство
  • D1, D2 — хранить файлы и папки в мусорном ведре не менее D1 дней и удалять, когда превышает D2 дней
  • disabled — корзина мусора автоматически очищена, файлы и папки будут сохранены навсегда

В моем случае я использую параметр:

vim /var/calculate/www/nextcloud/htdocs/config/config.php
= необходимое дополнение =
 'trashbin_retention_obligation' => '7, auto', 
); 

Разграничение прав пользователей

Вот основные параметры:

  • Возможно создавать группы пользователей;
  • Каждой группе или пользователю давать права отдельные на просмотр, запись, удаление;
  • Возможность временного интервала на определённые правила доступа;
  • Каждой группе можно назначать администратора;
  • Квота на дисковое пространство;
  • Возможность делится любым своим ресурсом;
  • Возможность предоставлять доступ с интернета на просмотр, редактирование фотографий или документов.

Указаны далеко не все возможности, но уверяю вас гибкость доступа организована очень удобно и удовлетворит любые ваши требования.

Возможности доступа к данным

К данным размешенным на облачном хранилище NextCloud вы можете получить доступ разными способами:

  • Через любой веб браузер;
  • Используя клиент синхронизации, который есть под операционные системы Windows, Linux, Android, и тд…;
  • Подключится используя протокол WebDAV.

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

collabora_sevo44_18

Создание графиков и схем

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

После добавления документа вы увидите окно с выбором уже имеющихся шаблонов на основании которых вы можете построить свою схему.

collabora_sevo44_04

collabora_sevo44_05

Просмотр видео

К сожалению просматривать можно только формат mp4. Существует множество конвертеров по преобразованию файлов в нужный формат и даже онлайн сервисы. Будем надеяться что разработчики расширят количество форматов.

Для конвертации я использую программу HandBrake. Программа удобна тем что можно загрузить список файлов для конвертация.

В Calculate Linux программа устанавливается командой:

emerge --ask media-video/handbrake

Видео звонки между пользователями

Приложение Talk позволяет добавить на ваше облачное хранилище возможность совершать видео звонки пользователям. Создание группового звонка увеличивает привлекательность приложения в разы. Вся связь осуществляется по технологии WebRTC. Проект WebRTC имеет открытый исходный код и активно продвигается компанией Google. Суть проекта это возможность использовать для организации видеоконференций веб браузер без использования сторонних программ и технологий.

collabora_sevo44_06

Чат или Xmpp Client

Приложение JavaScript XMPP Chat позволяет добавить простой чат для общения пользователей с сохранением истории сообщений.

Существует три варианта использования:

  1. Internal — ограниченная функциональность: нет клиентов, кроме JSXC в Nextcloud, без многопользовательского чата, без серверных федераций,
  2. External —  подключится к собственному серверу XMPP,
  3. Managed (Beta service) — получить ваш собственный полнофункциональный XMPP-сервер, непосредственно размещенный основной командой JSXC.

Какой вариант использовать решать вам.

collabora_sevo44_03

Календари

С приложением Calendar все просто и понятно. Можно создавать и давать доступ на созданный календарь. Вносить события с разными параметрами. Очень удобна возможность подключать сторонние календари по технологии iCal.

collabora_sevo44_17

Подключение внешних хранилищ

Приложение External storage support пожалуй одно из моих самых любимых. Благодаря ему можно в своё хранилище подключить почти все имеющиеся варианты доступа к данным и настроить совместную работу.

При работе с подключённым Yandex.Disk есть один нюанс. При удалении файлов большого размера происходит ошибка и связана она с тем что файл вначале должен попасть в вашу корзину а уже затем удалится. Можно конечно увеличить время ожидание, но это не разумно. Отключать корзину тоже не целесообразно. Вероятно проблема будет решена в ближайших обновлениях приложения.

Перечень протоколов и сервисов которые можно использовать для подключения:

Подключать внешние хранилища можно со страницы Администрирование — Внешние хранилища, там же производится настройка приложения.

collabora_sevo44_16

В моем случае я не использую подключение к шарам на Windows, поэтому получаю предупреждение сверху страницы. При необходимости надо установить samba на сервере и сообщение пропадёт.

При разрешении пользователям монтировать свои ресурсы настройка находится на странице настройке пользователя.

collabora_sevo44_14

Если вы в последствии планируйте предоставить доступ другим пользователям, то вам необходимо перейти в расширенные настройки и поставить галочку «включить общий доступ». Это не включит общий доступ а даст возможность вам его включить и уже там указать все права и варианты доступа.

collabora_sevo44_15

Мониторинг работы NextCloud

На странице по ссылке Администрирование — Мониторинг вы найдёте все реальны параметры работы облачного хранилища.

Параметры отображаемые на странице Мониторинг:

  • Загрузка процессора,
  • Использование памяти,
  • Активные пользователи,
  • Ресурсы общего доступа,
  • Хранилище (количество пользователей и файлов),
  • Параметры PHP,
  • База данных.

collabora_sevo44_13

Журналирование работы NextCloud

Посмотреть логи вы можете зайдя по ссылке Администрирование — Журналирование. Присутствует возможность отсортировать по виду сообщений.

collabora_sevo44_12

Collabora Office установка на Docker

К сожалению после установки NextCloud вы сможете просматривать и работать только с документами формата txt. Для того чтобы работать со всеми видами офисных документов необходимо установить приложение для работы с этими форматами. В моем случае используется свободная версия Collabora Office. Можно установить и ONLYOFFICE но он имеет ограничение на количество пользователей в свободной версии ( 20 пользователей ) и не поддерживается официально разработчиками NextCloud.

После установки и тестирования OnlyOffice выяснилось что в этом приложении можно работать только с некоторыми форматами документов: DOCX, XLSX, PPTX, TXT, CSV. В том что OnlyOffice может открывать и другие типы файлов полное вранье! Для того чтобы открыть ODT, ODS, ODP, DOC, XLS, PPT, PPS, EPUB, RTF, HTML, HTM разработчики предусмотрели вариант конвертирование их в «лучший» формат и уже с этим файлом в последствии работать. Вот такое отношение к свободным форматам файлов у разработчиков OnlyOffice и присутствует явное навязывание форматов от всем нам известной компании. В Collabora вы сможете открыть и работать с любыми форматам и это даёт вам полую свободу и удобство в работе.

Отсутствие проверки Русского языка

Не увидев наличия родного языка для проверки орфографии я не долго думая написал письмо разработчикам и в течении часа получил ответ (приведу часть ответа сделанного переводчиком):

» Привет Алекс,

Спасибо за Ваше сообщение и за ваш интерес к организации совместной работы в Интернете.

Для начала я хотел бы представиться. Меня зовут Элой Креспо, получила исполнительный на работу производительность труда. Я буду твоим лучшим Контактное лицо для сотрудничества производительности для любых вопросов или коммерческих потребностей, которые вы могли бы иметь.

Что касается ваших вопросов, проверка орфографии-это новая функция, которую мы добавили в наш код версии несколько месяцев назад. Теперь, мы работаем на других языках и, конечно, русский для нашего следующего выпуска кода. Мы выпустим наш следующий код версии в конце этого года 2017.»

Помимо этого я так же получил массу полезной информации. Конечно я буду помогать разработчикам свободного программного обеспечения сделать более удобным работу с документами.

Приятная новость! Как и обещали разработчики в конце года вышла новая версия в которой работает проверка орфографии для русского языка. Посмотреть информацию о версиях можно на странице https://www.collaboraoffice.com/news-releases/.

Установка и настройка Docker

Установка Docker на Calculate Linux или Gentoo:

emerge --ask app-emulation/docker

Добавление в автозагрузку:

rc-update add docker default
= вывод команды =
* service docker added to runlevel default

Запуск Dockera:

/etc/init.d/docker start
docker | * Caching service dependencies ...            [ ok ]
docker | * /var/log/docker.log: creating file
docker | * /var/log/docker.log: correcting mode
docker | * /var/log/docker.log: correcting owner
docker | * Starting docker...                          [ ok ]

Установка Collabira Office в Docker

Скачиваем контейнер командой:

docker pull collabora/code
= вывод команды =
===
Using default tag: latest
Trying to pull repository docker.io/collabora/code ... 
latest: Pulling from docker.io/collabora/code
bd97b43c27e3: Pull complete 
6960dc1aba18: Pull complete 
2b61829b0db5: Pull complete 
1f88dc826b14: Pull complete 
73b3859b1e43: Pull complete 
2cb7a8fe8de9: Pull complete 
2458b914d686: Pull complete 
7470c2907839: Pull complete 
Digest: sha256:a89941eb0aa140b82e658f34f840ba3c35f47c3f3eec79694fc460ae9fced79d

Запустим контейнер докера заменив cloud\\.sevo44\\.ru на ваш домен сервера Nextcloud (с сохранением обратного слэша).

docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=cloud\\.sevo44\\.ru' --restart always --cap-add MKNOD collabora/code

Проверка работы контейнера Docker в системе

Посмотрим результат проделанных операций:

netstat -lnpt
= часть вывода =
tcp  0  0   127.0.0.1:9980    0.0.0.0:*   LISTEN   4582/docker-proxy 

Согласно вывода мы видим что контейнер работает на порту 9980 и ждёт к себе обращений для выполнения поставленных задач. Нам необходимо средствами Nginx настроить связь нашего облачного хранилища и контейнера Docker с Collabora Office.

Посмотрим состояние контейнеров Docker в сисетме:

docker ps -a
= часть вывода команды =
9558da76e647 collabora/code "/bin/sh -c 'bash ..." 2 weeks ago Up 42 hours 127.0.0.1:9980->9980/tcp relaxed_lovelace

Обновление Collabora Office в Docker

Скачиваем новое изображение докера:

docker pull collabora/code

Выводим список докеров в системе:

docker ps
= вывод команды =
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
37359809d296 collabora/code "/bin/sh -c 'bash ..." 2 weeks ago Up 4 minutes 127.0.0.1:9980->9980/tcp dreamy_hamilton

Останавливаем и удаляем изображение Докера Collabora Online:

docker stop 37359809d296
docker rm 37359809d296

Заново установим выполнив команду:

docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=cloud\\.sevo44\\.ru' --restart always --cap-add MKNOD collabora/code

Новая версия установлена!

Внимание! Перед проверкой новой версии удалите кэш и куки интернет браузера.

Nginx для Collabora Office

При настройке я не стал устанавливать самоподписные сертификаты SSL, а сразу получил свободные от Let’s Еncrypt. Если кто пробовал настраивать с само подписными напишите пожалуйста в комментариях.

Создадим необходимую корневую папку необходимую для получения сертификата для Collabora и дадим необходимые права:

mkdir -p /var/www/office
chown nginx:nginx /var/www/office

Файл настройки Collabora для Nginx

Параметры для первого получения SSL сертификата:

vi /etc/nginx/conf.d/office.conf
= необходимый код =
server {
 listen 80;
 server_name office.sevo44.ru;
root /var/www/office;
}

Проверяем и перезапускаем Nginx:

nginx -t
= вывод команды = 
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 
nginx: configuration file /etc/nginx/nginx.conf test is successful 

/etc/init.d/nginx reload
= вывод команды =
nginx | * Checking nginx' configuration ...                [ ok ]
nginx | * Refreshing nginx' configuration ...              [ ok ]

Получение SSL для Collabora online Office

Более детально получение SSL описано в материале «Установка Let`s Encrypt для Calculate и Gentoo«. На его основе было произведено получение сертификата для домена office.sevo44.ru.

Файл настройки для работы с SSL сертификатом от Let’s Еncrypt в моем случае получил такой вид:

vim /etc/nginx/conf.d/office.conf 
= необходимые изменения с пояснениями =
# office.sevo44.ru
server { 
 listen 80; 
 server_name office.sevo44.ru; 
 rewrite ^ https://$server_name$request_uri? permanent; 
}

server {
 listen 443 ssl;
 server_name office.sevo44.ru;
 root /var/www/office;

ssl_protocols TLSv1.1 TLSv1.2;
 ssl_certificate /etc/letsencrypt/live/office.sevo44.ru/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/office.sevo44.ru/privkey.pem;

# static files
 location ^~ /loleaflet {
 proxy_pass https://localhost:9980;
 proxy_set_header Host $http_host;
 }

# WOPI discovery URL
 location ^~ /hosting/discovery {
 proxy_pass https://localhost:9980;
 proxy_set_header Host $http_host;
 }

# websockets, download, presentation and image upload
 location ^~ /lool {
 proxy_pass https://localhost:9980;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "Upgrade";
 proxy_set_header Host $http_host;
 }
}

Не забываем проверить и перезагрузить Nginx!

Осталось добавить приложением и указать нужные данные в режиме администратора Nextcloud.

collabora_sevo44_10

Collabora_sevo44_09

Вывод

Облачное хранилище NextCloud это просто бездна возможностей. Каждый раз откладывал публикацию статьи так как находил всё новые и новые полезности. Скорей всего ещё не раз буду добавлять новое в эту статью. Буду признателен если в комментариях будут какие то нюансы в работе или рекомендации по приложениям. Последнее что мне не удаётся настроить это приложение PhoneTrack которое позволяет с устройств имеющих GPS получать даные о местоположении в реальном времени и видеть маршруты передвижения. Если кто настраивал поделитесь информацией.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Хотите сказать денежное спасибо? Подарите денежку!