# 관리자 GUI에서 플러그인을 직접 설치 및 제거하는 기능

**URL:** https://meta.discourse.org/t/ability-to-install-and-uninstall-plugins-directly-from-admin-gui/163872
**Category:** Feature
**Created:** [9월 13, 2020, 10:37오전 UTC](https://meta.discourse.org/t/ability-to-install-and-uninstall-plugins-directly-from-admin-gui/163872 "2020-09-13T10:37:33Z")
**Posts on this page:** 16
**Page:** 1

<div class="post-metadata">

### Author: ![Faizan\_Zahid](https://avatars.discourse-cdn.com/v4/letter/f/b9bd4f/32.png) [@Faizan\_Zahid](https://meta.discourse.org/u/Faizan_Zahid)
#### Post date: [9월 13, 2020, 10:37오전 UTC](https://meta.discourse.org/t/ability-to-install-and-uninstall-plugins-directly-from-admin-gui/163872/1 "2020-09-13T10:37:33Z")

</div>

이 기능이 있다면 정말 좋겠습니다.

트래픽이 높은 대형 포럼의 경우, 포럼이 다운되는 것은 좋지 않은 일입니다. 저는 플러그인을 설치하거나 제거할 때마다

```
./launcher rebuild app

```

명령을 실행해야 하는데, 이 과정에서 포럼이 잠시 중단되어 사용자들이 불편을 겪고 있습니다.

관리자 GUI에서 직접 플러그인을 설치/제거하고, 재빌드/재시작을 할 수 있는 기능이 있다면 좋겠습니다.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [9월 13, 2020, 10:53오전 UTC](https://meta.discourse.org/t/ability-to-install-and-uninstall-plugins-directly-from-admin-gui/163872/2 "2020-09-13T10:53:55Z")

</div>

플러그인이 빌드 시점에 앱 리소스에 통합되어야 하는 방식, 특히 일부 플러그인 요소가 백엔드에 영향을 미치기 때문에 이것이 가능하다고 생각하지 않습니다.

다음과 같은 완화 조치를 제안합니다:

1. 가능한 한 테마 컴포넌트로 커스터마이징하세요. 이러한 컴포넌트는 온라인으로 교체 및 업데이트할 수 있습니다.

2. 사용할 플러그인 세트를 정해 두세요. 왜 그렇게 자주 설정을 변경해야 하는가요?

3. 단순히 플러그인을 업데이트해야 한다면 온라인 업그레이드 도구를 사용하세요.

4. 핵심 앱의 다른 근본적인 변경 사항으로 인해 재빌드가 불가피한 시기에 맞춰 새로운 플러그인 추가를 계획하세요.

---

<div class="post-metadata">

### Author: ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)
#### Post date: [9월 13, 2020, 2:04오후 UTC](https://meta.discourse.org/t/ability-to-install-and-uninstall-plugins-directly-from-admin-gui/163872/3 "2020-09-13T14:04:57Z")

</div>

여기서 드릴 수 있는 유일한 실질적인 권장 사항은 사전에 계획을 세우는 것입니다. 이를 대체할 방법은 없습니다.

작은 인스턴스를 사용하여 적용하려는 플러그인 변경 사항을 테스트하고 승인한 후, 매주 또는 매월 특정 시간대를 지정하여 라이브 사이트에 이러한 변경 사항을 일괄 적용하세요.

이렇게 하면 사용자가 이러한 작업으로 인해 크게 영향을 받지 않으며, 호환성 문제로 인한 추가 다운타임의 위험도 크게 줄일 수 있습니다.

---

<div class="post-metadata">

### Author: ![michaeld](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/michaeld/32/1594_2.png) [@michaeld](https://meta.discourse.org/u/michaeld)
#### Post date: [9월 13, 2020, 3:08오후 UTC](https://meta.discourse.org/t/ability-to-install-and-uninstall-plugins-directly-from-admin-gui/163872/4 "2020-09-13T15:08:03Z")

</div>

> [@Stephen](#):
>
> 그것을 대신할 것은 없습니다.

여러 개의 웹 컨테이너를 사용하는 구성에서는 웹 컨테이너를 하나씩 재빌드/배포하면 재빌드 중 다운타임을 확실히 피할 수 있습니다.

---

<div class="post-metadata">

### Author: ![Mevo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mevo/32/187732_2.png) [@Mevo](https://meta.discourse.org/u/Mevo)
#### Post date: [9월 13, 2020, 3:49오후 UTC](https://meta.discourse.org/t/ability-to-install-and-uninstall-plugins-directly-from-admin-gui/163872/5 "2020-09-13T15:49:22Z")

</div>

@Faizan_Zahid 님, 죄송하지만 그 제목은 좀 더 신경 써서 지으셨으면 좋겠습니다. 혹시 "plugins"라고 쓰려다 "Discourse"라고 쓰신 건 아닌지요. 저는 서버에서 Discourse를 제거해 달라는 기능을 요청하는 분을 기대하고 있었습니다 🙂

재빌드 없이 플러그인을 설치/제거할 수 있기를 원하시는 것 같습니다. 불행히도 현재는 불가능한 것 같습니다 😕

그렇다면 재빌드가 필요할 때 다운타임을 최소화하는 방법을 찾고 계실 텐데요, 이 주제는 최근에도 이미 다뤄진 바 있습니다: [“제로 다운타임” 설정에 대한 도움](https://meta.discourse.org/t/help-with-zero-downtime-setup/163668) (다만, 아마도 그랬어야 할 방향으로 진행되지는 않았습니다).

여기서 우리가 필요로 하는 것은 **웹 컨테이너 2개를 설치하는 방법에 대한 튜토리얼** 과 이를 어떻게 사용하는지에 대한 안내일 것입니다. 이 설정이 가장 효율적인 방법인 것 같지만(동시에 아마도 가장 복잡한 방법이기도 합니다). 저는 그런 튜토리얼을 작성할 만큼 지식이 충분하지 않아서, 제가 직접 하지는 못하겠습니다. 혹시 이런 튜토리얼을 작성해 주실 분이 계신가요?

---

<div class="post-metadata">

### Author: ![LSD2020](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lsd2020/32/165673_2.png) [@LSD2020](https://meta.discourse.org/u/LSD2020)
#### Post date: [9월 13, 2020, 5:07오후 UTC](https://meta.discourse.org/t/ability-to-install-and-uninstall-plugins-directly-from-admin-gui/163872/6 "2020-09-13T17:07:13Z")

</div>

위에서 언급한 내용 포함, 다양한 고급 사용 사례에 대한 쉬운 가이드를 작성하는 일을 맡을 계획입니다. 백로그에 올려두었습니다 🙂

---

<div class="post-metadata">

### Author: ![Heliosurge](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heliosurge/32/571810_2.png) [@Heliosurge](https://meta.discourse.org/u/Heliosurge)
#### Post date: [9월 14, 2020, 12:51오전 UTC](https://meta.discourse.org/t/ability-to-install-and-uninstall-plugins-directly-from-admin-gui/163872/7 "2020-09-14T00:51:48Z")

</div>

Discourse를 Docker로 사용 중이라면 Procourse 설치 프로그램을 사용할 수 있습니다.

> [@ProCourse Installer](https://meta.discourse.org/t/procourse-installer-installing-removing-plugins-via-the-ui/115476?u=heliosurge):
>
> This plugin is designed to make it extremely easy to install new plugins without logging into the server. It adds a screen under /admin/plugins/procourse-installer that looks like this: From there, you can enter the URL (with or without .git) of the plugin git repo and click Install Plugin. Wait a few minutes (about 5 minutes) for the installation to complete and you’re good to go. To see all the plugins you’ve installed through the installer or to remove a plugin, just go to Install…

---

<div class="post-metadata">

### Author: ![michaeld](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/michaeld/32/1594_2.png) [@michaeld](https://meta.discourse.org/u/michaeld)
#### Post date: [9월 14, 2020, 11:01오전 UTC](https://meta.discourse.org/t/ability-to-install-and-uninstall-plugins-directly-from-admin-gui/163872/8 "2020-09-14T11:01:30Z")

</div>

> [@Heliosurge](#):
>
> Procourse 설치 프로그램.

그것은 재빌드도 수행합니다.

---

<div class="post-metadata">

### Author: ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)
#### Post date: [9월 15, 2020, 2:17오후 UTC](https://meta.discourse.org/t/ability-to-install-and-uninstall-plugins-directly-from-admin-gui/163872/9 "2020-09-15T14:17:39Z")

</div>

> [@Heliosurge](#):
>
> Procourse 설치 프로그램

아직도 작동하긴 하지만, AFAIK(제가 아는 한) Procourse는 더 이상 고객 서비스를 제공하지 않는 것으로 보입니다. 명확한 유지보수 로드맵이 없다면 이를 추천하는 데 매우 신중할 것입니다.

---

<div class="post-metadata">

### Author: ![Heliosurge](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heliosurge/32/571810_2.png) [@Heliosurge](https://meta.discourse.org/u/Heliosurge)
#### Post date: [9월 20, 2020, 3:30오후 UTC](https://meta.discourse.org/t/ability-to-install-and-uninstall-plugins-directly-from-admin-gui/163872/10 "2020-09-20T15:30:20Z")

</div>

그 사실을 몰랐습니다. 다만 Discourse의 구조에 큰 변화가 없다면 계속 작동할 것 같습니다. _일단_ 작동할 것이라는 말입니다. 만약 저자가 프로젝트를 중단했다면, 다른 사람이 프로젝트를 이어받을 수 있도록 허락할지 궁금하네요.

---

<div class="post-metadata">

### Author: ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)
#### Post date: [9월 20, 2020, 3:36오후 UTC](https://meta.discourse.org/t/ability-to-install-and-uninstall-plugins-directly-from-admin-gui/163872/11 "2020-09-20T15:36:54Z")

</div>

> [@Heliosurge](#):
>
> Discourse 구조에 큰 변화가 없다면 계속 작동할 것입니다.

시간이 지나면서 모든 플러그인은 업데이트가 필요합니다. 심지어 작은 변화도 활발히 개발 중인 Discourse 플러그인에 간혹 문제를 일으킬 수 있습니다. 이를 예측하는 것은 불가능하며, 우리가 이에 의존할 수도 있는 일이 아닙니다.

자체적으로 플러그인 설치를 관리하는 플러그인이 유지보수되지 않는다면 _매우_ 위험한 제안입니다. _낙관론_에 기대어 계속 사용하는 것은 매우 나쁜 아이디어로 보입니다.

저는 이를 사용하려는 관심을 표명한 두 명의 클라이언트와만 일해 왔습니다. Procourse가 더 이상 존재하지 않는다는 것이 명확해지자, 두 클라이언트 모두 이주(마이그레이션)에 열의를 보였습니다.

---

<div class="post-metadata">

### Author: ![Heliosurge](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heliosurge/32/571810_2.png) [@Heliosurge](https://meta.discourse.org/u/Heliosurge)
#### Post date: [9월 20, 2020, 3:40오후 UTC](https://meta.discourse.org/t/ability-to-install-and-uninstall-plugins-directly-from-admin-gui/163872/12 "2020-09-20T15:40:44Z")

</div>

결국, 보안 문제가 될 수 있다면 명령줄에서 전환 가능한 옵션으로 만들더라도, 개발자들은 이러한 기능을 Discourse에 내장하는 것을 고려해야 한다는 것입니다.

---

<div class="post-metadata">

### Author: ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)
#### Post date: [9월 20, 2020, 3:44오후 UTC](https://meta.discourse.org/t/ability-to-install-and-uninstall-plugins-directly-from-admin-gui/163872/13 "2020-09-20T15:44:32Z")

</div>

AFAIK, 문제는 그보다 훨씬 근본적입니다. 현재 방식으로는 멀티사이트 환경에서 전혀 작동하지 않습니다.

또한, 우연히 호환되지 않는 플러그인을 설치한 경우에도 해당 플러그인을 바로 삭제할 수 없습니다. 이를 위해서는 SSH 접근이 필요합니다.

---

<div class="post-metadata">

### Author: ![Heliosurge](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heliosurge/32/571810_2.png) [@Heliosurge](https://meta.discourse.org/u/Heliosurge)
#### Post date: [9월 20, 2020, 3:47오후 UTC](https://meta.discourse.org/t/ability-to-install-and-uninstall-plugins-directly-from-admin-gui/163872/14 "2020-09-20T15:47:02Z")

</div>

멀티 사이트 관련 문제를 확인해 보았습니다. Docker를 사용하는 멀티 사이트가 아닌 경우에만 허용하도록 간단한 체크를 추가하면 됩니다.

따라서 구현하려면 약간의 조정이 필요할 수 있습니다. 하지만 멀티 사이트가 아닌 설치 환경에서는 검토해 볼 만한 가치가 있습니다.

단일 사이트 컨테이너용 공식 플러그인으로 채택되더라도 마찬가지입니다.

---

<div class="post-metadata">

### Author: ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)
#### Post date: [9월 20, 2020, 3:49오후 UTC](https://meta.discourse.org/t/ability-to-install-and-uninstall-plugins-directly-from-admin-gui/163872/15 "2020-09-20T15:49:54Z")

</div>

이 주제를 더 아래로 읽으면, 플러그인 호환성 문제의 기본적인 문제 해결이 얼마나 더 어려워지는지 확인할 수 있습니다.

---

<div class="post-metadata">

### Author: ![Heliosurge](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heliosurge/32/571810_2.png) [@Heliosurge](https://meta.discourse.org/u/Heliosurge)
#### Post date: [9월 20, 2020, 4:19오후 UTC](https://meta.discourse.org/t/ability-to-install-and-uninstall-plugins-directly-from-admin-gui/163872/16 "2020-09-20T16:19:12Z")

</div>

로드맵에 포함해야 할 사항 중 하나입니다. 리눅스에서 GUI를 사용해 설치하는 것과 커맨드라인을 사용하는 것의 차이는 때로는 크지 않지만, 이 부분을 잘 구현한 사례도 있습니다.

공식적인 설치 방식이 아닌 것을 사용할 경우 깨질 위험이 항상 존재합니다. 예를 들어 테마나 테마 구성 요소처럼 플러그인을 켜고 끌 수 있는 기능은 좋은 아이디어입니다.

최근에는 카테고리 아이콘이 문제를 일으키는 것 같다는 이슈가 있었습니다. 다른 CSS 수정이나 구성 요소가 없는 기본 테마를 사용 중이었는데도 말이죠. 원인을 파악하는 데 시간이 좀 걸렸습니다.

기이한 점은, 최신 디스커스 베타 버전을 실행하는 별도의 테스트 설치 환경에서는 정상적으로 작동한다는 것입니다.
