배포 커스터마이징 모범 사례

Discourse 설정을 조정하기 위해 app.yml을(를) 편집하는 것은 흔한 일입니다.

또한, https://meta.discourse.org/t/how-to-avoid-throttling-limits-with-admin-api-key/274206/7에서 API 요청의 속도 제한을 피하기 위해 nginx 설정을 수정해야 한다는 것을 발견했습니다.

제 질문은 다음과 같은 사항에 대한 권장 모범 사례가 무엇인지입니다:

  • app.yml과 같은 파일의 버전 관리
    • 변경할 때마다 /var/discourse 외부에서 버전 관리를 해야 하고, /var/discourse/containers/로 이동시켜야 합니다.
  • 템플릿 수정, 오버라이드 또는 새 템플릿 추가
    • templates/web.ratelimited.template.yml은 git에 의해 무시되지 않습니다. 6년 동안 변경된 적은 없지만, 직접 편집하는 것은 현명하지 않아 보입니다. ./launcher rebuild 명령이 이를 덮어쓸 가능성이 있습니다. 또는 git pull 명령이 실패할 수 있습니다.

가능한 해결책:

  • app.yml과 템플릿을 포함하는 나만의 git 저장소를 생성합니다.
  • Ansible을 사용하여 app.yml을(를) /var/discourse/containers/로 복사하고 템플릿을 Discourse가 실행 중인 서버로 복사하는 GitHub 액션을 작성합니다.

질문

  • 사용자 정의 템플릿을 어디에 두는 것이 좋을까요?

여기서 언급된 템플릿을 사용하는 대신 app.yml에 replace 섹션을 직접 추가할 수 있는 것 같습니다:

네, App.yml을 사용하면 백업 카피를 만들고 필요에 따라 이름을 붙일 수 있습니다.

특정 섹션을 변경할 때 주석도 추가할 수 있습니다. 저는 셀프 호스팅 환경에서 플러그인을 공식, 파빌리온, 기타로 분류해 관리하고 있습니다. 새 플러그인을 설치할 때 해당 섹션에 주석을 달아두는 방식으로 관리합니다.

다만, 저보다 더 좋은 방법을 알고 계신 분들도 계실 것입니다.