Оглавление |
Эта инструкция нужна тем, кому не хватает мощностей для одновременной разработки и поддержания локальной работы сайта или кто не хочет скачивать себе репозиторий и докер-образы на ПК.
Здесь мы научимся запускать сайт на сервере, а также подключатсья к нему со своего ПК, что позволит нам уменьшить нагрузку на используемвый компьютер
Требования:
- Свой или арендованный физический или виртуальный сервер с белым ip (потому что мы планируем подключаться к нему с нашего устройства)
- Аккаунт на gitlab.com и доступ к репозиторию https://gitlab.com/fpmi/stfpmi-master (если ссылка открывается и не ведёт на 404 - то доступ есть. Иначе - обращайся к Ivan Arkhipov )
- Установленная и готовая к работе VSCode
Шаг 1. Настройка подключения к серверу
Шаг 1.1. Генерация ssh-ключа
Вопосльзуйтесь первым пунктом данного гайда, только вместо выберите другое имя и комментарий, которые бы ясно давали понять, что используется ключ для подключения к вашему серверу:
Шаг 1.2. Добавление ssh-ключа в ~/.ssh/config
Воспользуйтесь третьим пунктом данного гайда, но в качестве Host укажите что-нибудь вроде mipt.tech-remote, в качестве HostName — IP-адрес вашего сервера, в качестве User — имя пользователя, возможно просто root, ну и наконец IdentityFile — путь к непубличному ssh-ключу
В итоге 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. Установка докера
Установите докер на сервере:
Шаг 2.2. Настройка гитлаба и скачивание исходников
Воспользуйтесь https://workshop.samcs.ru/confluence/x/KIKXAQ и склонируйте исходники сайта на сервер попутно создав (или скопировав) ssh-ключ для гитлаба
Шаг 2.3. Запуск сайта на сервере
Как бы очевидно это не звучало, но теперь нам нужно лишь сделать в директории сайта
docker compose up
И сайт запустится (вы великолепны)
Шаг 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




