Skip to content
On this page

Загрузка обновлений на сервер ​

Легко

Эта статья для новичков

Для обычного программиста эта статья покажется не нужной, ведь «там всё легко», но из личного опыта скажу: в начале своего пути как программиста, когда поступает таска загрузить обновление на сервер, становится не по себе, ведь ЭТО ПРОД, а вдруг что упадет, а вдруг что сломается. Поэтому, всегда должна быть шпаргалка для первого времени.

В этой мини-статье мы рассмотрим список команд, необходимые для загрузки обновления на сервер. Бояться не нужно, главное следовать командам.

Подключение к серверу ​

Поскольку таска поступила, значит мы подразумеваем, что доступ к серверу вам выдали.

Чтобы попасть на сервер, необходимо установить ssh-подключение

Для общего сведения

SSH (англ. Secure Shell — «безопасная оболочка») — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов).

Для подключения открываем консоль и пишем следующую команду

shell
ssh $USER@$IP

Где $USER - это пользователь сервера, а $IP - ip сервера.

Пример:

shell
ssh web@22.59.41.55

Выполнив предыдущую команду, если подключение выполняем впервые, то появится сообщение ssh Введите yes.

Для общего сведения

Это нужно для повышения безопасности. При настройке SSH-сервера создается уникальная комбинация символов — fingerprint («отпечатки пальцев»). Ваш компьютер запоминает эту комбинацию и сверяет ее при каждом новом соединении. Представьте, что кто-то внёс изменения в систему, например: — Переустановил SSH-сервер — Переустановил всю операционную систему — Заменил удаленный компьютер, сохранив его адрес

Даже в этом случае вы заметите изменения, потому что fingerprint тоже изменится. Если fingerprint не меняется, то такое сообщение не будет появляться.

После подтверждения, необходимо повторить команду подключения и ввести пароль. 🎉 Поздравляю, вы на сервере 🎉 on server

Папка проекта ​

В данный момент, вы находитесь в домашней папке пользователя, под которым вы авторизовались на сервере. Но вам нужно оказаться в папке проекта.

Я не знаю как папка с проектом, что делать? ​

Выходов из этой ситуации много

  1. Спросить у того, кто знает — но это слишком легко
  2. Воспользоваться поиском
  3. Посмотреть в конфиге сайта

Поиск ​

Для того чтобы найти папку с проектом мы можем воспользоваться поиском.

shell
find ~ -type d -name 'batyukovstudio.com'

> find - это команда

> ~ - где искать, в данном случае ищем по домашней директории пользователя

> -type d - говорим поиску, что ищем директорию

> -name - говорим, что нужно искать по имени

> 'batyukovstudio.com'- название папки, с большей вероятностью, директория называется так же, как и название репозитория в гите

search

Получаем название и переходим в директорию

Просмотр конфига ​

Второй способ, более изощренный, но благодаря ему, вы можете почувствовать себя сверх программистом

Мы можем проследовать в папку, где лежат конфигурационные файлы сайтов и посмотреть путь ресурсной директории.

Заходим в папку с файлами:

shell
cd /etc/nginx/sites-available/

Смотрим что есть, с помощью команды ls и находим файл, у которого название состоит из домена и читаем его следующей командой:

shell
cat batyukovstudio.com.conf

В нем ищем строку, которая начинается со слова root и запоминаем путь.

Загрузка обновлений ​

Для обновления проекта необходимо «подтянуть» изменения с git’а, для этого нужно прописать команду:

shell
git pull origin main

Важно!

Вместо main может быть другая, необходимая вам, ветка. Чаще всего это master

Важно!

При сообщении о конфликте при «подтягивании», вы можете сбросить все изменения до нужной вам ветки командой git reset --hard origin/{Нужная вам ветка}

Сборка проекта ​

И последним шагом вам остается лишь собрать проект

shell
npm run prod

Заключение ​

Вот мы и выполнили таску. Главное не бояться, но и лишнего не делать.

P.S. не забывайте про время в жире!

Kirill Merkulov

Kirill Merkulov

Head of Frontend Department at Batyukov Studio

Last updated:

Released under the MIT License.