Хостинг — это компьютер в дата-центре, который работает круглосуточно и показывает ваш сайт всем, кто его открывает. В этом шаге выберем такой компьютер и выложим на него сайт так, чтобы обновления ничего не ломали.
Какой сервер нужен
Для сайта, сделанного своим кодом, подходит облачный сервер — его ещё называют VPS. Это ваш личный виртуальный компьютер у провайдера: вы сами решаете, что на нём запускать.
- Российское облако, если ваши читатели в России: сайт быстрее открывается, а персональные данные хранятся по российским правилам.
- Небольшой тариф для начала. Сайту услуг, блогу или сайту с онлайн-записью хватит самого скромного сервера. Онлайн-сервису с личными кабинетами и расчётами со временем может понадобиться больше памяти — тариф можно повысить, не переезжая.
- Резервные копии и хранилище для картинок у того же провайдера — удобно, всё в одном месте.
Как это сделано у меня
Блог работает в Timeweb Cloud, на том же сервере, что и мой продукт Квартум: 4 ядра, 8 ГБ памяти, 80 ГБ диска. По прайсу Timeweb такой сервер стоит около 2 000 ₽ в месяц. Но для одного блога это много: начинать можно с тарифа в несколько раз дешевле. Блог живёт на сервере отдельным проектом, со своей базой, и не мешает Квартуму. Картинки и резервные копии лежат в хранилище S3 у того же провайдера — для блога это от рубля до нескольких десятков рублей в месяц.
Если выбираете, где разместить сайт, — вот моя реферальная ссылка на Timeweb Cloud.
Открыть схему в полном размереКак сайт попадает на сервер
Самая частая ошибка новичков — собирать сайт прямо на сервере. Однажды сборка падает посреди обновления, и сайт лежит. Надёжнее так:
- Код хранится в GitHub. Когда вы выпускаете новую версию, GitHub сам собирает готовый «контейнер» — упакованный сайт со всем нужным внутри.
- Сервер только скачивает готовый контейнер и запускает его. На нём ничего не собирается.
- Новая версия выкладывается только после зелёных проверок — автоматических тестов, которые написал ИИ.
- Откат — одна команда: вернуть прежний номер версии. Если что-то пошло не так, через минуту всё работает как раньше.
У меня обновление — это три команды, которые я копирую из инструкции. Писать их по памяти не нужно.
Подготовь сайт к размещению на моём сервере [провайдер, тариф]. Нужно: обновление новой версии одной-двумя командами, откат на прежнюю версию, на сервере ничего не собирать. Напиши инструкцию в docs/operations.md простым языком и объясни, что мне нужно сделать руками.
Что дальше
Сайт в интернете и открывается по вашему адресу. Прежде чем звать посетителей, сделаем его надёжным: замок HTTPS, резервные копии и базовая защита.