Рассмотрим некоторые моменты настройки NextCloud работающем на Calculate Linux. Установим Collabora Office и другие полезные приложения. Расскажу про основные моменты работы и настройки этого свободного облачного хранилища. Большой диапазон возможностей в использовании.
Введение
За основу была взята настройка свободного облачного хранилища из статьи NextCloud установка на Nginx.
Создание облачного хранилища для работы с файлами удобная и практичная технология. Облачное хранилище на базе NextCloud даёт воистину восхитительные возможности. В одном месте вы сможете настроить совместную работу с документами, безопасность, и общение. Облако позволит сократить количество стороннего программного обеспечения используемого пользователями. Разве не сказка использовать для работы практически любой браузер, смотреть видео, редактировать документы, делать видео звонки, общаться в чате, и много что ещё. Далеко не все рассказал в статье, так как это просто не возможно. Для работы со всеми форматами офисных документов рекомендую использовать Collabora Office, так как только он даст вам спокойно работать с любыми форматами офисных документов без конвертирования в формат docx, как это делает OnlyOffice. Устанавливайте, настраивайте и почувствуйте сами все прелести использования своего подконтрольного вам облачного хранилища.
Долго использовал работу NextCloud на дистрибутиве CentOS c базой данных MariaDB. При тестирования работы на Calculate Linux был приятно удавлен, что при одинаковых настройках производительность была лучше а после перехода на базу данных PosgreSQL расход памяти стал просто смешной.
Дизайн NextCloud
Разработчики предусмотрели желание пользователей произвести изменения внешнего вида. К сожалению не все можно поменять с панели управления. Некоторые изменения дизайна произведём в ручном режиме.
Темы оформления
Настройка дизайна производится на странице Администрирование — Темы оформления.
Вот так выглядит моя страница настройки:
В итоге я получил такую страницу приветствия:
Значок веб-сайта
Заменяем файл favicon.ico в папке согласно пути от корневой папки сайта ../core/img.
Существует множество сайтов предоставляющих возможность сделать файл значка веб-сайта. Рекомендую использовать Генератор пиктограмм, так как он позволяет делать иконки из картинок размером 5 Мб.
После замены незабываем дать права на файл:
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 находится по пути Администрирование — Дополнительные настройки — Почтовый сервер. В моем случае настройки выглядят следующим образом:
Фоновые задания
Для оптимальной производительности важно правильно настроить выполнение задач в фоновом режиме. Для больших экземпляров рекомендуется использовать параметр «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
Размер загружаемых файлов
В файле настроек Nginx для Nextcloud мы указали что размер загружаемого файла не может превышать 10 Gb. Добавим этот параметр на странице Администрирование — Дополнительные настройки — Управление файлами.
Подключение к базе пользователей 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.
При использовании клиента на своём рабочем компьютере вы можете настроить синхронизацию, что даст дополнительное удобство в работе с файлами. В случае недоступности сервера вы сможете поработать с вашими документами которые при появлении доступа к серверу синхронизируются с сервером.
Создание графиков и схем
Приложение Draw.io позволяет создавать разные схемы, графики и позволяет как импортировать так и экспортировать во все популярные форматы. Удобней и понятней программы для создания схем я не встречал.
После добавления документа вы увидите окно с выбором уже имеющихся шаблонов на основании которых вы можете построить свою схему.
Просмотр видео
К сожалению просматривать можно только формат mp4. Существует множество конвертеров по преобразованию файлов в нужный формат и даже онлайн сервисы. Будем надеяться что разработчики расширят количество форматов.
Для конвертации я использую программу HandBrake. Программа удобна тем что можно загрузить список файлов для конвертация.
В Calculate Linux программа устанавливается командой:
emerge --ask media-video/handbrake
Видео звонки между пользователями
Приложение Talk позволяет добавить на ваше облачное хранилище возможность совершать видео звонки пользователям. Создание группового звонка увеличивает привлекательность приложения в разы. Вся связь осуществляется по технологии WebRTC. Проект WebRTC имеет открытый исходный код и активно продвигается компанией Google. Суть проекта это возможность использовать для организации видеоконференций веб браузер без использования сторонних программ и технологий.
Чат или Xmpp Client
Приложение JavaScript XMPP Chat позволяет добавить простой чат для общения пользователей с сохранением истории сообщений.
Существует три варианта использования:
- Internal — ограниченная функциональность: нет клиентов, кроме JSXC в Nextcloud, без многопользовательского чата, без серверных федераций,
- External — подключится к собственному серверу XMPP,
- Managed (Beta service) — получить ваш собственный полнофункциональный XMPP-сервер, непосредственно размещенный основной командой JSXC.
Какой вариант использовать решать вам.
Календари
С приложением Calendar все просто и понятно. Можно создавать и давать доступ на созданный календарь. Вносить события с разными параметрами. Очень удобна возможность подключать сторонние календари по технологии iCal.
Подключение внешних хранилищ
Приложение External storage support пожалуй одно из моих самых любимых. Благодаря ему можно в своё хранилище подключить почти все имеющиеся варианты доступа к данным и настроить совместную работу.
При работе с подключённым Yandex.Disk есть один нюанс. При удалении файлов большого размера происходит ошибка и связана она с тем что файл вначале должен попасть в вашу корзину а уже затем удалится. Можно конечно увеличить время ожидание, но это не разумно. Отключать корзину тоже не целесообразно. Вероятно проблема будет решена в ближайших обновлениях приложения.
Перечень протоколов и сервисов которые можно использовать для подключения:
Подключать внешние хранилища можно со страницы Администрирование — Внешние хранилища, там же производится настройка приложения.
В моем случае я не использую подключение к шарам на Windows, поэтому получаю предупреждение сверху страницы. При необходимости надо установить samba на сервере и сообщение пропадёт.
При разрешении пользователям монтировать свои ресурсы настройка находится на странице настройке пользователя.
Если вы в последствии планируйте предоставить доступ другим пользователям, то вам необходимо перейти в расширенные настройки и поставить галочку «включить общий доступ». Это не включит общий доступ а даст возможность вам его включить и уже там указать все права и варианты доступа.
Мониторинг работы NextCloud
На странице по ссылке Администрирование — Мониторинг вы найдёте все реальны параметры работы облачного хранилища.
Параметры отображаемые на странице Мониторинг:
- Загрузка процессора,
- Использование памяти,
- Активные пользователи,
- Ресурсы общего доступа,
- Хранилище (количество пользователей и файлов),
- Параметры PHP,
- База данных.
Журналирование работы NextCloud
Посмотреть логи вы можете зайдя по ссылке Администрирование — Журналирование. Присутствует возможность отсортировать по виду сообщений.
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' -e "username=admin" -e "password=pass*" --restart always --cap-add MKNOD collabora/code
Необязательные параметры»username=admin» и»password=pass*» включают функцию консоли администратора Сollabora. Доступ к консоли администратора осуществляется по адресу https://<CODE-domain>/loleaflet/dist/admin/admin.html
Проверка работы контейнера 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' -e "username=admin" -e "password=pass*" --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.
Вывод
Облачное хранилище NextCloud это просто бездна возможностей. Каждый раз откладывал публикацию статьи так как находил всё новые и новые полезности. Скорей всего ещё не раз буду добавлять новое в эту статью. Буду признателен если в комментариях будут какие то нюансы в работе или рекомендации по приложениям. Последнее что мне не удаётся настроить это приложение PhoneTrack которое позволяет с устройств имеющих GPS получать данные о местоположении в реальном времени и видеть маршруты передвижения. Если кто настраивал поделитесь информацией.