# Сайт упал — какие у меня есть варианты

**URL:** https://meta.discourse.org/t/site-crashed-what-are-my-options/261875
**Category:** Self-hosting
**Created:** [16.Апрель.2023 19:02:13 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875 "2023-04-16T19:02:13Z")
**Posts on this page:** 19
**Page:** 1

<div class="post-metadata">

### Author: ![asn](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/asn/32/297842_2.png) [@asn](https://meta.discourse.org/u/asn)
#### Post date: [16.Апрель.2023 19:02:13 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/1 "2023-04-16T19:02:13Z")

</div>

У меня установлена версия 2.5.0.beta4.  
Предполагалось её обновление, но в процессе оно прервалось, и мой сайт перестал загружаться.  
У меня есть все файлы, база данных и прочее. Установка была выполнена через Docker на Ubuntu 16.  
Какие у меня есть варианты для исправления ситуации?  
Я ничего не понимаю в командной строке, поэтому мне придётся попросить кого-то сделать это за меня, но мне нужно чётко понимать, что именно нужно делать, чтобы не действовать вслепую.  
Любая помощь будет очень кстати.

---

<div class="post-metadata">

### Author: ![MikeNolan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mikenolan/32/297597_2.png) [@MikeNolan](https://meta.discourse.org/u/MikeNolan)
#### Post date: [16.Апрель.2023 19:40:28 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/2 "2023-04-16T19:40:28Z")

</div>

Можете предоставить дополнительные детали: загружается ли контейнер (docker ps)? Есть ли какие-либо сообщения об ошибках или логи, которые могли бы указать направление? Вы используете самохостинг или сторонний хостинг?

---

<div class="post-metadata">

### Author: ![asn](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/asn/32/297842_2.png) [@asn](https://meta.discourse.org/u/asn)
#### Post date: [16.Апрель.2023 21:42:57 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/3 "2023-04-16T21:42:57Z")

</div>

Привет, Майк, спасибо за ответ. Вот что я получаю:

```plaintext
Когда я запускаю ./discourse-doctor, получаю эту ошибку:

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=2 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e 
RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e 
RUBY_GC_HEAP_INIT_SLOTS=400000 -e 
RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e 
DISCOURSE_DB_SOCKET=/var/run/postgresql -e 
DISCOURSE_DB_HOST= -e 
DISCOURSE_DB_PORT= -e 
LETSENCRYPT_DIR=/shared/letsencrypt -e 
DISCOURSE_FORCE_HTTPS=true -e 
DISCOURSE_HOSTNAME=discuss.domain -e 
DISCOURSE_DEVELOPER_EMAILS=info@domain -e 
DISCOURSE_SMTP_ADDRESS=mail3.domain -e 
DISCOURSE_SMTP_PORT=587 -e 
DISCOURSE_SMTP_USER_NAME=xxx@domain -e 
DISCOURSE_SMTP_PASSWORD=xxx -e 
LETSENCRYPT_ACCOUNT_EMAIL=info@domain -h 
Ubuntu-1804-bionic-64-minimal-app -e 
DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:8d:5a:f6:a3:11 local_discourse/app /sbin/boot

Не удалось найти образ 'local_discourse/app:latest' локально
docker: Ошибка ответа от демона: доступ к загрузке образа local_discourse/app запрещён, репозиторий не существует или может потребоваться 'docker login': отказано: запрошенный доступ к ресурсу запрещён.
См. 'docker run --help'.
Не удалось перезапустить контейнер.

```

Та же ошибка при попытке запустить /launcher rebuild app  
Docker последней версии

Также я вижу эту ошибку в логе doctor:

```plaintext
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && find /var/www/discourse ! -user discourse -exec chown discourse {} \+ failed with return #<Process::Status: pid 1929 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"web", "cmd"=>["gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,\"\"); print $0 }' Gemfile.lock)", "find $home ! -user discourse -exec chown discourse {} \\+"]}
bootstrap failed with exit code 1
**FAILED TO BOOTSTRAP** пожалуйста, прокрутите вверх и посмотрите на более ранние сообщения об ошибках, их может быть больше одной.
./discourse-doctor может помочь в диагностике проблемы.
f4d0b782e3d1c3deccb5e3d6c186a08ebbaaea22ed37d19a2ff07b7688c83926
 

```

---

<div class="post-metadata">

### Author: ![MikeNolan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mikenolan/32/297597_2.png) [@MikeNolan](https://meta.discourse.org/u/MikeNolan)
#### Post date: [16.Апрель.2023 22:00:54 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/4 "2023-04-16T22:00:54Z")

</div>

Какое обновление вы выполняли? Проверьте файл app.yml на наличие опечаток, а затем запустите полную пересборку.

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [16.Апрель.2023 22:03:30 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/5 "2023-04-16T22:03:30Z")

</div>

Ваша версия Docker устарела, и это происходит из-за того, что ваша Ubuntu слишком старая. У вас есть резервная копия? Просто запустите новый VPS на Ubuntu 22 и восстановите её.

---

<div class="post-metadata">

### Author: ![asn](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/asn/32/297842_2.png) [@asn](https://meta.discourse.org/u/asn)
#### Post date: [16.Апрель.2023 22:28:18 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/6 "2023-04-16T22:28:18Z")

</div>

У меня нет резервной копии, только снимок VPS с момента последней работоспособности, но после восстановления он не загружается.

```plaintext
Docker version 23.0.3, build 3e7cbfd

```

Файл app.yml в порядке, проверен на [https://www.yamllint.com](https://www.yamllint.com).

Ошибка связана с этой строкой в launcher:

```plaintext
cidbootstrap=cids/"$config"_bootstrap.cid
local_discourse=local_discourse
image="discourse/base:2.0.20230409-0052"
docker_path=`which docker.io 2> /dev/null || which docker`
git_path=`which git`

```

```plaintext
local_discourse=local_discourse

```

---

<div class="post-metadata">

### Author: ![asn](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/asn/32/297842_2.png) [@asn](https://meta.discourse.org/u/asn)
#### Post date: [16.Апрель.2023 22:29:10 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/7 "2023-04-16T22:29:10Z")

</div>

Как в этой ситуации получить данные или сделать резервную копию?

---

<div class="post-metadata">

### Author: ![MikeNolan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mikenolan/32/297597_2.png) [@MikeNolan](https://meta.discourse.org/u/MikeNolan)
#### Post date: [16.Апрель.2023 22:35:02 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/8 "2023-04-16T22:35:02Z")

</div>

Файлы базы данных должны быть доступны. На моём продакшн-сервере они находятся по пути /var/discourse/shared/standalone/postgres\_data, у вас они могут располагаться в аналогичном месте.

Прежде чем продолжать, я рекомендую сделать полную резервную копию системы на другой сервер, особенно всех директорий, находящихся внутри директории ‘discourse’.

Если у вас нет актуальной (достаточно свежей) резервной копии, я бы создал новый сервер с более новой версией Ubuntu (и, соответственно, Docker), а затем скопировал бы все директории из структуры discourse на него, включая все файлы PostgreSQL. (Мне ещё не приходилось делать это на сервере Discourse, но я администрирую базы данных PostgreSQL уже 20 лет, и если файлы базы данных целы, это помогает в восстановлении/пересоздании системы.)

Прошло ли много времени с момента последнего обновления этой системы? Если ответ на этот вопрос «да», то при попытке скопировать существующие файлы из директорий discourse на новый сервер могут возникнуть осложнения, потому что это действительно не правильный способ действий; резервная копия Discourse содержит гораздо больше, чем просто файлы базы данных PostgreSQL. (Именно поэтому я стараюсь делать резервную копию даже перед незначительным обновлением, хотя признаю, что не всегда это делаю.)

Ваша последняя резервная копия Discourse, скорее всего, находится в директории, похожей на эту:  
/var/discourse/shared/standalone/backups/default

---

<div class="post-metadata">

### Author: ![asn](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/asn/32/297842_2.png) [@asn](https://meta.discourse.org/u/asn)
#### Post date: [17.Апрель.2023 16:19:52 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/9 "2023-04-17T16:19:52Z")

</div>

Привет, Майк, спасибо за твои ответы, я очень это ценю.  
Обновление не удалось, и в какой-то момент SSL перестал автоматически обновляться, поэтому, пытаясь решить все эти проблемы, я оказался в такой ситуации.  
Я попробую, я пытаюсь пересобрать приложение, но у меня недостаточно места: по какой-то причине Discourse использует 15 ГБ.  
Есть ли способ запустить Discourse, кроме пересборки, например, через команду запуска?

Спасибо еще раз.

---

<div class="post-metadata">

### Author: ![MikeNolan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mikenolan/32/297597_2.png) [@MikeNolan](https://meta.discourse.org/u/MikeNolan)
#### Post date: [17.Апрель.2023 17:06:35 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/10 "2023-04-17T17:06:35Z")

</div>

У вас, вероятно, осталось множество образов контейнеров.

Команда `docker images` покажет их список. Например, на моей продукционной системе она выводит 7 образов размером около 3,5 ГБ каждый, что в сумме занимает немало места; на моей тестовой системе их более 20. Вы можете удалить некоторые из этих образов, чтобы освободить место, или скопировать их на отдельный сервер, если там есть свободное пространство.

Предполагаю, что `docker ps` не показывает запущенный контейнер.

Пробовали ли вы запустить старый контейнер, чтобы проверить, откроется ли сайт? После этого можно сделать резервную копию.

Полагаю, Launcher справится с этим: он в основном служит фронтендом для команд Docker, но также может выполнять другие необходимые задачи для запуска Discourse.

---

<div class="post-metadata">

### Author: ![asn](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/asn/32/297842_2.png) [@asn](https://meta.discourse.org/u/asn)
#### Post date: [17.Апрель.2023 17:44:31 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/11 "2023-04-17T17:44:31Z")

</div>

Привет, Майк, странно, но там всего один контейнер. Мне удалось освободить место, очистив логи и прочее, но это не помогло. Есть ещё одна проблема, которую я не могу найти. Я просто последую твоим другим инструкциям, чтобы посмотреть, получится ли запустить его вручную, например, скопировав файлы и базу данных на более новую версию.  
Когда я запускаю docker run, получаю:

```plaintext
docker run discourse
Unable to find image 'discourse:latest' locally
docker: Error response from daemon: pull access denied for discourse, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.

```

---

<div class="post-metadata">

### Author: ![MikeNolan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mikenolan/32/297597_2.png) [@MikeNolan](https://meta.discourse.org/u/MikeNolan)
#### Post date: [17.Апрель.2023 17:50:11 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/12 "2023-04-17T17:50:11Z")

</div>

Что произойдет, если вы попробуете лаунчер?

---

<div class="post-metadata">

### Author: ![asn](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/asn/32/297842_2.png) [@asn](https://meta.discourse.org/u/asn)
#### Post date: [17.Апрель.2023 18:07:48 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/13 "2023-04-17T18:07:48Z")

</div>

` ./launcher start app`  
Выдает следующее:

```plaintext
.....обрезано
Не удалось найти образ 'local_discourse/app:latest' локально
/usr/bin/docker: Ошибка ответа от демона:
доступ к загрузке для local_discourse/app запрещен,
репозиторий не существует или может потребоваться 'docker login': отказано:
запрошенный доступ к ресурсу запрещен.

```

---

<div class="post-metadata">

### Author: ![MikeNolan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mikenolan/32/297597_2.png) [@MikeNolan](https://meta.discourse.org/u/MikeNolan)
#### Post date: [17.Апрель.2023 18:19:10 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/14 "2023-04-17T18:19:10Z")

</div>

Что вы получаете от команды ‘docker images’?

---

<div class="post-metadata">

### Author: ![asn](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/asn/32/297842_2.png) [@asn](https://meta.discourse.org/u/asn)
#### Post date: [17.Апрель.2023 19:00:58 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/15 "2023-04-17T19:00:58Z")

</div>

Только один:  
discourse/base 2.0.20230409-0052 08afe7103ce8

---

<div class="post-metadata">

### Author: ![MikeNolan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mikenolan/32/297597_2.png) [@MikeNolan](https://meta.discourse.org/u/MikeNolan)
#### Post date: [18.Апрель.2023 06:48:49 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/16 "2023-04-18T06:48:49Z")

</div>

Я могу более или менее воспроизвести сообщения об ошибке, которые вы получаете, используя более старый образ, но пока не нашел способа заставить этот образ загрузиться.

Не уверен, что еще я могу предложить на данный момент.

---

<div class="post-metadata">

### Author: ![asn](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/asn/32/297842_2.png) [@asn](https://meta.discourse.org/u/asn)
#### Post date: [18.Апрель.2023 22:09:52 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/17 "2023-04-18T22:09:52Z")

</div>

Привет, Майк! Твоё решение, помеченное ранее как решение, немного прояснило ситуацию. Я скопировал все файлы на новый VPS, и после нескольких изменений всё заработало. Спасибо всем за помощь.

---

<div class="post-metadata">

### Author: ![MikeNolan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mikenolan/32/297597_2.png) [@MikeNolan](https://meta.discourse.org/u/MikeNolan)
#### Post date: [18.Апрель.2023 22:28:44 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/18 "2023-04-18T22:28:44Z")

</div>

Рад, что вы нашли решение, мне было приятно помочь. Не забывайте регулярно делать резервные копии. 🙂

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [18.Май.2023 22:29:36 UTC](https://meta.discourse.org/t/site-crashed-what-are-my-options/261875/19 "2023-05-18T22:29:36Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
