Инфраструктура моего сайта

Как я деплоил сайт, что использовал для этого

картинка к статье

В первой заметке я рассказал, какие технологии я использовал для создания сайта. Эта же заметка посвящена инфраструктуре.

Я решил разместить сайт на виртуальной машине от 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 на сервере. При успешном деплое мне прилетает уведомление в Телеграм.

На этом всё. Если вам понравилась (или, наоборот, не понравилась) статья - пишите комменты.

Комментарии 0 Нравится 1

Еще:

Особенности интерфейса автора

Интерфейс сайта у автора имеет ряд особенностей. Что это за особенности - вы узнаете, прочитав статью

Читать...
Мой сайт - что "под капотом"

Заметка о том, как я делал сайт и какие технологии использовал.

Читать...