이 가이드는 숨겨진 사이트 설정에 대한 how-to(가이드)로, 설정을 활성화하는 방법과 조정할 가치가 있는 이유를 설명합니다.
필요한 사용자 권한: 관리자(Administrator)
중요: 일부 단계에는 콘솔 접근 권한이 필요합니다.
Discourse에서 숨겨진 사이트 설정은 표준 관리자 대시보드 인터페이스에서 바로 보거나 접근할 수 없는 구성 옵션을 의미합니다. 이러한 설정은 사이트의 다양한 고급 또는 잠재적으로 영향이 큰 기능을 제어할 수 있는 백엔드 구성의 일부입니다.
이러한 숨겨진 설정은 일반적인 사용 사례와 모범 사례에 기반하여 최적의 성능과 보안을 보장하도록 설정된 기본값이 미리 구성되어 있습니다.
숨겨진 설정은 그 함의를 완전히 이해하지 못할 수 있는 관리자가 실수로 잘못 설정하는 것을 방지하기 위해 기본 설정 인터페이스에서 숨겨져 있습니다. 이는 다음과 같은 경우를 위해 intended(의도)되어 있습니다:
- Discourse의 내부 작동 방식을 깊이 이해하는 관리자.
- 비정상적이거나 매우 구체적인 사이트 구성이 필요한 특정 사례.
- 아직 일반 사용을 위해 준비되지 않은 테스트 또는 실험적 기능.
숨겨진 설정을 수정하려는 관리자는 일반적으로 기본 구성이 그들의 필요와 완벽하게 일치하지 않기 때문에 그렇게 해야 합니다.
숨겨진 설정에 대한 중요 참고 사항:
Discourse에서 숨겨진 사이트 설정을 조정할 때 주의하지 않으면 보안 취약점, 성능 저하, 사용자 경험 저하 또는 데이터 손실 등 다양한 문제가 발생할 수 있습니다!
숨겨진 사이트 설정은 숙련된 Discourse 관리자가 수정해야 합니다. 설정을 변경하기 전에 해당 설정이 무엇을 하는지 및 변경의 함의를 반드시 이해해야 합니다. 가능할 경우, 중요한 구성 변경 사항은 스테이징 또는 개발 환경에서 구현하십시오. 광범위하거나 중요한 변경을 수행하기 전에 무언가 잘못될 경우 포럼의 상태를 복원할 수 있도록 백업이 최신 상태인지 확인하십시오.
숨겨진 사이트 설정 편집 방법
옵션 1: Rails 콘솔
숨겨진 사이트 설정을 수정하려면 일반적으로 Rails 콘솔을 사용해야 합니다. Rails 콘솔은 Discourse 설치의 백엔드와 직접 상호작용할 수 있도록 하는 명령줄 도구입니다. rails 콘솔을 통해 설정을 조정하려면 다음 단계를 따르세요:
- Rails 콘솔에 액세스하기:
cd /var/discourse
./launcher enter app
rails c
- 설정 변경하기:
SiteSetting.your_setting_name = new_value
your_setting_name을(를) 수정하려는 설정의 이름으로, new_value을(를) 설정하려는 값으로 교체하십시오.
- 콘솔 종료하기:
exit
옵션 2: app.yml에서 환경 변수 설정
환경 변수를 사용하여 숨겨진 사이트 설정을 조정할 수도 있습니다. app.yml 파일은 Discourse의 Docker 기반 배포에 사용되는 구성 파일입니다. 일반적으로 Discourse 설치의 /containers 디렉토리에 위치합니다. 환경 변수를 추가하거나 수정하는 방법은 다음과 같습니다:
app.yml파일에 액세스하기:
선호하는 텍스트 편집기로app.yml파일을 엽니다:
nano /var/discourse/containers/app.yml
- 환경 변수 추가하기:
환경 변수는app.yml파일의env섹션에서 구성할 수 있습니다.DISCOURSE_SETTING_NAME: value패턴을 따릅니다. 예를 들어, 환경 변수를 통해max_category_nesting설정을3으로 설정하려면 다음을 사용합니다:
env:
DISCOURSE_MAX_CATEGORY_NESTING: 3
- 컨테이너 다시 빌드하기:
app.yml파일에 변경 사항을 저장한 후, 변경 사항을 적용하려면 Discourse Docker 컨테이너를 다시 빌드하십시오:
cd /var/discourse
./launcher rebuild app
왜 숨겨진 설정을 활성화해야 하는가
Discourse에서 숨겨진 사이트 설정을 활성화하거나 조정하면 관리자가 포럼 설정을 깊이 사용자 정의하여 특정 기술적 요구 사항을 충족하고, 성능을 향상시키거나, 보안 및 규정 준수를 보장할 수 있습니다. 이를 통해 세밀하게 조정된 사용자 경험과 운영 효율성을 지원합니다.
숨겨진 사이트 설정의 예시:
- 배지 SQL:
enable_badge_sql을(를) 활성화하면 사이트 관리자가 배지 기준에 대한 사용자 정의 SQL 쿼리를 생성할 수 있어, 복잡한 조건에 기반한 배지 부여에 유연성을 제공합니다. - S3 백업 설정:
include_s3_uploads_in_backups를 사용하여 S3 업로드를 백업에 포함시킴으로써 향상된 백업 전략을 사용할 수 있습니다. - 검색 속도 제한:
rate_limit_search_user와 같은 설정을 조정하여 높은 사용량 시나리오에서 스로틀링을 방지할 수 있습니다.
자주 묻는 질문(FAQ)
Q: 숨겨진 설정을 UI에서 표시되도록 할 수 있습니까?
A: 안전성과 복잡성의 이유로 Discourse의 숨겨진 설정은 UI를 통해 직접 구성할 수 없습니다.
Q: 각 숨겨진 설정에 대한 정보를 어디서 찾을 수 있습니까?
A: 각 설정에 대한 자세한 정보는 Hidden Site Settings Reference Guide 및 Discourse 소스 코드, 특히 GitHub 저장소의 site_settings.yml 파일에서 찾을 수 있습니다. 일부 설정에 대한 추가 정보는 Discourse Meta 포럼에서도 사용할 수 있습니다.
Q: 환경 변수를 통해 수행된 변경 사항은 업데이트를 통해 유지됩니까?
A: 네, app.yml 또는 시스템의 영구 프로필에 설정된 경우, 다른 구성에 의해 덮어쓰기되지 않는 한 이러한 설정은 업데이트를 통해 유지됩니다.
Q: 어떤 설정이 환경 변수를 통해 제어되는지 어떻게 알 수 있습니까?
A: 일반적으로 모든 Discourse 사이트 설정에 DISCOURSE_ 접두사를 붙여 환경 변수로 설정할 수 있습니다.
Q: 환경 변수를 통해 민감한 정보를 구성하는 것이 안전한가요?
A: 환경 변수는 일반적으로 구성 관리에 안전한 것으로 간주됩니다. 그러나 공유되거나 비보안 환경에 노출되지 않도록 하십시오.
Q: 사이트 설정을 토글할 때 다시 빌드가 필요한가요?
A: 대부분의 경우, rails 콘솔을 통해 사이트 설정을 토글하는 경우 Discourse 설정의 다시 빌드가 필요하지 않습니다. 이러한 변경 사항은 일반적으로 즉시 또는 인스턴스를 새로고침할 때 적용됩니다. 그러나 시스템의 근본적인 측면에 영향을 미치는 특정 설정은 변경 사항이 적용되도록 재시작 또는 다시 빌드가 필요할 수 있습니다. app.yml 파일에서 수행된 변경 사항의 경우, 변경 사항이 적용되도록 Discourse 컨테이너의 다시 빌드가 필요합니다.
Q: 설정 변경 사항을 쉽게 되돌릴 수 있습니까?
A: 네, 데이터 삭제가 포함되지 않는 한 대부분의 설정은 되돌릴 수 있습니다.