# 개발 환경: 이메일 없이 첫 관리자 계정을 초기화하는 권장 방법은?

**URL:** https://meta.discourse.org/t/dev-environment-recommended-way-to-bootstrap-the-first-admin-account-without-email/399187
**Category:** Development
**Tags:** development
**Created:** [3월 24, 2026, 10:06오후 UTC](https://meta.discourse.org/t/dev-environment-recommended-way-to-bootstrap-the-first-admin-account-without-email/399187 "2026-03-24T22:06:30Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![Ethsim2](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ethsim2/32/522255_2.png) [@Ethsim2](https://meta.discourse.org/u/Ethsim2)
#### Post date: [3월 24, 2026, 10:06오후 UTC](https://meta.discourse.org/t/dev-environment-recommended-way-to-bootstrap-the-first-admin-account-without-email/399187/1 "2026-03-24T22:06:30Z")

</div>

discourse/discourse\_dev Docker 이미지(Windows 11 노트북)를 사용해 보고 있는데, 개발 워크플로우에서 작은 마찰 지점을 발견했습니다.

아웃바운드 이메일이 구성되지 않은 상태에서 개발 모드로 Discourse를 실행할 때:  
1. Ember CLI(localhost:4200)를 통해 가입/로그인 페이지에 접근할 수 있습니다.  
2. 사용자 계정을 생성할 수 있습니다.  
3. 하지만 이메일 확인이 필요하므로 로그인이 차단됩니다.

우회 방법은 Rails 콘솔에서 계정을 수동으로 활성화하는 것인데, 예를 들어 다음과 같습니다:

```ruby
u = User.find_by(username: "admin")
u.approved = true
u.email_tokens.update_all(confirmed: true, expired: true)
u.save!

```

이 방법은 작동하지만, 다음과 같은 점이 궁금합니다:

이메일이 구성되지 않은 상태에서 첫 번째 관리자 계정을 부트스트랩하는 데 권장되는 개발 워크플로우는 무엇일까요?

예를 들어:  
• 개발자는 개발 환경에서도 SMTP를 구성해야 하나요?  
• 이 작업을 위한 헬퍼 태스크(`rake admin:create` 등)가 있나요?  
• 개발 컨테이너에서 이메일 확인 없이 첫 번째 사용자 로그인을 허용하는 것이 타당할까요?

개발 컨테이너를 실험하는 신규 개발자를 위한 더 매끄러운 설정 과정을 문서화하기 위해 질문합니다.

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [3월 24, 2026, 10:09오후 UTC](https://meta.discourse.org/t/dev-environment-recommended-way-to-bootstrap-the-first-admin-account-without-email/399187/2 "2026-03-24T22:09:24Z")

</div>

> [@Ethsim2](#):
>
> 이것을 위한 헬퍼 태스크(`rake admin:create` 등)가 있나요?

네, 있습니다:

> [@Discourse](#):
>
> ## 새 관리자 생성
> 
> 새 관리자를 생성하려면 다음 명령을 실행하세요:
> 
> ```plaintext
> bin/rails admin:create
> 
> ```
> 
> 프롬프트를 따라 진행하면 새 관리자 계정이 생성됩니다.

---

<div class="post-metadata">

### Author: ![Ethsim2](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ethsim2/32/522255_2.png) [@Ethsim2](https://meta.discourse.org/u/Ethsim2)
#### Post date: [3월 24, 2026, 10:17오후 UTC](https://meta.discourse.org/t/dev-environment-recommended-way-to-bootstrap-the-first-admin-account-without-email/399187/3 "2026-03-24T22:17:52Z")

</div>

감사합니다! 문제를 해결했습니다 - discourse\_dev 컨테이너를 실험하던 중 `bin/rails admin:create`에 대해 알지 못했었네요.

처음에 혼란스러웠던 점은 일반적인 UI 가입 플로우가 계정 생성까지 정상적으로 작동하지만, SMTP가 설정되지 않은 경우 이메일 인증으로 인해 로그인이 차단된다는 것이었습니다.

개발 환경을 단순히 탐색 중인 사용자에게는 헬퍼 태스크에 대해 알지 못하면 로그인 플로우가 깨진 것처럼 보일 수 있습니다.

Docker 개발 컨테이너의 경우 [개발 설정 문서](https://meta.discourse.org/t/beginners-guide-to-install-discourse-for-development-using-docker/102009)에 `bin/rails admin:create`를 명시적으로 언급하는 것이 도움이 될 수 있습니다. 신규 기여자들은 SMTP가 설정되어 있지 않은 경우가 많기 때문입니다.

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [3월 24, 2026, 10:28오후 UTC](https://meta.discourse.org/t/dev-environment-recommended-way-to-bootstrap-the-first-admin-account-without-email/399187/4 "2026-03-24T22:28:04Z")

</div>

> [@Ethsim2](#):
>
> [개발 설정 문서](https://meta.discourse.org/t/beginners-guide-to-install-discourse-for-development-using-docker/102009)에

해당 가이드에는 다음 내용이 나와 있으므로 필요하지 않을 것 같습니다.

> [@Discourse](#):
>
> ```plaintext
> d/boot_dev --init
> # 다음 작업이 완료될 때까지 대기:
> # - 의존성 설치,
> # - 데이터베이스 마이그레이션,
> # - 관리자 사용자 생성 (상호작용 필요)
> 
> ```

따라서 관리자 사용자 생성은 이미 워크플로우의 일부인 것 같습니다.

> <https://github.com/discourse/discourse/blob/1cb6d36fefa8bd9099a53777240be63d4678f332/bin/docker/boot_dev#L129>

---

<div class="post-metadata">

### Author: ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)
#### Post date: [3월 24, 2026, 10:31오후 UTC](https://meta.discourse.org/t/dev-environment-recommended-way-to-bootstrap-the-first-admin-account-without-email/399187/5 "2026-03-24T22:31:57Z")

</div>

개발 환경에서 이메일 접근이 실제로 필요하다면 mailhog를 실행할 수도 있습니다.

Discourse 디렉터리에서 새로운 명령줄 창을 열고 `mailhog`를 실행하기만 하면 됩니다. 그런 다음 `localhost:8025`를 방문하면 일반적으로 발송되었을 이메일을 확인할 수 있으며, 아무런 설정도 필요하지 않습니다.

 ![image](https://global.discourse-cdn.com/meta/original/4X/7/0/f/70fe9fc0e430708a07dc3edf2a2bf0b33e0f0648.png)

---

<div class="post-metadata">

### Author: ![Ethsim2](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ethsim2/32/522255_2.png) [@Ethsim2](https://meta.discourse.org/u/Ethsim2)
#### Post date: [5월 16, 2026, 4:05오후 UTC](https://meta.discourse.org/t/dev-environment-recommended-way-to-bootstrap-the-first-admin-account-without-email/399187/6 "2026-05-16T16:05:47Z")

</div>

둘 다 감사합니다. 이해가 갑니다.

차이점은 문서화된 `d/boot_dev --init` 경로가 이미 관리자 사용자를 생성한다는 점인 것 같습니다. 따라서 제 혼란은 해당 초기화 흐름을 처음부터 끝까지 따르는 것이 아니라 개발 환경을 실험적으로 다루면서 생긴 것이었습니다.

MailHog에 대한 팁도 유용합니다. 개발 환경 설정이 `mailhog`와 `localhost:8025`를 통해 확인 이메일을 로컬에서 캡처할 수 있다는 사실을 몰랐는데, 이는 누군가가 일반적인 가입/이메일 확인 경로를 사용할 때 의도된 워크플로우를 설명해 줍니다.

* * *

따라서 더 매끄러운 사고 모델은 다음과 같습니다:

1. 표준 Docker 개발 설정의 경우, `d/boot_dev --init`를 사용하고 프롬프트가 표시될 때 관리자 계정을 생성합니다.
2. 이메일/가입 흐름을 테스트하는 경우, `mailhog`를 실행하고 `localhost:8025`에서 메시지를 확인합니다.
3. 별도로 필요한 경우, `bin/rails admin:create`는 관리자 계정을 생성하기 위한 수동 헬퍼입니다.

혼란이 풀렸습니다. 감사합니다.

* * *

개발 UI를 탐색하면서 별도로 작은 질문 하나만 더 하겠습니다. 세로 툴바의 작은 아이콘 버튼들은 무엇에 사용되는 것인가요? 인터페이스에서 그들을 볼 수 있지만, 일반적인 사용자 대상 컨트롤인지, 관리자용 단축키인지, 아니면 개발/디버깅용 헬퍼인지 바로 확신이 서지 않습니다.

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [5월 16, 2026, 4:26오후 UTC](https://meta.discourse.org/t/dev-environment-recommended-way-to-bootstrap-the-first-admin-account-without-email/399187/7 "2026-05-16T16:26:02Z")

</div>

> [@Ethsim2](#):
>
> 개발자 UI를 탐색하다가 작고 별개의 질문이 하나 있습니다. 세로 툴바에 있는 작은 아이콘 버튼들은 어떤 용도로 사용되나요?

이것들이요?  
 ![image](https://global.discourse-cdn.com/meta/original/4X/6/0/8/608205df1ac0bf43c427bd0fb2ae6438b7227db7.png)

이것은 개발자 툴바입니다. 안전 모드, 상세 로컬라이제이션, 그리고 예정된 변경 사항을 토글할 수 있습니다. 또한 플러그인 아울렛과 블록을 표시할 수도 있습니다.

> [@Discourse 개발자 도구 모음 소개](https://meta.discourse.org/t/introducing-discourse-developer-toolbar/346215):
>
> When running the [latest version of Discourse core](https://github.com/discourse/discourse/commit/498481e5be21780c20e3646bd934eb9d7316a8f8) in a development environment, you’ll notice a new toolbar on the left-hand-side of the screen: This provides one-click access to commonly-needed developer tools. So far, we have: electric_plug Plugin Outlet Debug This shows all plugin outlets, with tooltips showing realtime values of all of the available @outletArgs. This was inspired by the popular [plugin outlet locations](https://meta.discourse.org/t/plugin-outlet-locations-theme-component/100673) theme component, and [the plugin before it](https://meta.discourse.org/t/plugin-outlet-locations/29589). But un…
