Jekyll — статический генератор сайтов, написанный на Ruby, который позволяет создавать веб-сайты или блоги без использования серверной базы данных. Он преобразует простые текстовые файлы, например, Markdown или HTML, в статические HTML-страницы, которые можно легко разместить на любом веб-сервере. Jekyll идеально подходит для блогов, документации и персональных сайтов, поскольку его статическая природа делает сайты быстрыми, безопасными и легко развёртываемыми.
В статье разберём, как установить сервер Jekyll на виртуальную машину, работающую на Windows Server 2016.
Установка Ruby
Поскольку Jekyll построен на Ruby, то для его функционирования сначала нужно установить сам интерпретатор Ruby. Процесс инсталляции Ruby на Windows Server 2016 описан в соответствующей статье нашего справочника.
По окончании работ по установке Ruby можно переходить к инсталляции непосредственно Jekyll.
Установка Bundler и Jekyll
Для управления зависимостями Ruby в Jekyll используется Bundler. Данный инструмент упрощает установку и управление библиотеками, которые будет использовать ваш проект.
Чтобы проинсталлировать в систему Bundler, запустите командную строку и там выполните команду:
gem install bundler
Затем таким же образом установите Jekyll:
gem install jekyll
Для проверки корректности Jekyll запустите команду вывода его версии:
jekyll -v
В нашем случае мы видим, что в систему был установлен релиз версии 4.3.3.
Теперь с помощью Jekyll можно создать новый сайт. Для этого, находясь в каталоге, в котором будет находиться создаваемый сайт, запустите команду:
jekyll new your-site
В данном случае замените your-site
на название вашего проекта.
При создании сайта может возникнуть ошибка подобная той, что показана на скриншоте ниже. Это будет означать, что для отслеживания изменений в файловой системе Jekyll пытается использовать гем WDM (Windows Directory Monitor) версии, которая является устаревшей или несовместимой с текущей версией Ruby или Jekyll.
Для устранения данной ошибки перейдите в каталог, в котором расположены файлы только что созданного сайта, и там найдите и откройте для редактирования файл Gemfile
. В файле найдите строку, соответствующую гему WDM, и укажите его актуальную версию. Например, в данном случае необходимо изменить версию WDM с 0.1.1
на 0.2.0
.
gem "wdm", "~> 0.2.0", :platforms => [:mingw, :x64_mingw, :mswin]
После чего закройте файл, сохранив внесённые в него изменения. Затем в командной строке перейдите в каталог созданного сайта и установите все зависимости (гемы), указанные в файле Gemfile
для своего Ruby-проекта:
cd your-site
bundle install
И, наконец, запустите локальный сервер при помощи команды:
bundle exec jekyll serve
Данный вывод свидетельствует о том, что локальный сервер Jekyll теперь запущен в режиме разработки с использованием зависимостей, указанных в Gemfile
.
Веб-интерфейс Jekyll использует для доступа TCP-порт 4000. Чтобы получить к нему доступ, откройте на сервере браузер и в строке навигации введите следующий адрес:
http://localhost:4000
Доступ к Jekyll с удалённой рабочей станции
На данном этапе вы можете подключаться к веб-интерфейсу сервера Jekyll только при помощи браузера, запущенного на виртуальной машине, и с использованием её локального адреса, то есть URL-адреса, который используется для обращения к самому серверу.
Для того, чтобы подключиться к серверу Jekyll с вашей локальной рабочей станции, необходимо разрешить доступ к виртуальной машине через TCP-порт 4000. Также нужно будет настроить Jekyll для прослушивания всех сетевых интерфейсов.
Чтобы открыть доступ к серверу через TCP-порт 4000, необходимо создать соответствующее разрешающее правило в брандмауэре Windows. Для этого перейдите к настройкам брандмауэра, используя комбинацию клавиш Win
R
, где введите firewall.cpl
и нажмите ОК
.
В открывшемся окне кликните в Advanced settings
.
Далее перейдите Inbound Rules
➝ New Rule
.
В следующем окне выберите тип правила Port
.
Затем укажите протокол TCP
и номер порта 4000
.
В следующем окне выберите тип правила как разрешающее, т. е. Allow the connection
.
На этом этапе укажите, для каких сетей вы планируете применить создаваемое правило. По умолчанию правило будет действовать на все сети.
Теперь введите название создаваемого правила. В нашем примере это Jekyll
.
После нажатия кнопки Finish
новое правило будет создано.
Наконец, запустите Jekyll таким образом, чтобы он был доступен удалённо по IP-адресу сервера, на котором он установлен.
bundle exec jekyll serve --host X.X.X.X
В данном случае, X.X.X.X — IP-адрес виртуального сервера.
Чтобы открыть веб-интерфейс сервера Jekyll на своём локальном компьютере, введите в навигационной строке браузера http://X.X.X.X:4000
.