Как сделать импортированный сайт недоступным для существующих пользователей, но доступным только для персонала и служб, таких как CDN, которые необходимо настроить?

Контекст: Я импортирую форум vBulletin в Discourse.

Хочу настроить такие вещи, как CDN, удалённые резервные копии и т. д., прежде чем предоставить существующим пользователям доступ к содержимому форума.
Я предпочёл бы не переводить форум в режим «только для чтения», так как это будет расстраивать пользователей: спустя несколько месяцев они наконец увидят содержимое (и обновлённое!), но не смогут с ним взаимодействовать. В данном контексте, если контент доступен, он должен быть и интерактивным.

Таким образом, мне нужно, чтобы Discourse был доступен для сотрудников, а для остальных пользователей отображалась страница «Технические работы», даже если те теоретически могут войти в систему. При этом мой сайт должен оставаться способным взаимодействовать с такими сервисами, как CDN, чтобы я мог правильно их настроить.

Какой самый простой способ это сделать?

Насколько мне известно, самый простой способ — установить для сайта требование «требуется вход», включить опцию «требовать одобрение пользователей» и настроить SMTP на что-то вроде mailhog. Не помню, одобряет ли импортер пользователей автоматически. Если да, то в консоли Rails можно сделать следующее:

approved_users = AdminUserIndexQuery.new(query: 'approved', stats: false).find_users_query

approved_users.each do |u|
  u.approved = false
  u.save!
end

А затем отключить требование одобрения, когда всё будет готово.

Так вы не будете отправлять никакие сообщения публично во время миграции и сможете просмотреть все сообщения, сгенерированные Discourse, на случай, если что-то пойдёт не так.

Если вы не решите мигрировать пароли, пользователям всё равно придётся сбрасывать учётные данные.

Спасибо за ответ!

Подумав немного, я решил просто оставить эту страницу:

Но временно скрыть кнопки входа, а также заменить фразу на что-то вроде «В разработке. Следите за новостями!».

Пользователи, которые попытаются войти через /login, всё равно не смогут этого сделать, поскольку импорт паролей не сработал, а отправка писем для нештатных сотрудников отключена, поэтому они не смогут войти по электронной почте или сбросить пароль.

Думаю, это решение позволит достичь нужного результата, верно?

Я бы порекомендовал использовать MailHog или аналогичное решение, чтобы убедиться, что Discourse не генерирует огромное количество уведомлений по электронной почте.

Без возможности контроля вы рискуете открыть шлюзы, повторно включив электронную почту.

Могу ли я просмотреть ожидающие письма где-нибудь?

Конечно, именно так работает MailHog. Он принимает сообщения, отображает очередь и предоставляет возможность отправить письма в почтовые ящики.