Проект основан как форк платформы OCIS (ownCloud Infinite Scale). В отличие от старой кодовой базы ownCloud и ответвившегося от неё проекта NextCloud серверная часть OCIS была переписана с языка PHP на Go. Создатели OpenCloud попытались избавить кодовую базу от лишней функциональности и сосредоточиться на максимально качественной реализации основной задачи — совместной работы с файлами.
Cерверная часть написана на языке Go, распространяется под лицензией Apache 2.0 и поддерживает программные интерфейсы WebDAV, gRPC, Microsoft RESTful Web API Graph, OCS, OCM 1.1 и OpenID Connect. Сервер реализован с использованием концепции микросервисов и может масштабироваться от установки на платы Raspberry Pi до больших многосерверных внедрений.
Десктоп-клиент написан на С++ с использованием Qt, опубликован под лицензией GPLv3 и поддерживает сборку для Windows, macOS и Linux. В клиент также встроена функция синхронизации файлов и монтирования совместного хранилища в виде виртуальной файловой системы. Web-интерфейс написан на TypeScript с использованием фреймворка Vue.js и предложен под лицензией AGPLv3. Имеются мобильные приложения для Android и iOS.
Помимо функций для хранения и обмена файлами, а также синхронизированного доступа к коллекции файлов с разных устройств, OpenCloud включает возможности для совместного редактирования документов в режиме реального времени, интеграции с офисным пакетом Collabora Online и редактором Markdown Editor (ToastUI), извлечения текста из изображений и отсканированных документов, использования протокола ICAP для проверки загружаемых файлов в антивирусных пакетах.
Для публикуемых файлов можно ограничивать время жизни, предоставлять доступ по ссылке и защищать содержимое паролем. Для упрощения навигации по файлам поддерживаются теги, фильтры и полнотекстовый поиск. В системе отслеживается вся история работы с файлами и предоставляется поддержка отката изменений на определённую версию в прошлом. Возможна организация командной работы с закреплением подкаталогов («рабочих пространств») за отдельными командами.
Для администратора предоставляется интерфейс детализированного управления правами доступа и пользователями (например, можно разрешить пользователю только просмотр или только загрузку в хранилище). Поддерживается управление доступом на основе ролей (RBAC — Role-Based Access Control). В платформе применяется архитектура Privacy-First, подразумевающая, что пользователь OpenCloud с правами администратора не может получить доступ к контенту пользователей.
В новой версии:
- В текстовом редакторе реализована возможность одновременной работы нескольких людей над файлами в формате Markdown и ocnote с отражением вносимых изменений в реальном времени. Появилась возможность подключения пользователей в режиме только для чтения, которые могут лишь наблюдать за подготовкой документа.
- Настройки поисковых движков Bleve и OpenSearch унифицированы для выдачи похожих результатов независимо от поискового бэкенда (по умолчанию предлагается движок Bleve, но поставляется и OpenSearch, который лучше подходит для крупных проектов) Снижено потребление памяти при использовании движка Bleve (с 1.1 ГБ до 120 МБ при индексации 100 тысяч файлов).
- Добавлена поддержка движущихся фотографий с возможностью из предпросмотра при наведении мыши или по нажатию кнопки.
- Ускорена прокрутка и отрисовка миниатюр для каталогов с большим числом изображений (1000+).
- Обновлён дизайн страниц ввода пароля, предупреждения об отказе в доступе и загрузки конфиденциальных файлов.
- Добавлена возможность использования системного диалога для управления выводом на печать, поддерживающего экспорт в PDF.
- В панель добавлена кнопка «More actions», в которую переносятся инструменты, не вместившиеся в ширину окна.
- Для 37 языков программирования реализована подсветка синтаксиса, среди прочего работающая внутри блоков с кодом в Markdown-файлах.
- Обеспечена поставка тем оформления в форме Docker-образов.
Источник: http://www.opennet.ru/opennews/art.shtml?num=66291
