ServerAdmin.ru
27.6K subscribers
189 photos
25 videos
9 files
2.52K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
Я уже много лет использую систему для совместной работы и редактирования документов onlyoffice. По сути, это аналог Google docs, только его можно установить на свой собственный сервер. При этом есть полнофункциональная бесплатная версия, которая закрывает многие типовые потребности в работе с документами.

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

https://serveradmin.ru/ustanovka-i-nastrojka-onlyoffice/

#onlyoffice #docs
​​Мне известны 3 self-hosted движка для организации работы с документами через браузер:

Onlyoffice
LibreOffice Online
Collabora Online

Первый наиболее популярный. Я сам его использую уже много лет. Есть статьи по установке и настройке. В настоящее время онлайн редактор документов Яндекса работает на Onlyoffice. Минус тут простой и очевидный - продукт платный, бесплатная версия имеет ограничения по функционалу.

Решил познакомиться и потестировать Collabora Online. Сами по себе подобные редакторы не являются готовыми рабочими инструментами. Их интегрируют с какой-то средой хранения и управления файлами. У Onlyoffice есть свой CommunityServer. Collabora Online обычно используют в связке с Nextcloud.

Для быстрого теста не надо разбираться в установке и настройке. Можно сразу скачать готовый образ для VM. Там настроенная система на дисках трёх форматов для гипервизоров на выбор: vmware, virtualbox, kvm.

Я просто скачал qcow2 образ диска и запустил с него систему на proxmox. После старта VM запускается графический установщик, который позволяет преднастроить систему. Если выберете русский язык, то будете разбираться, как в установщике сменить раскладку. Не буду лишать вас этого удовольствия 😂. Кто догадается, как это сделать, поделитесь информацией.

В целом, всё достаточно удобно сделано, чтобы как можно быстрее и проще попробовать продукт и составить свое впечатление. Во время установки пакетов заметил, что на сервер ставится nagios для мониторинга. Базовая ОС - Debian 9. Меня это немного удивило. Думал там Suse будет, так как продукт немецкий.

Учётка для входа будет Administrator (я не сразу это понял) и пароль, который задали во время установки. По ssh по этим же данным подключаться. И еще важный нюанс. В момент преднастройки вас просили указать какой-то домен. Заходить нужно по этому домену, добавив его себе в hosts, если он локальный. Я указал homelab.intranet. Сначала по ip заходил, но были ошибки. Добавил dns запись, зашёл по ней и все нормально заработало.

Далее моё субъективное мнение. Мне редактор Onlyoffice понравился больше. Более отзывчивый и привычный интерфейс.

#docs
​​Рассказал на днях про популярную систему для ведения документации. На удивление, куча людей отписались, что используют DocuWIKI до сих пор. Я прекрасно знаю эту систему, активно использовал её для хранения документации. Несомненный плюс, что все заметки хранятся в текстовых файлах. Никаких баз данных и лишних прослоек для доступа к контенту. Но лично я никогда не любил писать в классическом wiki формате. Для меня это страдание.

Расскажу про ещё один подход для создания документации с помощью так называемых генераторов статического контента. Одним из популярных представителей подобного рода проектов является MkDocs. Конкретно его тема Material for MkDocs является самой популярной на github по количеству звёзд среди подобных проектов для ведения документации.

Идея там такая. Вы пишите какой-то контент в формате Markdown и сохраняете его в отдельных .md файлах. Потом берёте MkDocs, пишите для него конфиг в формате yaml, где настраиваете структуру и внешний вид сайта, и прогоняете генератор по этому контенту. На выходе получаете статический html сайт.

Основная идея такого подхода в том, что контент хранится в GIT, а потом с помощью CI после обновления репозитория генерируется сайт. Для этого используется docker контейнер с MkDocs. Можно автоматизировать создание документации, выработав определённые правила написания документации в репозиториях.

С помощью подобной системы выполнена публичная wiki RockyLinux. Там впервые и увидел Material for MkDocs. Сходил, посмотрел, что это такое и благополучно забыл. А на днях вспомнил, когда обсуждали wiki системы. Документация самой Material for MkDocs тоже выполнена на ней же. Там всё более красиво и аккуратно, нежели в wiki от Rocky. Хороший пример для оценки.

Сайт - https://squidfunk.github.io/mkdocs-material/
Исходники - https://github.com/squidfunk/mkdocs-material

#wiki #devops #docs
​​Сейчас много людей в поиске, чем заменить Active Directory. Нужно понимать, что аналогов этого продукта просто не существует. Придётся искать какие-то приемлемые для себя альтернативы. Одну из таких условных альтернатив хочу вам показать.

Есть немецкий проект Univention Corporate Server (UCS). Это LDAP сервер на базе Samba с управлением через web интерфейс. Есть бесплатная и платная версия. Основные отличия - в бесплатной версии нет поддержки и после выхода очередного релиза, старый поддерживается только 6 месяцев, в то время как платный - 5 лет.

Основная фишка UCS - магазин приложений, которые сразу же после установки настроены на использование этого LDAP сервера. Я развернул Nextcloud, к нему для редактирования документов OnlyOffice Docs и почтовый сервер поставил, который на базе Postfix и Dovecot. Добавил в систему нового пользователя. Под ним можно сразу авторизоваться в любом установленном приложении.

Всё управление через web интерфейс. Подразумевается, что в консоль вам вообще ходить не нужно. Дистрибутив построен на базе Debian. Это сразу становится очевидно в момент установки. Для загрузки дистрибутива необходимо будет указать свой email. Туда же придёт файл с бесплатной бессрочной лицензии. Без неё невозможна установка дополнительных приложений.

Из полезных приложений, что есть в App Center (полный список) я заметил, помимо тех, что уже указал, следующие: Guacamole, Rocket.Chat, Squid, Prometheus Alertmanager, Wekan (Канбан доска и To-Do менеджер), Wordpress. Все они настроены на работу с LDAP сервером по умолчанию.

Я не знаю, что там со стабильностью и надёжностью, но в целом неплохое готовое решение из коробки. Я всё настроил, не залезая в консоль вообще. Создал юзеров, ящики. Проверил работу редактора документов, подключил почту через Thunderbird. Всё запустилось без каких-либо проблем.

Сайт - https://www.univention.com/products/ucs/ucs-management-system/
Исходники - https://github.com/univention/univention-corporate-server
Demo - https://demo.univention.de

#ldap #samba #docs
​​Я неоднократно в заметках обозревал инструменты для ведения документации. Вот примеры продуктов:
MkDocs - инструмент для генерации документации в виде статического сайта на базе текстовых файлов в формате markdown.
BookStack - open source платформа для создания документации и вики-контента.
Wiki.js - готовая wiki платформа с поддержкой редакторов wiki, markdown, wysiwyg.

Сегодня хочу рассказать про ещё один инструмент для автоматизации написания документации. А конкретно по её визуализации с помощью схем и диаграмм. Речь пойдёт про Mermaid. Это известный и популярный инструмент для создания визуализаций и диаграмм на основе написанного кода.

Основная идея Mermaid в том, что вы пишите текст, а на выходе получаете визуализацию. Это позволяет решать целый спектр задач, таких как:
1️⃣ Автоматизация создания контента.
2️⃣ Совместная работа с контентом.
3️⃣ Простая и понятная схема сохранения истории изменений.

Для понимания наглядный пример. Вот такой текст:
graph TD;
  A-->B;
  A-->C;
  B-->D;
  C-->D;
Превращается в картинку с блок схемой и стрелочками. Посмотрите остальные примеры на главной странице проекта, чтобы сразу понять, какой это инструмент и что с его помощью можно нарисовать.

С помощью Mermaid можно автоматизировать создание и изменение схем, редактируя текст после изменения структуры объектов. Автоматически будет меняться и картинка. История изменений отслеживается, всегда можно посмотреть прошлый вариант.

Самый простой и наглядный пример, где это может пригодиться - описание взаимодействия микросервисов, прохождение пользовательских запросов. Это как раз решается на уровне рисования блок-схем со стрелочками. Наглядные примеры с официального блога kubernetes.

На практике применение выглядит следующим образом. К примеру, github нативно поддерживает диаграммы Mermaid.js в README-файлах. Можно прямо в них писать код и он будет отрисовываться в картинки. Также Mermaid.js нативно интегрирована в GitLab, Gitea, Joplin и Notion. Для многих сервисов есть плагины. А в общем случае это пакет для nodejs, который можно поставить локально через nmp, запускать как сервис и обращаться к нему или с помощью CLI прогонять через него текстовые данные:
# npm install -g mermaid
# npm install -g @mermaid-js/mermaid-cli
# mmdc -i scheme.mmd -o scheme.png -w 1024 -H 768
Или с помощью Docker:
# docker run -it -v ~/diagrams:/data minlag/mermaid-cli \
-i /data/diagram.mmd

Попробовать Mermaid можно в онлайн редакторе https://mermaid.live. Итоговый результат можно кому-то отправить в виде ссылки.

Сайт - https://mermaid-js.github.io
Исходники - https://github.com/mermaid-js/mermaid

#docs
​​Я познакомился с бесплатной open source системой для совместной работы пользователей Kopano. Чтобы сразу было понятно, о чём пойдёт речь скажу, что эта система похожа на Zimbra, OnlyOffice Community Server или Nextcloud. В основе там почтовый сервер и куча сервисов вокруг него. Всё заточено на совместную работу пользователей, которые хранятся в LDAP.

Kopano довольно замороченная система, впрочем, как и OnlyOffice. Состоит из множества компонентов, собирается по кусочкам из того, что тебе нужно. Функционал очень большой, а среди бесплатных продуктов аналогов мало. Сильно выбирать не из чего. Так что если будете себе выбирать подобный продукт, придётся попробовать все, чтобы решить, какой подойдёт лучше.

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

Основной функционал Kopano:
почтовый сервер с календарём, адресной книгой, заметками, задачами, построен на базе postfix и dovecot;
ldap сервер для хранения учётных записей для всех сервисов;
чат на базе mattermost;
общая работа с документами на базе LibreOffice Online;
видеоконференции на базе webRTC;
есть web доступ, десктопное и мобильное приложения (наверняка electron, выглядит идентично web приложению, но лично не проверял);
есть русский язык, перевод нормальный, но иногда попадаются непереведённые фразы.

Установить и настроить всё это дело не просто. Я много времени потратил, пока изучил документацию. Чего-то прям особо сложного нет, потому что ядро системы работает на базе стандартного стека php + mysql. А дальше всё наслаивается отдельными модулями и интеграциями. Надо аккуратно все ставить, прописывать конфиги и соединять компоненты друг с другом.

Проект Kopano интегрирован на уровне готовых пакетов в дистрибутив Debian. Под него даже отдельная страничка в Wiki есть. Если хотите быстро посмотреть и попробовать продукт, то можно воспользоваться неофициальным набором контейнеров и запустить их через docker-compose. Я пошёл по этому пути. Всё завелось с первого раза и без особых проблем:
# git clone https://github.com/Kopano-dev/kopano-docker
# cd kopano-docker
# ./setup.sh
# docker-compose up

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

Если у кого-то есть опыт использования Kopano, поделитесь впечатлениями. Продукт старый и довольно известный. Раньше назывался Zarafa, про него много материалов в рунете. А по Kopano вообще ничего. Он уже довольно сильно отличается от Zarafa. Если знаете хорошие аналоги, то тоже дайте знать.

Сайт - https://kopano.io
Demo - https://demo.kopano.com/webapp/
Исходники - https://stash.kopano.io/projects
Документация - https://documentation.kopano.io/
Wiki - https://kb.kopano.io/

#docs #mailserver
​​Обратил внимание, что на канале не было ни одной заметки про Nextcloud. Когда продукт известный, кажется, что нет смысла о нём писать. И так все знают. Хотя это далеко не факт. Постараюсь кратко и ёмко описать его своими словами.

Изначально Nextcloud позиционировал себя как бесплатная Open Source замена облачным сервисам по хранению файлов типа Dropbox и Google Drive. Его можно установить на свой сервер, на конечные устройства поставить агенты, которые будут синхронизировать файлы. Не знаю достоверно, насколько надежно в этом плане сейчас работает Nextcloud, но первое время у него были всевозможные баги вплоть до потери всех файлов. Знакомый лично рассказывал, как столкнулся с этим после какого-то обновления. Заторможенная или зависшая синхронизация были обычным делом.

В настоящий момент Nextcloud это не просто сервер для хранения документов. Это полноценная веб платформа для совместной работы. Основной функционал:

Совместная работа с документами, в том числе их редактирование онлайн, работает на базе известных платформ для этого (Collabora Online, Onlyoffice).
Чат сервер с голосовыми и видеозвонками на базе NextCloud Talk.
Управление проектами, задачами, календарями, совместная работа с ними.
Встроенный в веб интерфейс imap клиент для работы с почтой. Встроенного почтового сервера в Nextcloud нет.
Поддержка аутентификации пользователей через LDAP (в том числе Windows AD).
Доступ к файлам пользователя через клиент, веб браузер, WebDAV
Интеграция с Draw.io для рисования схем.
Возможность подключить внешние хранилища: FTP, WebDAV, Nextcloud, SFTP, S3, Dropbox, Google Drive.

Функционал Nextcloud расширяется за счёт дополнений, которые живут во встроенном App Store. Чего там только нет: различные темы, календари, редакторы, чаты, веб сервера, игры, интеграции с другими сервисами и т.д. На глазок их там штук 200-300. Сделано примерно так же, как в Synology.

Если я правильно понимаю, на сегодняшний день Nextcloud - лучшее бесплатное решение для подобного функционала. Если коротко и в современных терминах, то это Groupware с прокачанной функцией хранения файлов. Из аналогов мне известны:

Onlyoffice Workspace. Наиболее развитый с активной разработкой. Но у него существенные ограничения бесплатной версии.
Zimbra. Бесплатная версия доживает свои дни. Новые версии пока не предвидятся. Хотя исходники открыты, но никто не взялся за то, чтобы собирать из них готовый продукт.
Kopano. Разработка бесплатной версии тоже завершилась в 2021 году.
Univention Corporate Server (UCS). Похож на Nextcloud, но выглядит более бледно и не так функционально. На первый взгляд удобство и функционал значительно ниже.

Больше ничего из более ли менее известного не знаю. Если у вас есть опыт эксплуатации подобных систем, поделитесь информацией, чем пользуетесь и удобно ли это на практике.

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

Сайт - https://nextcloud.com
Исходники - https://github.com/nextcloud

#docs #fileserver
​​В рамках задачи по изучению бесплатных платформ для запуска чат-серверов нашёл интересный продукт, который помимо чата включает в себя остальные инструменты для совместной работы - онлайн документы, календарь, задачи. Речь пойдёт про Twake - open source продукт с монетизацией через продажу SaaS сервиса по подписке.

Сразу обращаю внимание на некоторые моменты, которые меня привлекли. Во-первых, сайт проекта представлен на английском, французском и русском языках. Во-вторых, на сайте явно указано, что Twake соответствует федеральному закону о персональных данных 152-ФЗ. Сама компания из Франции, но называет свою команду международной. Я так понял, что там есть какие-то связи с РФ, иначе про 152-ФЗ они вряд ли бы знали.

Twake называет сам себя бесплатной альтернативой Microsoft Teams, хотя лично мне он показался вообще непохожим на Teams. В качестве редактора документов там используется OnlyOffice, для видеозвонков Jitsi. Он скорее похож на Nextcloud или Kopano.

Twake расширяет свой функционал за счёт внешних интеграций, которые настраивать должно быть просто, так как архитектура приложения заточена под это. К примеру, уже есть готовая интеграция с n8n. Настройка показана в документации. Фронт написан на React (Javascript), бэкенд на PHP. Клиент, понятное дело, Electron. Ставить отдельно большого смысла нет, потому что он ничем не отличается от веб версии.

Попробовать Twake можно на бесплатном тарифном плане в облаке или развернуть у себя с помощью Docker. Все контейнеры уже собраны. Запустить так:
# git clone https://github.com/linagora/Twake
# cd Twake/twake
# ./start.sh

Только один нюанс. По умолчанию почему-то запускаются очень старые контейнеры еще от 2021 года. Я вручную заменил версию на последнюю 2022.Q4.1120 в файле docker-compose.yml. И ещё момент. Twake использует БД ScyllaBD, которой для работы нужны инструкции процессора pclmul и sse4_2. Без них не запустится. Пришлось в виртуалке на Proxmox, где её запускал, сделать тип процессора host для этой VM, иначе этих инструкций у неё не было.

Как сам чат Twake ничего особенного из себя не представляет. Всё примерно как у всех. Его стоит рассматривать именно как платформу для совместной работы. Заметно, что проект ещё молодой (первые версии от 2020 года) и сыроват. Акцент на готовую платформу для создания собственных интеграций выглядит перспективно и если всё получится, должно выйти дельное приложение. Пока ставить в прод рискованно. Документация слабая, популярность тоже небольшая. Надо наблюдать. Бесплатных продуктов подобного типа практически нет, так что и выбирать особо не из чего.

Сайт / Исходники

#chat #docs
​​Существует старый и известный продукт на основе Linux по типу всё в одном - Zentyal. Он время от времени мелькает в комментариях и рекомендациях как замена AD или в качестве почтового сервера. Решил вам рассказать о нём, так как и то, и другое сейчас актуально.

Стоит сразу сказать, что Zentyal в первую очередь коммерческий продукт, продающийся по подписке. Но у него, как это часто бывает, есть бесплатная community версия, которую они в какой-то момент переименовали в Development Edition. Полное название бесплатной версии - Zentyal Server Development Edition.

У бесплатной версии сильно ограничен функционал, но всё основное есть. То есть его можно использовать в качестве контроллера домена для Windows машин и почтового сервера. Дистрибутив основан на ОС Ubuntu, установщик полностью от неё. После установки в консоль лазить не обязательно, всё управление через веб интерфейс. Причём стандартный установщик автоматически разворачивает графическое окружение и ставит браузер Firefox, так что управлять сервером можно сразу через консоль VM.

После установки настройка и управление осуществляются через веб интерфейс: https://ip_address:8443, учётка та, что была создана в качестве пользователя во время установки системы. Там вы сможете установить пакеты для:
Контроллера домена на основе Samba 4.
Почтового сервера на базе SOGo с поддержкой IMAP, Microsoft Exchange ActiveSync, CalDAV и CardDAV.
Шлюза Linux с Firewall и NAT, DNS, DHCP, VPN и т.д.

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

Сами разработчики позиционируют Zentyal как альтернатива Windows Server для малого и среднего бизнеса. Насколько я могу судить, это одна из самых удачных реализаций Linux all-in-box.

Аналоги:
UCS
ClearOS

Сайт / Исходники

#docs #fileserver #mailserver #ldap #samba
​​Для профессиональной работы с документацией есть open source продукт Antora. С её помощью можно автоматически генерировать статический сайт с документацией в формате AsciiDoc. При этом вся информация для сайта хранится в git репозиториях.

Как я уже сказал, Antora стоит рассматривать, если вам нужна документация профессионального уровня с различными продуктами, ветками, версиями. Это инструмент для технических писателей. Хотя ничего особо сложного там нет, просто нужно будет погрузиться в продукт и немного его изучить, прежде чем начать пользоваться. Это посложнее, чем та же wiki разметка.

У Antora свой язык разметки и взаимосвязей, с которым нужно будет ознакомиться, чтобы создавать и поддерживать более ли менее сложную документацию. Всё это описано в документации Анторы. Там же приведён Demo репозиторий, на основе которого можно собрать документацию и посмотреть, как работает генерация, и как потом выглядит сам сайт.

Я установил себе на Debian всё необходимо и сгенерировал сайт с документацией на основе Demo репозитория. На Debian 11 это выглядит следующим образом.

Ставим nodejs и npm:
# apt install nodejs npm

В Debian в репах слишком старая версия nodejs, поэтому поставим nvm и с её помощью более свежую версию nodejs. Возможно предыдущий шаг не нужен, но я на всякий случай всё равно установил сначала старую версию, чтобы минимизировать возможные проблемы с какими-то зависимостями.
# curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh \
| bash
# source .bashrc
# nvm install --lts

Смотрим версию:
# node --version
v18.13.0
Всё ОК.

Устанавливаем Antora.
# mkdir docs-site && cd docs-site
# node -e "fs.writeFileSync('package.json', '{}')"
# npm i -D -E @antora/cli@3.1 @antora/site-generator@3.1
# npm i -g @antora/cli@3.1 @antora/site-generator@3.1

Проверяем установленную версию:
# antora -v
@antora/cli: 3.1.2
@antora/site-generator: 3.1.2

Установка завершена. Теперь можно сгенерировать сайт на основе существующих репозиториев. Формат конфигурации antora - yaml. Вот примерный конфиг:

site:
 title: Antora Docs
 start_page: component-b::index.adoc 
content:
 sources: 
 - url: https://gitlab.com/antora/demo/demo-component-a.git
  branches: HEAD
 - url: https://gitlab.com/antora/demo/demo-component-b.git
  branches: [v2.0, v1.0]
  start_path: docs
ui: 
 bundle:
  url: https://gitlab.com/antora/antora-ui-default/-/jobs/artifacts/HEAD/raw/build/ui-bundle.zip?job=bundle-stable
  snapshot: true

Взяли два разных источника в git, разные версии и ветки. Анторе достаточно доступа для чтения. Запускаем генерацию сайта:
# antora --fetch antora-playbook.yml

В директории build/site находятся статические файлы сайта. Можете скопировать директорию к себе и запустить локально, либо установить nginx и скопировать содержимое этой директории в дефолтную директорию /var/www/html и посмотреть содержимое.

В принципе, большого смысла устанавливать Andora у себя нет, так как её достаточно один раз запустить и сгенерировать сайт. Можно воспользоваться готовым Docker контейнером.

Структура и формат такой документации прост, удобен и функционален. Документация самой Antora сделана с её же помощью, так что можно оценить функционал.

Напомню, что ранее я уже делал обзоры на популярные системы для ведения документации:
▪️ Mermaid — известный и популярный инструмент для создания визуализаций и диаграмм на основе написанного кода.
▪️ MkDocs — инструмент для генерации документации в виде статического сайта на базе текстовых файлов в формате markdown. 
▪️ BookStack — open source платформа для создания документации и вики-контента.
▪️ Wiki.js — готовая wiki платформа с поддержкой редакторов wiki, markdown, wysiwyg. 

Сайт / Исходники

#docs
​​Я регулярно читаю рассылку от компании Onlyoffice. Кто про них не знает, поясню, что это компания с российскими корнями, которая разработала собственный движок для работы с документами онлайн, а также платформу для совместной работы. Яндекс в своих онлайн документах использует их движок. Также у них есть бесплатные десктопные редакторы, совместимые с документами Microsoft Office.

У них активно ведётся доработка, обновление продуктов, а также выпуск новых. Например, недавно появился сервис DocSpace (selfhosted версии пока нет, но обещают) для создания комнат с набором документов для совместной работы, доступ к которым можно настраивать.

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

Сразу приведу ссылки, чтобы вы могли сами посмотреть, о чём идёт речь:
Страничка продукта ONLYOFFICE Workspace Community
Инструкции по ручной установке и запуску в Docker
Общая инструкция по установке ONLYOFFICE Workspace

Можете сами оценить ссылки с инструкциями. Там сходу как-то трудно понять, что тебе надо использовать, когда ты хочешь запустить у себя бесплатную версию. Так что если хотите попробовать портал для групповой работы с онлайн редактором документов, следуйте простой инструкции:
# wget https://download.onlyoffice.com/install/workspace-install.sh
# bash workspace-install.sh
На вопрос установки через Docker ответьте утвердительно, а на запрос установки почтового сервера ответьте отказом. В общем случае не рекомендую ставить почтовый сервер в составе Workspace, так как в этом нет большого смысла. Лучше поднять его отдельно или использовать внешний сервер. А в Workspace можно подключать ящики по imap и отправлять по smtp. Там полноценный веб клиент есть.

❗️Основное ограничение community версии портала — 20 одновременных подключений к серверу работы с документами. Общее количество пользователей не ограничено. Достаточно солидный запас. Коллектив в 40-50 человек может спокойно работать с этим сервером, если будет закрывать документы, когда они не нужны.

После установки идёте по IP адресу сервера и выполняете начальную настройку. Если в процессе тестирования поймёте, что продукт вам подходит, тогда уже можно более детально разобраться в установке: поменять все дефолтные учётки в скриптах, вынести отдельные директории на нужные диски и т.д. Есть возможность разворачивать продукт через deb пакеты, но я не рекомендую. Лучше в Docker. Это надёжнее и проще в обновлении. У onlyoffice куча зависимостей и поддерживать всё это довольно хлопотно.

Также в прод рекомендую ставить без TLS, а шифрование настроить на Nginx в режиме proxy_pass. Так тоже проще настраивать и потом управлять доступом.

У меня есть статья Установка и настройка Onlyoffice. Она сильно устарела. Когда писал её, продукт ONLYOFFICE Workspace, который актуален сейчас, назывался по-другому — ONLYOFFICE Community Server. В названиях пакетов и репозиториях сохранилось это название, что дополнительно добавляет путаницы.

Из бесплатных редакторов документов ONLYOFFICE мне нравится больше всего. Я его успешно использую уже лет 5-6. Сейчас есть 2 портала в управлении. Так что можно задавать конкретные вопросы, если что-то интересует.

#onlyoffice #docs
​​На прошлой неделе рассказал про сервер для групповой работы Onlyoffice Workspace. Подобного рода бесплатных продуктов не так много. Из тех, что я описывал ранее, где есть совместная работа с документами:

- Nextcloud
- Onlyoffice Workspace
- Univention Corporate Server (UCS)

Последний не совсем то же самое, что первые два, но в целом на его базе можно собрать сервер для групповой работы. Про те, что уже не поддерживаются и не обновляются, не пишу (Kopano). Отдельно отмечу продукты, про которые я не писал: Group office, Grommunio.

То есть в этой нише выбирать особо не из чего. Наиболее популярен сейчас, как мне кажется, Nextcloud. Он и Onlyoffice Workspace выглядят наиболее функционально и современно. Для полноты картины я решил рассмотреть ещё один open source проект, который активно развивается и поддерживается —  EGroupware. Сразу скажу, что он мне не особо понравился. Но так как потратил время и получил информацию, поделюсь с вами.

Разворачивать у себя его не обязательно, так как есть Demo. Но я все равно развернул, чтобы посмотреть, как он устроен. Это сделать не трудно. Он хоть и работает на базе Docker, но при этом предоставляет свой репозиторий, где есть всё, что надо для установки. Сделано удобно. На Debian 11 поставил так:

# echo 'deb http://download.opensuse.org/repositories/server:/eGroupWare/Debian_11/ /' \
| tee /etc/apt/sources.list.d/server:eGroupWare.list
# wget -nv https://download.opensuse.org/repositories/server:eGroupWare/Debian_11/Release.key -O - \
| apt-key add - | tee /etc/apt/trusted.gpg.d/server:eGroupWare.asc
# apt update && apt install egroupware-docker

Разворачивается Nginx в качестве прокси на самом хосте. А всё остальное живёт в Docker. Все данные вынесены в volumes для удобного бэкапа. Учётку для подключения смотреть в файле /var/lib/egroupware/egroupware-docker-install.log.

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

В публичной демке можно посмотреть, как Collabora Online работает, загрузить туда свои файлы. Кстати, хорошая возможность потестировать этот продукт. Он сильно отличается от Onlyoffice Docs как внешним видом, так и архитектурой. Если у Onlyoffice обработка выполняет на клиенте, что нагружает его, но снимает нагрузку с сервера, то Collabora Online всё обрабатывает на сервере. Мне кажется, это скорее плохо, чем хорошо. Ресурсов сервера потребляет в разы больше, чем Onlyoffice.

Мне не понравился внешний вид EGroupware. По нему сразу видно, что продукт из глубокого прошло (написан, кстати, на php). Интерфейс хоть и пытались освежить, но выглядит, как по мне, всё равно старовато. Ну не хочется им пользоваться. Хотя по настройкам и возможностям там всё очень хорошо. Добротный перевод на русский. Не возникло желания поскорее переключиться на английский язык. Более того, в настройках можно добавить свой перевод любой фразы и тут же применить изменения. Я попробовал, очень удобно. Перевёл один из пунктов меню по своему.

Из приятных особенностей EGroupware отмечу интеграцию с Rocket.Chat. По описанию все выглядит круто, но подозреваю, что будет куча нюансов. Надо будет ещё и Jitsi разворачивать, чтобы были видеозвонки. Я на практике знаю, что вся эта связка не так уж просто настраивается и обслуживается, особенно если работает за NAT и нужен доступ из интернета. Тем не менее, функционально всё это выглядит неплохо.

Если подыскиваете себе бесплатный groupware, то посмотрите EGroupware. Внешний вид — субъективный фактор. Возможно вам он будет некритичен.

⇨ Сайт / Исходники

#groupware #docs
​​Вчера получил рассылку от Onlyoffice, где они анонсировали self hosted версию своего нового продукта DocSpace. Это портал с онлайн редакторами документов, где рабочее пространство разбито на отдельные комнаты, куда можно загружать набор документов и приглашать пользователей для совместной работы с ними.

Из описания на сайте было совершенно непонятно, какие возможности и ограничения будут в open source версии. Есть только общее описание и запись в блоге с рассказом о тарифных планах. Но при этом есть open source версия и инструкция по установке, где нет никакой информации об ограничениях.

В общем, решил я всё это развернуть и попробовать. Мне нравятся редакторы Onlyoffice, я ими давно пользуюсь в составе Workspace, есть несколько серверов под управлением. Так что внимательно слежу за новинками этой компании.

Установка очень простая. Есть готовый скрипт:
# wget http://download.onlyoffice.com/docspace/docspace-install.sh
Он может установить версию из пакетов, либо из контейнеров Docker. Продукт очень сложный и навороченный в плане стека технологий и связи между ними, поэтому лучше выбрать Docker, чтобы не словить потом проблемы с зависимостями пакетов при очередном обновлении.
# bash docspace-install.sh docker

Дальше я, мягко говоря, немного удивился. Ставилось всё это хозяйство очень долго и в итоге я получил:
# docker ps | wc -l
23
23 контейнера 😱. Всё бы ничего, но в итоге не заработало. Смотрю открытые порты - в мир торчит контейнер с mysql на 33060 и всё (это надо обязательно закрыть). Стал разбираться, в чём проблема. Увидел, что постоянно перезапускается контейнер с именем onlyoffice-proxy. Сразу понял, что проблема в нём, так как скорее всего он и является точкой входа в систему. Посмотрел логи контейнера, там банальная ошибка nginx:
nginx: [emerg] could not build map_hash, you should increase map_hash_bucket_size: 32

Тут я немного растерялся, так как не понял, как мне это исправить. В контейнер зайти невозможно, так как он падает сразу. Я думал, зайду, отредактирую конфиг и запущу. Но не получилось. Посмотрел через inspect этот контейнер, там куча слоёв, ковыряться в них долго. Подсунул исправленный конфиг в контейнер:
# docker cp nginx.conf 56f0e21e8dff:/etc/nginx/nginx.conf
Но при запуске он перезаписывается. Нашёл в docker-entrypoint.d скрипт prepare-nginx-proxy.sh, он берёт конфиг из nginx.conf.template, добавил туда параметр map_hash_bucket_size 64; и перезапустил контейнер. Всё заработало. Кто-то может подсказать, как в данном случае такую проблемы решить правильнее и быстрее всего?

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

То есть в бесплатной версии недоступна функциональность администраторов, которые могут создавать комнаты, и опытных пользователей, которые могут загружать и удалять документы из комнат. Есть только один администратор, который всем управляет и загружает документы. Остальные пользователи могут редактировать либо смотреть уже загруженные администратором документы.

В целом, ограничения лояльные. Продукт даже в таком виде получился вполне функциональным для некоторых простых историй малого и среднего бизнеса. Есть возможность сделать ребрендинг, настроить бэкапы, в том числе отдельных комнат в резервные комнаты. В целом, настроек много. Есть интеграции с облачными сервисами. Удивился, увидев готовую интеграцию с облаком S3 Selectel. Это круто, так как я сам этим облаком пользуюсь.

Думаю, продукт займёт свою нишу наравне с порталом совместной работы Workspace.

Сайт / Исходники

#docs #onlyoffice
​​У известного онлайн редактора документов ONLYOFFICE Docs на днях случилось крупное обновление до версии 8.0. Я люблю этот продукт и активно использую как сам, так и ставлю для других людей. Его особенность в том, что бесплатная версия позволяет работать одновременно над 20-ю документами онлайн. Это комфортное ограничение, которое позволяет использовать продукт небольшим командам, где людей может быть сильно больше 20-ти. Ограничение только на онлайн редактирование. Если его превысить, документы будут открываться только на чтение. Онлайн документы Яндекса работают на этом же движке.

Посмотрел ролик про новую версию. Отметил следующие нововведения:

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

Если хотите сами посмотреть нововведения этой версии, то вот видео от разработчиков:

▶️ Introducing ONLYOFFICE Docs 8.0

В рассылке с обновлением авторы продукта предложили получить community version с сайта Univention App Center. Не знаю, с чем это связано. Возможно какое-то сотрудничество организовали. Этот app center представляет собой магазин приложений для другого продукта - Univention Corporate Server (UCS), про который я ранее писал отдельно. На странице Univention App Center Catalog также можно сразу загрузить образы виртуальных машин, где ONLYOFFICE Docs интегрированы в Nextcloud или ownCloud. Я не понял, как все эти продукты между собой связаны и почему они все оказались на сайте UCS.

Сам я всегда использовал этот редактор документов в составе бесплатной версии ONLYOFFICE Workspace Community, который проще всего установить через Docker. Для этого есть готовый скрипт, который всё делает за вас:

# wget https://download.onlyoffice.com/install/workspace-install.sh
# bash workspace-install.sh

На вопрос установки через Docker ответьте утвердительно, а на запрос установки почтового сервера ответьте отказом. В общем случае не рекомендую ставить почтовый сервер в составе Workspace, так как в этом нет большого смысла. Лучше поднять его отдельно или использовать внешний сервер. А в Workspace можно подключать ящики по imap и отправлять по smtp. Там полноценный веб клиент есть. Но можете и встроенный попробовать, если сильно хочется и лень заморачиваться с отдельным сервером. Будет отдельный контейнер с postfix.

После установки идёте по IP адресу сервера и выполняете начальную настройку. Если в процессе тестирования поймёте, что продукт вам подходит, тогда уже можно более детально разобраться в установке: поменять все дефолтные учётки в скриптах, вынести отдельные директории на нужные диски и т.д. Также можно вручную установить через Docker Compose, аккуратно настроив все переменные.

❗️Продукт довольно жирный, так что устанавливать рекомендую на виртуалку с 4 vCPU и 8 Gb памяти. Установка очень простая. Буквально две команды, что я привёл выше, и можно идти, пользоваться. Никаких дополнительных настроек делать не надо, чтобы всё заработало.

ONLYOFFICE Workspace очень приятный продукт, в котором реализованы множество интеграций. Зайдите в раздел Настройки ⇨ Интеграция и оцените сами. Можно подключить облако Selectel, вход по учётке VK или Яндекс, уведомления в Telegram и т.д. Также загляните в раздел Настройки ⇨ Панель управления и оцените возможности. Там можно настроить https, бэкап и восстановление, брендирование, поиск, ldap, sso и многое другое.

Отдельно отмечу, что у этих же авторов есть полностью бесплатные Desktop и Mobile приложения для работы с офисными документами. Туда тоже все эти обновления приехали, так как они по сути обёртки над веб сервисом, написанном на javascript. Благодаря этому, редакторы доступны под все популярные ОС.

#onlyoffice #docs
​​Для ведения и публикации документации есть очень много различных инструментов. Некоторые из них я ранее описывал:

MkDocs - инструмент для генерации документации в виде статического сайта на базе текстовых файлов в формате markdown.
BookStack - платформа для создания документации и вики-контента.
Wiki.js - готовая wiki платформа с поддержкой редакторов wiki, markdown, wysiwyg. 
Antora - генерация сайта с документацией на основе информации из git репозитория.

Сейчас популярны CMS, которые сделаны полностью на статике. То есть на основе созданных данных генерируются полностью статические страницы. Для контентного сайта или документации это оптимально. Если бы я сейчас выбирал движок для контентного сайта, то смотрел бы на что-то из этой сферы.

В рамках исследования этой темы, посмотрел на популярную open source CMS Grav. Она мне понравилась простотой и возможностями. На выходе лёгкий, практически статический сайт с минималистичным html кодом. Все данные страниц хранятся в формате текстовых .md файлов. Увидел, что у этой cms есть отдельная тема Learn2 или её развитие Learn2 with Git Sync для работы с плагином синхронизации. Эти темы были специально сделаны для организации документации.

Посмотреть, как это может выглядеть на практике можно на публичном демо этой темы:
https://demo.hibbittsdesign.org/grav-learn2-git-sync

А поставить себе всё это и попробовать самому можно с помощью Docker:

# git clone https://github.com/getgrav/docker-grav
# cd docker-grav
# docker build -t grav:latest .
# docker run -d -p 80:80 --restart always -v grav_data:/var/www/html grav:latest

Можно идти по ip сервера и регистрировать учётку на свежем сайте. Под капотом там обычный php движок на базе Symfony. Может работать на любом php хостинге. Достаточно закинуть туда исходники. Всё хранится в файлах, база данных не нужна.

В Grav используется Markdown разметка и обычный онлайн редактор текстов, где можно мышкой всё форматирование натыкать. Знать и писать именно в Markdown не обязательно. Редактор простой и удобный, пользоваться комфортно. Можно вообще где угодно сами исходники страниц редактировать, так как там обычные .md файлы, которые можно в git хранить. На сайте они лежат в директории _data/user/pages.

Мне подобного рода cms нравятся больше, чем wiki разметка и различные движки на её основе. Внутри админка Grav похожа на админку Wordpress. Организовано всё удобно и интуитивно, чего трудно сказать про различные wiki движки. Там пуд соли съешь, пока разберёшься.

#docs
​​В комментариях к заметке о Grav подсказали очень прикольный продукт, про который я раньше не слышал – docusaurus.io. Это генератор статических сайтов, который изначально написали в Facebook. С его помощью весь контент сайта можно держать в git в формате Markdown. Я хоть и написал, что это генератор сайтов, но по факту продукт был создан конкретно под ведение документации.

Docusaurus написан на Javascript, так что установка очень простая. Ставим сначала nodejs, потом через npm запускаем docusaurus:

# apt install nodejs npm
# npx create-docusaurus@latest my-docsite classic
# cd my-docsite
# npx docusaurus start --port 3000 --host 172.20.4.92

Всё, можно идти на 3000 порт сервера. На главной странице будут ссылки на обучение – Tutorial - Basics. Там самая база даётся с описанием того, как всё устроено. Например, если создать файл src/pages/page01.md, то он будет доступен по ссылке 172.20.4.92:3000/page01. То есть можно сразу писать контент. Это будет одиночная страница. В директории docs можно создавать связанные страницы с сайдбаром. Предлагаемая базовая документация как раз оформлена через docs.

Настройки сайта хранятся в js файлах. Чтобы их редактировать, знать js не обязательно. Если делать стандартный сайт, поменяв там иконки, цвета и т.д., то достаточно просто отредактировать существующие шаблоны.

Движок простой и удобный. Для постоянного использования нужно будет написать systemd юнит и проксировать запросы с какого-нибудь веб сервера, чтобы прикрутить TLS. Помимо документации в движке сразу реализована возможность вести блог и сделать страничку с какой-то общей информацией. То есть это может выступать как готовое решение для какого-то продукта, где есть его описание, документация и блог разработчиков. На выходе получается очень простой и быстрый html код, где ничего лишнего.

Функциональность Docusaurus расширяется плагинами. Для изменения внешнего вида есть множество готовых тем. Как я понял, это довольно популярный и зрелый продукт с большим сообществом. Так что если подбираете себе инструмент для ведения документации, обратите внимание. Его удобно загнать в git и там работать с исходниками.

Сайт / Исходники

#docs
​​Вчера новость прилетела от Onlyoffice, что вышла новая версия Docs 8.1. Я сначала прохладно отнёсся к ней, так как не так давно был релиз 8.0 и я о нём писал. В этот раз бегло посмотрел анонс нововведений. И меня там очень привлекло то, что они внедрили редактирование pdf файлов. Это на самом деле востребованная функциональность, так что я решил сразу её попробовать.

Про Onlyoffice я много писал на канале, есть статьи на сайте, так что не буду подробно про него рассказывать. Это сервис для совместной работы и онлайн редактирования документов. Я сам постоянно использую этот продукт в работе. Внедрил его в нескольких компаниях для работы с документами, а сам там веду документацию и некоторые другие записи совместно с другими сотрудниками.

Бесплатная версия позволяет работать одновременно над 20-ю документами в режиме редактирования. Точнее, может быть открыто не более 20-ти вкладок с документами на редактировании. Остальные будут только на чтение. Это комфортное ограничение, которое позволяет использовать продукт небольшим командам, где людей может быть сильно больше 20-ти. Ограничение только на редактирование. На практике чаще всего нужно чтение. Обновил инструкцию или документацию и закрыл. Остальные читают.

Попробовать очень просто. Даже никаких настроек не надо. Нужна только виртуалка с 8 Гб оперативной памяти и  4 vCPU. Делаем вот так:

# wget https://download.onlyoffice.com/install/workspace-install.sh
# bash workspace-install.sh

Выбираем установку в Docker и дожидаемся завершения. После этого можно сразу идти в веб интерфейс по IP адресу сервера, создавать администратора и начинать пользоваться. Детальные настройки можно потом сделать. Для попробовать ничего делать больше не нужно. Редактор документов уже будет работать.

Я сразу закинул туда несколько pdf файлов и попробовал редактировать. Работает всё, кроме редактирования текста. Похоже на какой-то баг OCR (распознавания текста). Нажимаю Редактировать текст и документ падает с ошибкой. Помогает только закрытие и открытие документа. В логах контейнера с Docserver появляется неинформативная ошибка, так что не понятно, с чем связано. С учётом того, что релиз был вчера, думаю, что поправят.

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

Так что рекомендую для тех, кому нужна подобная функциональность. Onlyoffice Docs может работать как в составе другого продукта этой компании Workspace, так и в интеграции со сторонними продуктами. Например, в Nextcloud. Это наиболее распространённое использование этого движка. А так он интегрируется со всеми популярными платформами для совместной работы. Есть даже плагин для Wordpress, чтобы в админке этой CMS работать с документами.

Новость о релизе / ▶️ Обзор нововведений

#onlyoffice #docs
​​Для редактирования и совместной работы с документами через браузер есть два наиболее популярных движка с открытым исходным кодом:

▪️ OnlyOffice
▪️ Collabora Online

Про #OnlyOffice я регулярно пишу, можно посмотреть материалы под соответствующим тэгом. Там же есть инструкции по быстрому запуску продукта. Решил то же самое подготовить по Collabora Online, чтобы можно было быстро их сравнить и выбрать то, что больше понравится.

Движок для редактирования документов работает в связке с каким-то другим продуктом по управлению файлами. Проще всего потестировать его в связке с ownCloud. Запускаем его:

# docker run -d -p 80:80 owncloud

Идём по IP адресу сервера http://10.20.1.36, создаём учётку админа и логинимся. В левом верхнем углу нажимаем на 3 полоски, раскрывая меню и переходим в раздел Market. Ставим приложение Collabora Online.

Переходим опять в консоль сервера и запускаем сервер collabora:

# docker run -t -d -p 9980:9980 -e "extra_params=--o:ssl.enable=false" collabora/code

Возвращаемся в веб интерфейс owncloud, переходим в Настройки ⇨ Администрирование ⇨ Дополнительно. В качестве адреса сервера Collabora Online указываем http://10.20.1.36:9980. На этом всё. Можно загружать документы и открывать их с помощью Collabora Online. У меня без каких-либо проблем сразу всё заработало по этой инструкции. Работает, кстати, эта связка довольно шустро. Мне понравилось. Погонял там с десяток своих документов и таблиц.

Редактор Collabora Online сильно отличается от Onlyoffice как внешним видом, так и архитектурой. Если у Onlyoffice обработка выполняется на клиенте, что нагружает его, но снимает нагрузку с сервера, то Collabora Online всё обрабатывает на сервере. Мне кажется, это скорее плохо, чем хорошо. Ресурсов сервера потребляет в разы больше, чем Onlyoffice. Но при таком подходе надёжнее работает совместное редактирование, так как реально оно происходит на сервере, а клиентам передаётся только картинка.

Интерфейс Onlyoffice больше похож на Excel, интуитивно с ним проще работать. Основные форматы - .docx, .xlsx, .pptx. Соответственно и совместимость с ними лучше. Collabora построена на базе LibreOffice, а он заметно отличается от Excel, так что переход будет более болезненный. Основные форматы - .odt, .ods, .odp. Майкрософтовские документы открывает хуже.

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

#docs #fileserver