1° Установите Discourse Category Lockdown и заблокируйте категорию событий так, чтобы отображались только заголовки событий.
2° Используйте функцию публикации в Discourse, чтобы анонимные пользователи могли видеть тему события по её URL с префиксом /pub/; они увидят опубликованную страницу, содержащую только описание и изображения.
3° Используйте плагин для посадочных страниц fr, чтобы создать страницу со списком всех тем из одной категории (проверьте нижнюю часть этой страницы: Rendering data from a specific topic - Discourse Landing Pages - Pavilion).
4° В настройках категории > Безопасность укажите перенаправление на созданную вами посадочную страницу для категории событий, которую вы используете.
5° Опционально: отключите поиск для анонимных пользователей, чтобы они не могли ничего найти через функцию поиска. Для этого добавьте следующее в файл app.yml в секцию env и перезапустите приложение (без пересборки):
env:
DISCOURSE_RATE_LIMIT_SEARCH_ANON_GLOBAL_PER_MINUTE: 0