Я установил новую версию Discourse 3.5.0 на виртуальную машину с Ubuntu. Это стандартная установка. Доступ к ней осуществляется по публичному адресу https://discourse.domain.de.
Помимо этого у меня есть установка Nextcloud в Docker-окружении, которая также доступна публично: https://cloud.domain.de.
Каждая из систем работает отлично по отдельности.
Теперь я хочу предоставить пользователям определённых групп в Discourse возможность загружать файлы в папку на Nextcloud, при необходимости редактировать их с помощью OnlyOffice и хранить их там.
Мне не хотелось бы создавать публичную ссылку на папку Nextcloud с паролем. Хотя это возможно, я не смогу контролировать, кто именно использует эту комбинацию ссылки и пароля за пределами форума. Кроме того, в таком случае использование OnlyOffice будет невозможно.
Создавать учётные записи всех пользователей Discourse в Nextcloud — это слишком много работы.
Кроме того, развёртывание отдельной инстансы Authelia с собственной страницей входа, управлением группами для Discourse и созданием базы данных кажется мне чрезмерно трудоёмким.
Кстати:
У меня есть NAS, в Docker-окружении которого работают Redis, PostgreSQL через pgbouncer, Postfix, Nextcloud и OnlyOffice, а также мониторинг с помощью ClamAV. На этом же NAS запущена виртуальная машина с Ubuntu, на которой работает Discourse. Всё это находится за NGINX, который выступает в роли обратного прокси.
Если вы хотите авторизовывать пользователей на одном сайте, проверяя права на другом, вам достаточно интегрировать их. Это требует много работы. Я делал это однажды и должен был разработать интерфейс с использованием DiscourseConnect. Я думаю, что это действительно самый простой способ. Несколько часов разработки. Не уверен, насколько легко подключить что-то к NextCloud, но это, похоже, возможно.
О, я об этом не знал. Но это не позволяет указать, кто к чему имеет доступ, верно? Это позволяет защитить весь сайт так, чтобы его видели только пользователи форума. Но когда они его видят, они видят всё полностью.
Мне нравится использовать вебхуки и платформы автоматизации, поэтому вот как я бы это сделал быстро!
Настройте вебхуки: один для вступления в группу в Discourse, другой для выхода из группы.
Обработайте вебхуки на платформе автоматизации и приведите их в формат, подходящий для Nextcloud; я использую для этого huginn
Создавайте пользователей и добавляйте их в группы через API Nextcloud
Таким образом, вы можете приглашать или удалять пользователей из группы Discourse для управления соответствующей группой в Nextcloud. При этом нужно будет принять некоторые решения относительно учётных записей пользователей, паролей и т. д. Это быстрый способ предоставить доступ к внешнему сайту из Discourse.
Отлично! Я всегда мечтал о более бесшовной интеграции между Discourse и Nextcloud, которые я использую для своего семейного сайта. Чего мне действительно не хватает, так это возможности легко обсуждать в Discourse файлы из Nextcloud, например, фотографии или PDF-документы.
Я настроил единый вход с помощью приложения Nextcloud social login. Это позволяет мне сопоставлять группы Discourse с группами Nextcloud, предоставляя разным категориям пользователей доступ к разным папкам Nextcloud. Если учётная запись ещё не существует в Nextcloud, она автоматически создаётся при первом входе через мой сайт Discourse.
Вот путь, который я теперь для себя наметил. Discourse с SSO на «переднем плане», а Nextcloud и управление правами групп в ней — на «заднем плане». Nextcloud должна обходиться без собственных настроек прав пользователей.
Я отпишусь о том, как всё будет работать. Я ещё раз изучу это приложение!