Nextcloud – больше чем просто замена для гуглдиска

22.10.2018

Сегодня поговорим о такой замечательной вещи как nextcloud и его широких возможностях. Nextcloud появился в 2016 году, когда основатель ownCloud решил форкнуть проект, вероятно из-за сомнений связанных с некоторыми аспектами коммерческого подхода стоящей за ownCloud компании. Nextcloud, как и родительский проект выпускается под копилефтной лицензией AGPL-3.0, в написании кода поучаствовали уже более пятисот людей (я ранее писал о тысяче – к сожалению, не помню откуда цифра; вероятно, ошибся), что само по себе впечатляет. Итак, nextcloud в самом базовом виде – это программа для хранения и синхронизации файлов, которое можно установить на собственном сервере (или даже одноплатном компьютере) с GNU/Linux, что делает его альтернативой для dropbox и google drive. Устанавливается он в несколько шагов: сначала с оф сайта нужно скачать и распаковать архив, затем сделать веб-сервер владельцем директории с распакованными файлами, настроить виртуальный хост, создать базу данных с пользователем и наконец вбить адрес виртуального хоста в браузере и заполнить все необходимые поля (ну и конечно желательно настроить SSL). И все, наслаждаемся своим персональным хранилищем.

Но конечно возможности nextcloud гораздо шире. Пара слов о том, что можно сделать без прикручивания плагинов и дополнительных настроек. Можно заливать (в т.ч. через drag-n-drop) файлы и папки. Их же можно качать и расшаривать. Причем шары можно (и желательно) закрывать паролем. Можно создавать пользователей. Можно проигрывать аудио-видео файлы. Также из веб-интерфейса можно редактировать текстовые файлики. Наконец, сервера nextcloud можно связать в федерацию.

Теперь поговорим о том, какое море возможностей открывают для нас плагины. Их довольно много – некоторые просто улучшают эргономику некстклауда – например, контекстное меню для файлов и папок; SQL и LDAP-бекенды; возможность пользователь_кам создавать “круги” и расшаривать им файлы. Но есть также и приложения, которые добавляют новые функции.

Имхо одно из самых важных – интеграция Collabora Online Office. По сути речь идет об онлайн-версии родного для большинства линуксоид_ок Libre Office, с несколько расширенным функционалом. Собственно, название говорит само за себя – пользовател_и и гости могут совместно редактировать документ, оставлять комментарии, просматривать историю правок. Минус – Collabora может серьезно загрузить систему. Еще один минус – разраб_ки рекомендуют использовать docker-образ, что не очень эффективно, когда людей на сервере много. Можно установить пакет без докера, но для debian и производных он кривой – нужно редактировать файл службы, прописывать корректные пути. В целом мне кажется, что некстклауд+коллабора – это полноценная замена гуглдокам.

collabora Скриншот Collabora в Nextcloud

Есть несколько почтовых веб-клиентов. “Официальный” сделан на базе клиента horde. Я не особо их тестировал, потому не могу сравнить удобство веб-почты на некстклауде в сравнении с гугловской – особенно в том, что касается читабельности цепочек писем, но сама возможность настроить почтовый сервер и использовать некстклауд в качестве фронтенда радует. Есть, однако, нюансы. До 14-й версии пользовательские пароли хэшируются алгоритмом bcrypt, который не поддерживается линуксом, потому если хочется, чтобы dovecot тянул имена аккаунтов и пароли из базы некстклауда нужно потанцевать с бубном или использовать SQL/LDAP-бекенд. Но в последней версии по умолчанию используется более надежный алгоритм argon2 (если используемая версия php >=7.2), который как раз поддерживается, потому с этим проблем быть не должно.

Чаты и звонки. Реализация есть аж в двух формах. Во-первых, старый добрый xmpp – веб-клиент поставляется со встроенным сервером; однако сервер минималистичен и дает возможность чатиться только в рамках веб-интерфейса, без использования сторонних клиентов – что плохо. Но можно установить полноценный джаббер-сервер и использовать веб-интерфейс в качестве фронтенда. Для этого придется немножко повозиться с настройками и настроить srv-записи в DNS, иначе будут проблемы со связностью. Второй вариант – Nextcloud Talk, с настройкой которого совсем не нужно возиться и для которого есть мобильные клиенты. Это форк проекта spreed. Он ориентирован в первую очередь на видео и аудиозвонки, но текстовый чат тоже есть, в том числе групповой, в том числе публичный с возможностью запаролить. Все шифруется. Правда есть несколько маленьких минусов и один огромный. Ну ладно, что нет форматирования текстов, ну ок, что нет смайликов, ну еще можно выдержать отсутствие возможности загружать сторонние файлы в разговор. Плохо, что нельзя удалять отдельные сообщения. Но вот что совсем жизнь портит – это когда открываешь диалог в котором тонны сообщений и он бесконечно долго грузится, потому что загружаются ВСЕ сообщения. Всякие тюнинги БД не помогают, потому что корень проблемы в том, как сервер работает.

Конкретно я нахожу полезными для себя еще пару приложений. Во-первых, закладки. Здесь тоже не нужно возиться с установкой и все очень просто. Копируешь ссылку, вставляешь – вуаля, можно заходить с другого устройства. Закладки можно помечать тегами ради удобной сортировки. Минус – при создании закладки её сходу тегом пометить нельзя, нужно после создания выделить и пометить, что не не очень юзабельно. Но в целом ок, я доволен. Во-вторых, аудиоплеер. Их есть аж два. Я пользуюсь тем, который music – тут тоже все просто: устанавливаешь, сканируешь, слушаешь. Можно слушать по исполнителям, по альбомам, по отдельной песне. Треки сортируются автоматически. Можно делать свои плейлисты, что тоже хорошо. В-третьих – записки. Они тоже существуют в нескольких вариациях. Есть просто записки, есть быстрые записки, есть Carnet, есть QOwnNotes. Последний не пробовал, просто записки и Carnet свое дело делают, но это совсем не то же самое что Evernote – нет группировки по тегам, файлики можно добавлять только в Carnet, примитивной имплементации задачек с дедлайнами нет (правда, для задачек есть отдельные приложения). Я пользуюсь быстрыми записками, которые также примитивны, но довольно удобно просто открывать страницу приложения и видеть разноцветные квадраты с текстом, без необходимости выделять конкретную записку.

Кстати о задачках. В Nextcloud они тоже есть в нескольких реализациях. Есть простое приложение Tasks, в котором можно делать тонны подзадач, с указанием дедлайнов и времени начала, выставлять приоритеты и сортировать по тегам, синхронизировать с мобильным, но нельзя назначать на других людей… что в общем-то важно. Еще есть Deck – аналог Trello и подобных Kanban-штук. Там задачи можно назначать на других людей, но до трелло недотягивает – нет комментирования, нет чеклистов и подзадач. В принципе Tasks – хороший выбор для персонального использования, а для групповых задач имхо лучше использовать другой селфхостед ресурс – Kanboard, который кроме того что обладаем всем тем, чего нет в дек, также поддерживает интеграцию того же джаббера (который можно одновременно интегрировать в некстклауд) или других чатиков.

deck Скриншот приложения Deck

О чем еще упомянуть? Есть приложение с календарем. Есть приложение, которое позволяет синхронизировать смски. Есть голосовалка с вариантами ответов “да”, “нет”, “хз” – тоже не loomio, но если потребности совсем базовые, то сойдет. Есть хорошее приложение для чтения RSS-лет. Есть приложение с прогнозом погоды.

В целом мне кажется, что со всеми приложениями некстклауд вступает в противоречие с философией Unix: “пусть программа выполняет одну задачу, но делает это хорошо”. По моим впечатлениям nextcloud хорошо выполняет свою основную задачу, но значительная часть расширяющих функционал приложений не может полноценно заменить специализированные ресурсы. В принципе если бы удалось интегрировать каждое узкоспециализированное приложение с другими, на выходе получилась бы хорошая унифицированная система. Вполне вероятно это все еще впереди, однако даже в том что касается некоторых базовых функций для многих программ предстоит еще много работы.

UPD 23.01.2020 На дворе 2020-й год и вот-вот буквально на днях вышла 18-я версия и был официально запущен Nextcloud Hub. Насколько я понял, Nextcloud Hub - это тот же некстклауд, в который теперь предустанавливаются приложения Mail, Calendar, Talk, Flow и OnlyOffice + вроде как поддержка единого логична через SAML тоже. По сути ничего не изменилось, просто админ_ам нужно меньше возиться с установкой софта. Про календарь и почту вверху уже в принципе все было сказано. Talk подправили, - теперь он не грузит ВСЕ сообщения с самого первого, - хвала летающему макаронному монстру! Плюс его интегрировали с онлайн-офисами и файловым менеджером. Но вот ни редактировать сообщения, ни удалять по-прежнему нельзя. Смайликов-стикеров нет. Групповые чаты визуально не отделены от персональных. В общем, по-прежнему не ахти. Flow призван автоматизировать кое-какие задачи, но что с ним делать и зачем - ума не приложу.

Теперь про OnlyOffice. Еще один онлайн-офис, который от коллаборы отличается интерфейсом и лучшей поддержкой майкрософтовских документов. Его разраб_ы еще много чем свою поделку нахваливают. В некстклауд теперь по умолчанию устанавливается коммьюнити-эдишн. Все так же есть возможности для совместного редактирования, комментариев и чата. Правда, на гитхабе некстклауда ругаются, что офис не позволяет одновременно редактировать документ более то-ли 10, то-ли 20 юзер_кам. Обойти это дело можно поменяв значение в каком-то конфиге (не помню, лень искать, но в общем страждущие теперь будут знать куда идти).

onlyoffice OnlyOffice

Что еще? Deck по-прежнему не очень - вместо него рекоммендую использовать специальное, отдельное от некстклауда веб-приложение под названием "Тайга". Добавили много самых разных приложений. Многие не очень. Например, Social - превращает некстклауд в соцсеть, позволяет общаться с юзер_ками серверов Mastodon (и вероятно прочей Fediverse), но само по себе приложение очень рудиментарное. А, еще закладки оказались весьма глючными, и до сих пор их не пофиксили. Но в целом я некстклаудом очень доволен. Мне нравится синхронизация файлов между устройствами, мне нравится календарь, а без News для чтения RSS я не знаю как жил бы. Ну а для всего, что в некстклауде не нравится, но при этом необходимо, я использую специализированные ресурсы.

И последнее. Конечно, нахваливать некстклауд - это одно, а вот как быть всем, кто желает опробовать, но не знает где и как?

  1. Самый лучший вариант: объединиться с другими желающими, купить домен, арендовать VPS, найти человека, котор_ая мог_ла бы для вас некстклауд на VPS установить, или разобраться и сделать все самостоятельно. Это не сложно в принципе, особенно с кучей разных туториалов в интернете.
  2. Воспользоваться какой-нибудь из публичных опций. Я настоятельно так поступать не рекоммендую, поскольку ваши файлы на сервере будут не зашифрованы (об этом кстати поговорим очень скоро), да и пользуетесь вы по сути гуглом-в-миниатюре. Всегда лучше организовываться в коммьюнити и совместно держать всю необходимую для себя инфраструктуру. А теперь какие есть опции:
  • disroot.org
  • можно выбрать провайдера себе из списка на официальном сайте нексткалуда