Резервное копирование продакшена -> Snap -> Тестирование сборки -> Смена адреса

Всем привет,

Я уже ломаю голову, несмотря на помощь ИИ, пытаясь реализовать свою задумку.

Наш Discourse работает на Hetzner. Адрес может быть forum.thisIsMyDomain.com.
Там я делаю резервную копию, а из неё — снимок (snap).

У меня есть ещё один сервер Hetzner для тестовых целей. На него я теперь восстанавливаю систему из этого снимка. У сервера, естественно, другой IP и адрес, например dev.thisIsMyDomain.com.

Как теперь запустить эту тестовую/разработочную инстанцию?

nano /var/discourse/containers/app.yml

Изменить DISCOURSE_HOSTNAME на новое имя.

Кажется, этого недостаточно.
Но я категорически не хочу выполнять полное восстановление (Rebuild), а на первом этапе просто хочу запустить точную копию (1:1).

У кого-то был подобный опыт? Подскажите, пожалуйста, как действовать дальше. Большое спасибо за ваше время.

Richarde

Привет! Вы следовали этому руководству по восстановлению из резервных копий?

(Также см. Restore a Discourse backup manually for development, но, кажется, это не имеет отношения к делу?)

Спасибо за ваш ответ.

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

Попробуйте изменить имя хоста и выполнить команду ./launcher rebuild app.

Однако, поскольку имя хоста изменилось, в базе данных также необходимо обновить множество записей. Самый простой способ — восстановить резервную копию. Ранее была тема о том, как изменить имя хоста; я её не вижу, но, возможно, я недостаточно тщательно искал. Или, возможно, она была удалена, потому что восстановление резервной копии гораздо проще и надёжнее.

Возможно, вы сможете выполнить ./launcher destroy app; ./launcher start app, а затем восстановить резервную копию через командную строку.

Я рекомендую следующие руководства: Перенос сайта Discourse на другой VPS с помощью rsync и Настройка тестового сервера.

В таком случае вам нужно загрузить ваш Docker-образ в репозиторий, а затем использовать команду ./launcher start-cmd app, чтобы узнать, как его запустить. Таким образом, вам потребуется достаточно хорошо разобраться в Docker, чтобы загрузить образ в приватный репозиторий, запустить его и затем восстановить резервную копию.

Я хочу пометить эту попытку как официально провалившуюся :slight_smile:
Я перепробовал многое, но, похоже, это невозможно (для меня), поэтому я прекращаю этот путь.

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

На самом деле это работает.

Не знаю, почему раньше не получалось, но сейчас я делаю именно так.

  • Снимок Prod.
  • Пересборка Dev из снимка Prod.
  • Изменение app.yml «DISCOURSE_HOSTNAME» на новый адрес Dev.
  • Пересборка App.

Не стоит делать это слишком часто в течение недели, так как существует ограничение на выдачу доверенных SSL-сертификатов. Лучшая практика:
создать снимок Prod, пересобрать Dev, создать снимок Dev.

Каждая пересборка на том же адресе не приводит к созданию нового SSL-сертификата.

Для меня это простой способ создать тестовый сервер — всего несколько кликов.