Сайт в интернете: сервер, домен и HTTPS
Пока сайт живёт на вашем компьютере. Перенесём его на сервер, привяжем домен и включим HTTPS. Понадобятся сервер на Linux и домен, остальное Eile сделает сам.
Сервер и домен
Нужен небольшой виртуальный сервер (VPS) с Linux: подойдёт самый дешёвый тариф с 1 ГБ памяти у любого хостинга. При заказе выберите Ubuntu или Debian. Хостинг пришлёт IP-адрес сервера, например 203.0.113.10, и пароль пользователя root.
Домен покупается у регистратора, например fasad.ru. В его настройках DNS создайте две записи типа A: для fasad.ru и для www.fasad.ru, обе с IP-адресом сервера. Записи расходятся по интернету от нескольких минут до пары часов.
Войти на сервер
С сервером разговаривают через SSH: это тот же терминал, только команды выполняются на другом компьютере. В терминале у себя наберите:
$ ssh root@203.0.113.10Введите пароль от хостинга. Строка приглашения поменяется: теперь команды идут на сервер. Поставьте Eile так же, как во второй главе:
$ curl -fsSL https://github.com/a-sharapov/eile/releases/latest/download/install.sh | bashПод root программа ляжет в /usr/local/bin/cms. Выйдите с сервера командой exit:
$ exitПеренести сайт
Весь сайт лежит в site.db. Сначала сделайте его копию на своём компьютере, в папке fasad:
$ cms backup fasad-copy.dbКопию можно делать и на работающем сайте: она соберётся целиком и без половинчатых записей. Почта для писем, Telegram и почтовый шлюз — настройки этого компьютера, а не сайта, и в копию они не входят. Если вы их уже настроили, захватите и их — файлом настроек сервера:
$ cms backup --server fasad-server.encКоманда дважды спросит пароль, не короче 12 знаков: им файл зашифрован, ведь в нём пароль от почты и токен бота. Теперь отправьте оба файла на сервер командой scp, она копирует файлы через SSH:
$ scp fasad-copy.db fasad-server.enc root@203.0.113.10:Запустить как службу
Если запустить cms в терминале сервера, сайт остановится, как только вы закроете окно. Поэтому его запускают службой: Linux сам стартует её при включении сервера и перезапустит, если что-то пойдёт не так. Службу Eile создаёт сам. Снова зайдите на сервер и выполните одну команду, поменяв домены и почту на свои:
$ ssh root@203.0.113.10
$ cms service install --domain fasad.ru,www.fasad.ru --email you@example.com --from fasad-copy.db--domain fasad.ru,www.fasad.ru: на каких адресах живёт сайт. Eile сам получит для них сертификат HTTPS у Let’s Encrypt, будет продлевать его и переводить гостей с http на https.--email: сюда Let’s Encrypt напишет, если с сертификатом что-то не так.--from fasad-copy.db: копия сайта, которую вы привезли. Eile перенесёт её в/var/lib/cms/site.db, после этогоfasad-copy.dbможно удалить.
Сначала команда проверит, что домены указывают на этот сервер, порты 80 и 443 свободны и памяти хватает. Если что-то не так, она скажет, что поправить. Потом создаст службу, запустит её и дождётся ответа сайта. В конце появится строка ✓ Служба cms работает с адресами сайта и менеджера.
Через минуту откройте https://fasad.ru: сайт на месте, с замком в адресной строке. Менеджер работает по https://fasad.ru/manager, с той же почтой и паролем, что были у вас дома: они переехали вместе с базой.
Осталось вернуть настройки сервера из файла. Команда спросит тот же пароль:
$ cms restore --server fasad-server.enc --db /var/lib/cms/site.dbПочта, Telegram и почтовый шлюз заработают сразу: служба подхватит их сама, перезапускать её не нужно. Файл fasad-server.enc после этого удалите и с сервера, и из папки: он нужен только для переезда. Если файла нет, настройте почту и Telegram в менеджере заново.
Как дела у сайта, покажет cms service status. Посмотреть файл службы, ничего не меняя, можно с параметром --print.
Адрес сайта в настройках
В менеджере откройте Настройки → Сайт и впишите адрес сайта: https://fasad.ru. По нему строятся ссылки для поисковиков, карта сайта и превью в соцсетях.
Резервные копии
В Настройки → Копии и обновления включите автокопии: например, раз в сутки в три часа ночи, хранить последние семь. Сервер будет делать их сам. Если копия не получится, придёт уведомление.
Копия, которая лежит только на том же сервере, не спасёт, если сломается сервер. Поэтому там же, в разделе Копии вне сервера, подключите хранилище: например, DigitalOcean Spaces у того же хостинга или Backblaze B2. Впишите адрес хранилища, бакет, ключ доступа и его секрет, нажмите Проверить связь и сохраните. Теперь каждая автокопия зашифрованной уходит в хранилище, а там хранятся последние четырнадцать.
Иногда скачивайте копию и себе: раздел Копии в шапке менеджера, одна кнопка.
Обновления
Когда выйдет новая версия Eile, менеджер покажет это в меню учётной записи. Обновление на сервере занимает одну команду:
$ cms updateОна скачает новую версию, сверит контрольную сумму, пробно её запустит и перезапустит службу. Если новая версия не поднимется, cms update сам вернёт прежнюю и скажет об этом. Перед обновлением альфа-версии полезно сделать копию: cms backup.