Использование скрытых настроек сайта

:bookmark: Это руководство how-to о скрытых настройках сайта, о том, как их включить и почему может потребоваться их изменение.

:person_raising_hand: Требуемый уровень пользователя: Администратор
:warning: Важно: Для некоторых шагов требуется доступ к консоли.

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

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

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

  • Администраторов, которые глубоко понимают внутреннее устройство Discourse.
  • Случаев, когда необходима необычная или очень специфическая конфигурация сайта.
  • Тестирования или экспериментальных функций, которые еще не готовы к общему использованию.

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

:warning: Важные замечания о скрытых настройках:

Изменение скрытых настроек сайта в Discourse может привести к различным проблемам, таким как уязвимости безопасности, негативное влияние на производительность, ухудшение пользовательского опыта или потеря данных, если это делать без должной осторожности!

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

Как редактировать скрытые настройки сайта

Вариант 1: Консоль Rails

Чтобы изменить скрытые настройки сайта, обычно необходимо использовать консоль Rails — инструмент командной строки, позволяющий напрямую взаимодействовать с бэкендом вашей установки Discourse. Чтобы изменить настройки через консоль Rails, выполните следующие шаги:

  1. Доступ к консоли Rails:
cd /var/discourse
./launcher enter app
rails c
  1. Изменение настройки:
SiteSetting.your_setting_name = new_value

Замените your_setting_name на имя настройки, которую вы хотите изменить, а new_value — на новое значение.

  1. Выход из консоли:
exit

Вариант 2: Настройка переменных окружения в app.yml

Также можно использовать переменные окружения для изменения скрытых настроек сайта. Файл app.yml — это файл конфигурации, используемый в развертываниях Discourse на основе Docker. Обычно он находится в директории /containers вашей установки Discourse. Вот как добавить или изменить переменные окружения:

  1. Доступ к файлу app.yml:
    Откройте файл app.yml в предпочитаемом текстовом редакторе:
nano /var/discourse/containers/app.yml
  1. Добавление переменных окружения:
    Переменные окружения настраиваются в секции env файла app.yml. Они следуют шаблону DISCOURSE_SETTING_NAME: значение. Например, чтобы установить настройку max_category_nesting в значение 3 через переменную окружения, используйте:
env:
  DISCOURSE_MAX_CATEGORY_NESTING: 3
  1. Пересборка контейнера:
    После сохранения изменений в файле app.yml пересоберите Docker-контейнер Discourse, чтобы применить изменения:
cd /var/discourse
./launcher rebuild app

Зачем включать скрытые настройки

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

Примеры скрытых настроек сайта:

  • Badge SQL: Включение enable_badge_sql позволяет администраторам сайта создавать пользовательские SQL-запросы для критериев выдачи значков, обеспечивая гибкость в назначении значков на основе сложных условий.
  • Постоянное удаление постов: Включение can_permanently_delete позволяет постоянно удалять посты в целях соответствия требованиям или защиты конфиденциальности.
  • Настройки резервного копирования S3: Включение include_s3_uploads_in_backups позволяет включать загрузки S3 в резервные копии для улучшения стратегий резервного копирования.
  • Ограничения скорости поиска: Настройка ограничений скорости поиска с помощью параметров, таких как rate_limit_search_user, чтобы избежать замедления в сценариях с высокой нагрузкой.

Часто задаваемые вопросы (FAQ)

В: Можно ли сделать скрытые настройки видимыми в интерфейсе?
О: Скрытые настройки в Discourse не могут быть напрямую изменены через интерфейс из соображений безопасности и сложности.

В: Где я могу найти информацию о каждой скрытой настройке?
О: Подробная информация о каждой настройке доступна в Справочном руководстве по скрытым настройкам сайта и исходном коде Discourse, конкретно в файле site_settings.yml в репозитории GitHub. Дополнительная информация о некоторых настройках также доступна на форумах Discourse Meta.

В: Сохраняются ли изменения, внесенные через переменные окружения, после обновлений?
О: Да, если они установлены в app.yml или постоянном профиле системы, эти настройки сохранятся после обновлений, если они не будут перезаписаны другими конфигурациями.

В: Как узнать, какие настройки можно контролировать через переменные окружения?
О: Обычно любую настройку сайта Discourse можно префиксировать DISCOURSE_ и установить как переменную окружения.

В: Безопасно ли настраивать конфиденциальную информацию через переменные окружения?
О: Переменные окружения обычно считаются безопасными для управления конфигурацией. Однако убедитесь, что они не раскрываются в общих или небезопасных средах.

В: Нужно ли пересобирать систему, если я переключаю настройку сайта?
О: В большинстве случаев переключение настройки сайта через консоль Rails не требует пересборки вашей установки Discourse. Эти изменения обычно вступают в силу немедленно или после обновления экземпляра. Однако некоторые конкретные настройки, особенно влияющие на фундаментальные аспекты системы, могут потребовать перезапуска или пересборки для применения изменений. Для изменений, внесенных в файл app.yml, требуется пересборка контейнера Discourse, чтобы они вступили в силу.

В: Могу ли я легко отменить изменение настройки?
О: Да, большинство настроек можно отменить, если они не связаны с удалением данных.

Дополнительные ресурсы

8 лайков