admin/settings/emails에서 이메일 주소를 어떻게 변경하나요?

Digital Ocean에 설정된 Discourse를 실행하기 시작했는데, 다음 오류 메시지가 표시되었고 이제 wespenreboards.com의 Discourse 보드가 로드되지 않습니다.

도메인 이름 대신 IP 주소를 입력하려는 것으로 보입니다. 대괄호 안의 값은 이미 설정된 값이므로, 업데이트하지 않는 항목은 아무것도 변경하지 않고 ‘Enter’ 키를 눌러 다음으로 넘어갈 수 있습니다.

아래 명령을 실행하여 인스턴스를 재시작할 수 있습니다:

./launcher restart web_only

좋아요! 그게 잘 작동했어요… 감사합니다! 이제 웹사이트가 로딩됩니다. 그러면 호스트 이름이 웹 주소라는 뜻인가요? WinSCP에서 HOST가 IP 주소로 표시되어 있어서 IP를 입력했습니다.

discourse set-up의 해당 부분은 이미 이전 실행 시 정보를 알고 있으므로, 그냥 'enter’를 눌러 다음 단계로 건너뛰면 됩니다. 그리고 SMTP 관련 항목에 도달하면 기존 내용을 덮어쓰기 위해 새로운 정보를 입력하면 됩니다.

하지만 IP 주소는 지원되지 않으며 도메인만 가능합니다. :+1:

어떻게 되고 있는지 궁금해서 한 번 물어봐요. :slightly_smiling_face: 아직 잘 진행되고 있나요?

확인해 줘서 고마워, Jammy. 다른 나라로 이사 중이라 좀 느리다 보니 아직 시도하지 못했다.

네가 콘솔에서 계속 진행하라고 제안했을 때 이미 콘솔에서 로그아웃을 해 두었기 때문에, 호스트 이름부터 처음부터 다시 시작해야 할 것 같다. 그리고 또, discourse.example.com이 맞지?

만약 이 과정에서 문제가 생겨서 사용자들에게 부정적인 영향을 미친다면, 예를 들어 지난번처럼 Discourse가 다운되는 경우가 생긴다면, 내가 한 작업을 되돌릴 수 있는 “보편적인” 명령어가 있을까? 콘솔을 사용하기 전에 Discourse가 정상적으로 작동했던 상태로 돌아가게 하고 싶은 것뿐이야. :slight_smile:

괜찮아요, 서두르지 않으셔도 됩니다. :slightly_smiling_face:

준비가 되셨을 때 참고하실 수 있도록 단계별 안내를 정리해 두겠습니다:

  • Digital Ocean 콘솔을 여세요
  • cd /var/discourse
  • ./discourse-setup

그 후 일련의 질문이 표시됩니다. 포럼이 이미 운영 중이므로, 대괄호 안의 값(예: [discourse.example.com])이 기존 정보로 미리 채워져 있는 것을 확인하실 수 있습니다:

해당 정보가 변경될 필요가 없다면 ‘Enter’ 키를 눌러 다음 질문으로 넘어가시면 됩니다.

질문 내용은 다음과 같습니다:

Hostname for your Discourse? [discourse.example.com]: 
Email address for admin account(s)? [me@example.com,you@example.com]: 
SMTP server address? [smtp.example.com]: 
SMTP port? [587]: 
SMTP user name? [user@example.com]: 
SMTP password? [pa$$word]: 
Let's Encrypt account email? (ENTER to skip) [me@example.com]: 
Optional Maxmind License key () [xxxxxxxxxxxxxxxx]:

새로운 정보를 입력해야 하는 부분은 SMTP 관련 항목입니다. SMTP 포트는 여전히 587이므로, 이 부분도 ‘Enter’ 키를 누르면 됩니다. 나머지 정보는 메일 제공업체(아마도 sendinblue일 것 같습니다)에서 확인하셔야 합니다.

모든 정보를 입력하면 입력한 내용을 검토할 수 있는 기회가 주어지고, 이후 해당 새로운 정보로 인스턴스가 재구축됩니다. 문제가 없다면 이것이 전부입니다. :+1:

만약 어떤 이유로 작동하지 않는다면(어제처럼), ./launcher restart web_only를 실행하면 재구축 이전 버전으로 되돌아갈 수 있습니다.


이전 스크린샷 중 하나를 보면 서버 유지보수가 약간 필요한 것으로 보이지만, 이메일 작동을 해결한 후에 관심이 있으시면 그 부분도 함께 살펴볼 수 있습니다. :slightly_smiling_face::+1:

정말 큰 도움이 됩니다! 감사합니다. 시도해 보고 바로 다시 올게요. 성공하든 실패하든 알려드릴게요 :slight_smile:

실행한 결과 끝에 다음과 같은 오류 메시지가 표시되었습니다:

그 후 web_only를 다시 시작해 보았지만 다음과 같은 오류 메시지가 표시되었고, 이제 제 Discourse가 다운되었습니다. 어떻게 해야 하나요?

letsencrypt 이메일이 승인되지 않은 것으로 보입니다.

기존 설정을 복원하려면 다음을 실행할 수 있습니다:

./launcher restart data

그리고

./launcher restart web_only

아직도 안 됩니다. 먼저 콘솔에서 로그아웃을 한 다음, restart data를 실행하고 web_only를 실행해야 하나요?

이것의 의미도 잘 모르겠네요: Cannot link to a non running container: /data AS /web_only/data

제 컨테이너에서는 이렇게 보입니다. 이게 원래 이런 모습이어야 하는지 모르겠네요.

그 extra web_only 파일들은 업데이트를 시도한 두 번의 흔적입니다. 정리(cleanup) 작업 중에 정리될 것입니다(다만, 사이트가 정상적으로 작동하기 전에는 정리 작업을 실행하지 마세요. 정리 작업은 현재 무엇에 연결되어 있지 않은 모든 것을 정리하기 때문입니다 :slightly_smiling_face:).

더 나은 이해를 위해 현재 설정을 테스트 사이트에 복제(컨테이너 2개 및 Sendinblue SMTP 구성)하여 문제를 파악해 보고 있습니다. Cannot link to a non running container: /data AS /web_only/data 메시지를 받았을 때, 제 경우 데이터 컨테이너를 재시작한 후 web_only 컨테이너를 재시작하니 해결되었습니다. 하지만 정확한 상황을 재현하여 더 잘 이해해 보기 위해, 비슷한 방식으로 discourse-setup을 다시 실행하는 과정을 일부러 꼬아 놓아 보았습니다.

하나의 컨테이너로 설치하는 방식이 훨씬 더 널리 지원된다는 점도 말씀드리고 싶습니다. 이 방식이 너무 번거롭다면, 대안으로 새로운 Digital Ocean 드롭렛을 생성하고 표준 설치 가이드를 사용하여 새 인스턴스를 설치하는 것도 방법입니다. 그런 다음 백업을 복원하면, 이후 관리가 훨씬 수월해질 것입니다.

다음 명령을 실행할 수 있습니다.

 ./launcher destroy web_only
 ./launcher start web_only

이렇게 하면 데이터 컨테이너에 연결됩니다.

SMTP 설정만 변경하려는 경우, nano로 web_only.yml 파일을 편집한 뒤 위에서 설명한 destroy, start 순서를 실행하면 됩니다.

콘솔에서 로그아웃한 후 새 콘솔을 열고 지시하신 단계를 따랐지만, 동일한 오류 메시지가 표시됩니다. 실행되지 않는 컨테이너에 연결할 수 없다는 오류입니다.

smtp 설정을 콘솔에서 하기 전으로 되돌릴 수 있는 방법이 있을까요? 지금은 Discourse를 처음부터 다시 설정할 수 없습니다. 이사 중인 상황에서 이런 일이 일어나니 정말 답답합니다.

Jammy님, 감사합니다.

다행히도 기병대가 다시 도착했어요. :slightly_smiling_face: 그리고 지금 사이트가 다시 정상 작동하는 걸 볼 수 있네요. :partying_face:

@pfaffman 정말 다행이에요, 잘 작동했어요. 감사합니다, 제이!

다음 주 말까지 새로운 위치로 옮기기 전까지는 이대로 두는 게 좋을 것 같아요. 지금은 포럼을 가동 상태로 유지하는 게 가장 중요합니다. 기존 구글 비밀번호를 사용해 여전히 비밀번호를 변경하고 포럼에 가입할 수 있는 것 같으니, 당분간 그렇게 하겠습니다. 그리고 어제 WinSCP로 하드 드라이브 백업하는 방법을 보여주셨잖아요. 그래서 당분간 그것으로 진행할 생각이에요.

다시 한번 감사합니다!

수정: 작동한다고 했을 때, 사이트가 가동 중이라는 뜻이었어요. SMTP를 직접 변경하는 나머지 제안들은 아직 테스트해야 하지만, 아마 나중에 할 것 같습니다.

LOL, 포기하는 게 쉽지 않네요. Jay, Jammy, 또는 다른 분들 중 이 설정에서 어떤 불일치점을 찾아보실 수 있을까요? 예를 들어, LETSENCRYPT_ACCOUNT_EMAIL: 뒤에 OFF라고 입력했는데, 이게 맞는지 잘 모르겠어서요…

## TODO: 새 계정 검증 및 알림 전송에 사용되는 SMTP 메일 서버
  # SMTP 주소, 사용자 이름, 비밀번호가 필요합니다.
  # 경고: SMTP 비밀번호에 '#' 문자가 있으면 문제가 발생할 수 있습니다!
  DISCOURSE_SMTP_ADDRESS: smtp-relay.sendinblue.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: wespenre2@gmail.com
  DISCOURSE_SMTP_PASSWORD: "이 페이스트에서 제거됨"
  DISCOURSE_SMTP_ENABLE_START_TLS: false           # (선택 사항, 기본값 true)
  DISCOURSE_SMTP_DOMAIN: gmail.com
  DISCOURSE_NOTIFICATION_EMAIL: wespenre2@gmail.com


  ## Lets Encrypt 템플릿을 추가했다면, 무료 SSL 인증서를 받으려면 아래 주석을 해제하세요.
  LETSENCRYPT_ACCOUNT_EMAIL: OFF

  ## TODO: 데이터베이스 연결 구성
  DISCOURSE_DB_SOCKET: ''
  #DISCOURSE_DB_USERNAME: discourse
  DISCOURSE_DB_PASSWORD: (이 페이스트에서 제거됨)
  DISCOURSE_DB_HOST: data
  DISCOURSE_REDIS_HOST: data

letsencrypt_account_email은 기본값인 me@example.com으로 두었습니다. (여기에 이메일이 아닌 값을 넣으면 재빌드가 깨집니다.) 또한 DISCOURSE_SMTP_ENABLE_START_TLS:도 기본값인 true로 두었습니다.

그리고 이메일 도메인은 도메인 이름이어야 하며, 알림 이메일에는 noreply@ 또는 유사한 접두사가 붙어야 할 것 같습니다.

제 설정을 복사해 올게요.

DISCOURSE_SMTP_ADDRESS: smtp-relay.sendinblue.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: admin@jammydodger.monster
DISCOURSE_SMTP_PASSWORD: "secret-password"
#DISCOURSE_SMTP_ENABLE_START_TLS: true           # (선택 사항, 기본값 true)
DISCOURSE_SMTP_DOMAIN: test.jammydodger.monster
DISCOURSE_NOTIFICATION_EMAIL: noreply@test.jammydodger.monster

## Lets Encrypt 템플릿을 추가했다면 무료 SSL 인증서를 받으려면 아래 주석을 해제하세요
LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

Jammy, 고마워. 후, 한 번 더 시도해 보고 여기로 돌아올게… ㅋㅋ

시작하기 전에 확인하고 싶은 게 있어: noreply 이메일은 noreply@gmail.com으로 해야 하나? Discourse에서 내가 사용해 온 이메일 도메인은 Gmail뿐이야. Gmail에서 자동으로 noreply 옵션이 생성되는 건지, 아니면 noreply 이메일에 어떤 도메인을 사용해야 하는 건지 궁금해. 아니면 noreply 이메일 대신 wespenre2@gmail.com을 직접 입력할 수도 있어?

아래에 보이는 것처럼 WinSCP에서 우클릭하여 web_only.yml을 수정했지만, 아직 새로고하진 않았어. 먼저 의견을 듣고 싶어.

그리고 모든 것이 괜찮아 보이면 새로고침을 한 다음, 새로고침 후 ./launcher destroy web_only를 실행하고, 그 다음 ./launcher start web_only를 실행하면 되는 거지, 그러면 작동할 거야?

이렇게 하면 어때?

 ## TODO: The SMTP mail server used to validate new accounts and send notifications
  # SMTP ADDRESS, username, and password are required
  # WARNING the char '#' in SMTP password can cause problems!
  DISCOURSE_SMTP_ADDRESS: smtp-relay.sendinblue.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: wespenre2@gmail.com
  DISCOURSE_SMTP_PASSWORD: "password"
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, default true)
  DISCOURSE_SMTP_DOMAIN: gmail.com
  DISCOURSE_NOTIFICATION_EMAIL: noreply@gmail.com


  ## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate
  LETSENCRYPT_ACCOUNT_EMAIL: wespenre2@gmail.com