Инфраструктура моего сайта
Как я деплоил сайт, что использовал для этого
В первой заметке я рассказал, какие технологии я использовал для создания сайта. Эта же заметка посвящена инфраструктуре.
Я решил разместить сайт на виртуальной машине от Yandex Cloud. С Yandex Cloud я познакомился во время обучения на Яндекс Практикуме, и я решил пока что не искать новый облачный сервис, а воспользоваться тем, с которым уже имел дело.
Для размещения сайта на виртуальной машине я решил использовать контейнеры. Я подготовил Docker-файл для сборки образа моего сайта, а для создания контейнеров с базой данных и Nginx (Nginx я использую для раздачи статики) я взял готовые официальные образы с Докера. Итоговую конфигурацию я прописал в docker-compose.yml, после чего загрузил этот файл вместе с конфигурацией Nginx на виртуальную машину.
Доменное имя я пока решил не покупать, вместо этого я зарегистрировал бесплатный домен на сайте noip.com.
Я хотел, чтобы у моего сайта был SSL-сертификат от Let's Encrypt. Для его получения я добавил в docker-compose контейнер с Certbot, а также внес изменения в конфигурацию Nginx - чтобы запросы с http направлялись на https. Настроить всё так, чтобы сертификаты были получены, мне помогла вот эта статья.
Трудно представить себе проект без доработок. Чтобы изменения в коде автоматически деплоились на сервер после коммита и пуша изменений, я на ГитХабе настроил workflow: теперь после того, как я гружу код в репозиторий в ветку main - мой код тестируется, после чего идет пересборка образа и перезапуск docker-compose на сервере. При успешном деплое мне прилетает уведомление в Телеграм.
На этом всё. Если вам понравилась (или, наоборот, не понравилась) статья - пишите комменты.