플러그인을 설치한 후 내 사이트가 작동하지 않습니다

플러그인을 설치하려고 했는데 ./launcher rebuild app 명령을 실행하는 부분에서 다음과 같은 오류가 발생했습니다.

./discourse-doctor를 사용했지만 문제가 해결되지 않았습니다.

FAILED
--------------------
Pups::ExecError: if [ -z "$LETSENCRYPT_ACCOUNT_EMAIL" ]; then echo "LETSENCRYPT_ACCOUNT_EMAIL ENV variable is required and has not been set."; exit 1; fi failed with return #<Process::Status: pid 2296 exit 1>
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cmd"=>["if [ -z \"$LETSENCRYPT_ACCOUNT_EMAIL\" ]; then echo \"LETSENCRYPT_ACCOUNT_EMAIL ENV variable is required and has not been set.\"; exit 1; fi", "/bin/bash -c \"if [[ ! \\\"$LETSENCRYPT_ACCOUNT_EMAIL\\\" =~ ([^@]+)@([^\\.]+) ]]; then echo \\\"LETSENCRYPT_ACCOUNT_EMAIL is not a valid email address\\\"; exit 1; fi\""]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
324b6cc40db917188cb3d87640ff1a1c23142c551b71bc55b0f33ccd88e88af7

이제 이 내용을 보여 주세요

root@ForumPandex:/var/discourse# ./launcher rebuild app
x86_64 arch detected.
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
(<unknown>): could not find expected ':' while scanning a simple key at line 67 column 3 -e LANG=en_US.UTF-8
YAML syntax error. Please check your containers/*.yml config files.

app.yml 파일에 오타가 있는 것 같습니다.

첫 번째 오류 메시지는 let’sencrypt 이메일 주소를 가리키고 있지만, 두 번째 오류는 콜론(:)이 누락되었음을 시사합니다. 플러그인을 추가하기 위해 편집하던 중 실수로 추가하거나 삭제한 부분이 눈에 띄시나요?

ger.git
          - git clone https://github.com/discourse/discourse-spoiler-alert.git
          - git clone https://github.com/discourse/discourse-yearly-review.git
          - git clone https://github.com/mondiscourse/discourse-formatting-toolbar.git
          - git clone https://github.com/techapj/discourse-custom-topic-button.git
          - git clone https://github.com/discourse/discourse-chat.git
          - git clone https://github.com/discourse/discourse-adplugin.git
          - git clone https://github.com/communiteq/discourse-delete-unreplied-topics
          - git clone https://github.com/discourse/discourse-animated-avatars
          - git clone https://github.com/gnunicorn/discourse-plugin-replygif
          - git clone https://github.com/discourse/discourse-gamification
          - git clone https://github.com/discourse/discourse-reactions.git
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-spoiler-alert.git
          - git clone https://github.com/discourse/discourse-yearly-review.git
          - git clone https://github.com/mondiscourse/discourse-formatting-toolbar.git
          - git clone https://github.com/techapj/discourse-custom-topic-button.git
          - git clone https://github.com/discourse/discourse-chat.git
          - git clone https://github.com/discourse/discourse-adplugin.git
          - git clone https://github.com/communiteq/discourse-delete-unrepl>
          - git clone https://github.com/discourse/discourse-animated-avata>
          - git clone https://github.com/gnunicorn/discourse-plugin-replygif
          - git clone https://github.com/discourse/discourse-gamification
          - git clone https://github.com/discourse/discourse-reactions.git
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-spoiler-alert.>

## 빌드 후 실행할 사용자 지정 명령
run:
  - exec: echo "Beginning of custom commands"
  ## 첫 번째 가입 시 'From' 이메일 주소를 설정하려면 아래 주석을 해제하고 변경하세요:
  ## 첫 번째 가입 이메일을 받은 후, 해당 줄을 다시 주석 처리하세요. 한 번만 실행하면 됩니다.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "End of custom commands"

@JammyDodger 님이 오타에 대해 맞말을 했습니다. 저는 최소 3개의 오타를 발견했습니다:

그리고 모든 플러그인이 두 번씩 들어 있습니다.

실제로, 만들 당시 잘못 복사했습니다. 프롬프트에서 모든 것을 한 번에 복사하는 방법이 있을까요?

여러분, 제가 뭘 잘못했는지 이제 기억이 안 나요. 사이트가 아직 다운된 상태인데, 제가 어디서 실수를 한 건지 어떻게 알 수 있을까요?

이제 discourse doctor가 이렇게 말합니다

======================================== ERROR ========================================
                                    UNEXPECTED ERROR

Timeout to open TCP connection to email-smtp.us-east-1.amazonaws.com:25 (exceeds 5 seconds)

====================================== SOLUTION =======================================
This is not a common error. No recommended solution exists!

Please report the exact error message above to https://meta.discourse.org/
(And a solution, if you find one!)
=======================================================================================
Replacing: SMTP_PASSWORD
Replacing: LETSENCRYPT_ACCOUNT_EMAIL
Replacing: DEVELOPER_EMAILS
Replacing: DISCOURSE_DB_PASSWORD
Replacing: Sending mail to

==================== DONE! ====================
Would you like to serve a publicly available version of this file? (Y/n)```

이전 컨테이너를 다시 시작할 수 있어야 합니다.

./launcher start app

그런 다음 yml 파일을 정리해야 합니다.

아, discourse doctor가 이전 컨테이너를 다시 시작했을 텐데요.

여전히 안 좋아요
절박해요

가장 쉬운 방법은 app.yml을 broken.yml로 이름 변경한 후 ./discourse-setup을 실행하는 것입니다. 그러면 새로운 app.yml이 생성되지만, 기존 데이터를 삭제하지 마세요.

시도해 보니 이제 이렇게 표시됩니다.

Checking your domain name . . .
WARNING: Port 443 of computer does not appear to be accessible using hostname:  www.dexforum.com.br].
WARNING: Connection to http://www.dexforum.com.br] (port 80) also fails.

This suggests that www.dexforum.com.br] resolves to some IP address that does not reach this
machine where you are installing discourse.

The first thing to do is confirm that www.dexforum.com.br] resolves to the IP address of this server.
You usually do this at the same place you purchased the domain.

If you are sure that the IP address resolves correctly, it could be a firewall issue.
A web search for "open ports YOUR CLOUD SERVICE" might help.

This tool is designed only for the most standard installations. If you cannot resolve
the issue above, you will need to edit containers/app.yml yourself and then type

./launcher rebuild app

음, 이제 discourse 설치는 성공적으로 마쳤는데, 재빌드할 때 이 오류가 나타납니다

(<unknown>): mapping values are not allowed in this context at line 98 column 12 -e LANG=en_US.UTF-8
YAML syntax error. Please check your containers/*.yml config files.

app.yml 파일을 수동으로 편집해서 플러그인을 추가한 건가요?

네, 플러그인을 위한 after_code 훅이 바로 그곳에 있습니다.

@danielabc 도움을 원하신다면, 우리가 제시하는 단계에 대한 피드백을 제공해 주셔야 합니다. 가능하면 지시사항을 벗어나지 않는 것이 좋습니다. 플러그인 설치는 우리가 정상 작동하는 인스턴스를 다시 구축하는 데 도움을 드린 후에 진행됩니다.

결국 문제를 해결했지만, 이상하게 여긴 부분이 있습니다. Discourse가 생성한 모든 .yml 파일의 포맷이 잘못되어 있었습니다. 이런 일이 가능한가요? 저는 아무것도 하지 않았고, 편집조차 하지 않았는데도 .yml 파일은 항상 잘못된 포맷으로 생성되었습니다.

Google에서 찾은 https://www.yamllint.com/ 사이트를 사용했는데, 올바른 포맷을 알아내는 데 도움이 되었고, 마침내 재구성을 완료할 수 있었습니다.

하지만 시스템이 .yml 파일을 잘못된 포맷으로 생성하고 있을 것이라는 생각은 전혀 하지 못했기 때문에 혼란스러웠습니다.

Discourse-setup은 약 6개월 동안 변경되지 않았습니다.

잘못된 형식의 YAML을 생성할 수 있는 유일한 방법은 프롬프트에 대한 응답을 통해 그렇게 될 수 있다는 것입니다.

응답을 복사하여 붙여넣었나요, 아니면 직접 입력했나요?

그 괄호는 거기에 있으면 안 됩니다.

새 .yml 파일을 생성하기 위해 명령어를 실행했는데, 새로운 .yml 파일의 내용은 아무것도 변경하지 않았습니다. 재빌드만 수행했는데, 형식 오류로 인해 오류가 발생했습니다.