Оглавление | Статьи по теме
|
Эта инструкция нужна тем, кому не хватает мощностей для одновременной разработки и поддержания локальной работы сайта или кто не хочет скачивать себе репозиторий и докер-образы на ПК.
Здесь мы научимся запускать сайт на сервере, а также подключатсья к нему со своего ПК, что позволит нам уменьшить нагрузку на используемвый компьютер
Требования:
- Свой или арендованный физический или виртуальный сервер с белым ip (потому что мы планируем подключаться к нему с нашего устройства)
- Аккаунт на gitlab.com и доступ к репозиторию https://gitlab.com/fpmi/stfpmi-master (если ссылка открывается и не ведёт на 404 - то доступ есть. Иначе - обращайся к Ivan Arkhipov )
- Установленная и готовая к работе VSCode
Шаг 1. Настройка подключения к серверу
Шаг 1.1. Генерация ssh-ключа
Вопосльзуйтесь первым пунктом данного гайда, только вместо выберите другое имя и комментарий, которые бы ясно давали понять, что используется ключ для подключения к вашему серверу:
https://workshop.samcs.ru/confluence/pages/viewpage.action?pageId=26706472#id-2.%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BA%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D1%8E%D0%B8%D0%BA%D0%BB%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2-%D0%A8%D0%B0%D0%B31:%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8Fssh-%D0%BA%D0%BB%D1%8E%D1%87%D0%B0%D0%BD%D0%B0Gitlab.com
Шаг 1.2. Добавление ssh-ключа в ~/.ssh/config
Воспользуйтесь третьим пунктом данного гайда, но в качестве Host укажите что-нибудь вроде mipt.tech-remote, в качестве HostName — IP-адрес вашего сервера, в качестве User — имя пользователя, возможно просто root, ну и наконец IdentityFile — путь к непубличному ssh-ключу
https://workshop.samcs.ru/confluence/pages/viewpage.action?pageId=26706472#id-2.%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BA%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D1%8E%D0%B8%D0%BA%D0%BB%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2-%D0%A8%D0%B0%D0%B33:%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5ssh-%D0%BA%D0%BB%D1%8E%D1%87%D0%B0%D0%B2~/.ssh/config
В итоге config-файл будет выглядеть примерно так

Definition of done: Попробуй выполнить у себя команду (вместо mipt.tech-remote поставьте то, что написали в Host)
В случае успеха вам откроется терминал на вашем сервере:

P.S. Когда вы используете существующий сервер: нужно добавить ПУБЛИЧНУЮ часть ssh-ключа в файл authorized_keys на сервере (public_key_string — содержимое *.pub файла вашего ключа)
echo "public_key_string" » ~/.ssh/authorized_keys |
Файл autorized_keys нам нужен в силу того, что процесс подключения по ssh выглядит следующим образом:
- /usr/bin/ssh соединяется с сервером на порт SSH
- Клиент и сервер обмениваются ключами, определяется алгорит м шифрования
- Клиент ищет файлы, по умолчанию испрользуемые Pubkey/Identity
- Если один из таких файлов был найден, то посылается публичный ключ на сервер и запрашивается аутентификация по этому ключу
- Сервер проверяет файл authorized_keys пользователя на наличие публичного ключа и посылает клиенту последовательность, зашифрованную открытым ключом . Если приватный ключ защищен кодовым словом, то /usr/bin/ssh просит его ввести для дешифровки приватного ключа.
- Клиент расшифровывает посланную последовательность для подтверждения правильности публичного и приватного ключей
- Если расшифровка удалась, то сервер пускает клиента без запроса пароля Unix
- Если клиент не может доказать, что это имеет ключ, то он может предложить другие ключи
- При отсутствии корректных ключей пользователю будет предложено авторизоваться с помощью авторизации Unix
Шаг 2. Запуск сайта на сервере
Шаг 2.1. Установка докера
Установите докер на сервере:
https://workshop.samcs.ru/confluence/pages/viewpage.action?pageId=35324146#id-1.[Linux]%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0%D1%81%D1%80%D0%B5%D0%B4%D1%8B%D0%B4%D0%BB%D1%8F%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8-%D0%A8%D0%B0%D0%B31.%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0Docker
Шаг 2.2. Настройка гитлаба и скачивание исходников
Воспользуйтесь https://workshop.samcs.ru/confluence/x/KIKXAQ и склонируйте исходники сайта на сервер попутно создав (или скопировав) ssh-ключ для гитлаба
Шаг 2.3. Запуск сайта на сервере
Как бы очевидно это не звучало, но теперь нам нужно лишь сделать в директории сайта
И сайт запустится (вы великолепны)
Шаг 2.4. Вход на сайт
Теперь, чтобы на этот самый сайт зайти, нужно всего лишь ввести в адресную строку ip:3000, где ip — ip-адрес вашего сервера,а 3000 — порт (3001 для next-js фронтенда)
Шаг 3. Интеграция с VS Code
Для начала установите расширение под названием Remote - SSH
Затем выберите нажмите на кнопку открытия удалённого окна (1) и подключение к узлу Remote - SSH (2)

Выберите нужный Host (его вы указывали в config-файле, в моём случае это mipt.tech-remote)(3)

(При открытии окна, а также при открытии папок от вас могут потребовать ввестипароль, который вы указывали при создании ssh-ключа, если вы его указывали)
Теперь вы подключены к своему серверу через VS Code и соответственно можете выполнять команды из терминалы, открывать папки и писать код

P.S. Если вы вдруг захотите установить какие-то расширения, то делать это нужно уже после открытия удалённого окна через SSH