Я начал настраивать Discourse на Digital Ocean и получил следующее сообщение об ошибке. Теперь мой форум Discourse по адресу wespenreboards.com не загружается.
Похоже, вы попытались ввести IP-адрес вместо имени домена. Значение в квадратных скобках — это уже установленное значение, поэтому для тех записей, которые вы не обновляете, можно нажать ‘Enter’ и перейти к следующей, ничего не меняя.
Вы можете перезапустить свой экземпляр, выполнив команду:
./launcher restart web_only
Для этого пункта в настройке Discourse вы просто можете нажать ‘Enter’ и перейти к следующему шагу, так как система уже помнит предыдущие данные. А когда дойдёте до специфичных для SMTP параметров, можно добавить новую информацию, чтобы перезаписать старую.
Однако это работает только с доменами, а не с IP-адресами. ![]()
Я просто решил(а) заглянуть и узнать, как у вас дела.
Удалось ли вам уже запустить это?
Спасибо, что проверил, Jammy. Я немного медлю, так как тоже в процессе переезда в другую страну. Поэтому я пока не пробовал.
Я уже вышел из консоли, когда ты предложил продолжить работу там, так что, думаю, мне нужно начать всё сначала с моим хостом. И ещё раз: это discourse.example.com, верно?
Если что-то пойдёт не так в процессе и это негативно повлияет на пользователей, например, Discourse упадёт, как в прошлый раз, есть ли «универсальная» команда, чтобы отменить всё, что я сделал, чтобы Discourse хотя бы работал так же, как до начала работы в консоли? Просто хочу подстраховаться ![]()
Это нормально, я не хочу торопить вас. ![]()
Я добавлю пошаговую инструкцию, чтобы вы могли обратиться к ней, когда будете готовы:
- Откройте консоль 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).
После ввода всей информации система даст вам возможность проверить введённые данные, а затем пересоберёт ваш инстанс с новой информацией. Если всё пройдёт успешно, на этом всё. ![]()
Если по какой-то причине это не сработает (как вчера), команда ./launcher restart web_only вернёт вашу предыдущую версию до пересборки.
Судя по одному из ваших предыдущих скриншотов, вам также не помешало бы немного обслуживания сервера, но мы можем обсудить это, если вы заинтересованы, после того как наладим работу почты. ![]()
![]()
Это большая помощь! Спасибо. Я вернусь сюда, как только попробую, и сообщу вам, получилось или нет ![]()
Похоже, что email от letsencrypt не был принят.
Но чтобы вернуть ваш старый, вы можете:
./launcher restart data
А затем
./launcher restart web_only
Эти дополнительные файлы web_only — результат двух наших попыток обновить его. Они будут удалены во время очистки (но не запускайте её, пока ваш сайт не будет полностью запущен и работать, так как очистка удалит всё, что не активно привязано к чему-либо
).
Я воссоздал вашу конфигурацию на тестовом сайте (два контейнера и SMTP от Sendinblue), чтобы лучше понять, что происходит. Когда я получил сообщение «Cannot link to a non running container: /data AS /web_only/data», перезапуск контейнера данных, а затем контейнера web_only помог мне. Однако я только что попытался искусственно вызвать повторный запуск discourse-setup аналогичным образом, чтобы воссоздать вашу точную ситуацию для лучшего понимания.
Возможно, стоит отметить, что установка с одним контейнером поддерживается гораздо шире. Поэтому, если это вызывает слишком много разочарований, альтернативным вариантом может быть создание нового droplet в Digital Ocean и установка новой инстансии с помощью стандартного руководства по установке. Затем вы сможете восстановить резервную копию и, надеюсь, столкнётесь с гораздо меньшими трудностями при её поддержке.
Вы можете выполнить
./launcher destroy web_only
./launcher start web_only
Это подключит вас к контейнеру с данными.
Если вам нужно только изменить настройки SMTP, вы можете просто отредактировать файл web_only.yml с помощью nano, а затем выполнить последовательность команд destroy и start, описанную выше.
Я вышел из консоли, открыл новую и следовал вашим инструкциям, но получаю то же сообщение об ошибке: «невозможно связаться с неработающим контейнером».
Есть ли способ вернуть всё в состояние, которое было до настройки SMTP в консоли? Я не могу сейчас полностью перенастроить Discourse. Это слишком раздражает, особенно когда я в процессе переезда.
Спасибо, Jammy.
К счастью, кавалерия снова прибыла.
И я вижу, что ваш сайт снова работает. ![]()
@pfaffman Слава богу, это сработало. Спасибо, Джей!
Думаю, мне стоит оставить всё как есть, пока я не перееду на новое место к концу следующей недели. Самое важное сейчас — чтобы форум оставался в рабочем состоянии. Похоже, пользователи всё ещё могут менять пароли и регистрироваться на форуме, используя свои существующие пароли Google. Так что пока будем действовать так. А вчера вы показали мне, как сделать резервную копию жёсткого диска через WinSCP. Пока будем работать с этим, я думаю.
Спасибо ещё раз!
РЕДАКТИРОВАНИЕ: Когда я сказал, что всё работает, я имел в виду, что сайт запущен и функционирует. Мне всё ещё нужно попробовать остальные ваши предложения по прямой настройке SMTP, но, скорее всего, я займусь этим позже.
Мне сложно отказаться от LOL. Джей, Джамми или кто-то ещё, вы не видите каких-либо несоответствий в этом? Например, я ввёл OFF после LETSENCRYPT_ACCOUNT_EMAIL:: Не уверен, правильно ли это…
## 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 (если там будет что-то, не являющееся email-адресом, пересборка сломается). Также я оставил DISCOURSE_SMTP_ENABLE_START_TLS: по умолчанию — true.
Ваш домен для email должен совпадать с именем вашего домена, а затем, как я понимаю, вам нужно, чтобы email для уведомлений начинался с 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. Фух, я попробую ещё раз и вернусь сюда… LOL.
Прежде чем начать, хочу уточнить: адрес noreply — это noreply@gmail.com? Gmail — единственный домен электронной почты, который я использовал в Discourse. Создаётся ли там автоматически опция noreply, или какой домен мне использовать для адреса noreply? Или я могу вместо адреса noreply указать wespenre2@gmail.com?
Я отредактировал следующий файл в WinSCP (см. ниже), нажав правой кнопкой мыши на web_only.yml, но ещё не перезагрузил конфигурацию. Хочу сначала услышать ваше мнение.
Затем, если всё выглядит правильно, после перезагрузки я запускаю ./launcher destroy web_only, а затем ./launcher start web_only, верно? После этого всё должно заработать?
Как насчёт этого?
## 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: "password"
DISCOURSE_SMTP_ENABLE_START_TLS: true # (необязательно, по умолчанию true)
DISCOURSE_SMTP_DOMAIN: gmail.com
DISCOURSE_NOTIFICATION_EMAIL: noreply@gmail.com
## Если вы добавили шаблон Lets Encrypt, раскомментируйте ниже, чтобы получить бесплатный SSL-сертификат
LETSENCRYPT_ACCOUNT_EMAIL: wespenre2@gmail.com






