Гид по технологиям

Установка Jekyll на Ubuntu 20.04

• 5 min read • DevOps • Обновлено 23 Nov 2025
Установка Jekyll на Ubuntu 20.04
Установка Jekyll на Ubuntu 20.04

Что такое Jekyll

Jekyll — это бесплатный open-source генератор статических сайтов, написанный на Ruby. Он преобразует Markdown и шаблоны в готовый набор HTML/CSS/JS-файлов, которые можно разместить на любом веб-сервере. Ключевые понятия:

  • Jekyll: генератор статических сайтов.
  • Gem: пакет Ruby, менеджер пакетов — gem.
  • Bundler: инструмент управления зависимостями Ruby-проекта.

Необходимые условия

  • Сервер с Ubuntu 20.04 (root-доступ или sudo).
  • Настроенный root-пароль или пользователь с sudo.
  • Доступ в Интернет для установки пакетов.

Подготовка системы

Обновите пакеты и установите базовые зависимости:

apt-get update -y
apt-get upgrade -y

Установите инструменты сборки и утилиты:

apt-get install make build-essential curl git tree -y

Примечание: если вы не работаете от root, добавьте sudo перед командами выше.

Установка Ruby

Jekyll написан на Ruby, поэтому потребуется Ruby и заголовочные файлы для сборки gem-пакетов:

apt-get install ruby ruby-dev -y

Настройте локальную папку для gem-пакетов, чтобы не требовалось sudo при установке gem:

Откройте файл ~/.bashrc:

nano ~/.bashrc

Добавьте в конец файла:

export GEM_HOME=$HOME/gems
export PATH=$HOME/gems/bin:$PATH

Сохраните, закройте и примените изменения:

source ~/.bashrc

Установите Jekyll и Bundler:

gem install jekyll bundler

После установки вы готовы создать сайт.

Создание нового сайта Jekyll

Создайте новый сайт с именем каталога jekyll.example.com:

jekyll new jekyll.example.com

Ожидаемый ответ:

New jekyll site installed in /root/jekyll.example.com.

Просмотрите структуру проекта:

tree jekyll.example.com

Пример вывода:

jekyll.example.com
??? 404.html
??? about.markdown
??? _config.yml
??? Gemfile
??? Gemfile.lock
??? index.markdown
??? _posts
    ??? 2020-06-14-welcome-to-jekyll.markdown

1 directory, 7 files

Запуск сервера Jekyll

Перейдите в каталог сайта и запустите встроенный сервер Jekyll, который по умолчанию слушает порт 4000:

cd jekyll.example.com
jekyll serve --host=0.0.0.0

Пример вывода при успешном старте:

Configuration file: /root/jekyll.example.com/_config.yml
            Source: /root/jekyll.example.com
       Destination: /root/jekyll.example.com/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
       Jekyll Feed: Generating feed for posts
                    done in 0.502 seconds.
 Auto-regeneration: enabled for '/root/jekyll.example.com'
    Server address: http://0.0.0.0:4000/
  Server running... press ctrl-c to stop.

Доступ к сайту

Откройте в браузере http://your-server-ip:4000 (замените your-server-ip на IP вашего сервера). По умолчанию вы увидите стартовую страницу Jekyll:

Страница Jekyll по умолчанию в браузере

Что дальше — изменения и развертывание

  • Редактируйте файлы в каталоге jekyll.example.com.
  • Сборка выходит в каталог _site; этот набор файлов готов к развертыванию на Nginx, Apache или CDN.
  • Для деплоя на GitHub Pages и другие хостинги читайте разделы ниже.

Альтернативные подходы

  1. rbenv / rvm: используйте версии Ruby в пользовательском пространстве, если нужно управлять несколькими версиями Ruby.
  2. Docker: запустите Jekyll в контейнере, чтобы не менять системную установку Ruby. Пример команды:
docker run --rm --volume="$PWD:/srv/jekyll" -p 4000:4000 jekyll/jekyll jekyll serve --watch --host=0.0.0.0
  1. GitHub Pages: публикуйте сайт напрямую из репозитория; GitHub автоматически собирает Jekyll-сайт (ограничения по плагинам возможны).

Когда эти подходы применимы: Docker хорош для CI/CD и локальной изоляции; rbenv — для разработки с разными версиями Ruby; GitHub Pages — для простого хостинга без своего сервера.

Ментальные модели и лучшие практики

  • Разделяйте контент и оформление: контент хранится в Markdown, шаблоны — в _layouts и _includes.
  • Превращайте сайт в статичную сборку: все динамические функции (формы, комментарии) делегируйте внешним сервисам.
  • Используйте Bundler (Gemfile) для фиксирования зависимостей и повторяемости сборок.

Факт-бокс — ключевые параметры

  • Порт разработки: 4000
  • Каталог сборки: _site
  • Управление зависимостями: Bundler (Gemfile)
  • Типичный рабочий поток: edit → jekyll build/serve → deploy

Контрольные списки по ролям

Разработчик:

  • Собрать сайт локально через jekyll build
  • Прогнать сборку без ошибок
  • Написать тестовую страницу и проверить рендеринг

DevOps:

  • Настроить систему сборки (CI) для выполнения jekyll build
  • Настроить Nginx/Apache как reverse proxy на порт 4000 или развернуть контент из _site
  • Обновить SSL через Let’s Encrypt

Контент-редактор:

  • Проверить заголовки и метаданные front-matter
  • Убедиться, что изображения и пути корректны

Критерии приёмки

  • Сайт успешно собирается без ошибок (jekyll build).
  • Главная страница доступна по HTTP на ожидаемом хосте/порте.
  • Страницы и посты отображаются корректно (верстка и ссылки).

Отладка — типовые проблемы и решения

  1. Ошибки gem при установке: проверьте наличие ruby-dev и build-essential.
  2. Проблемы с путями gem: убедитесь, что GEM_HOME и PATH добавлены и применены (source ~/.bashrc).
  3. Порт занят: используйте –port=<порта> или проверьте процессы, слушающие порт 4000.
  4. Плагины не работают на GitHub Pages: используйте GitHub Actions для кастомной сборки.

Безопасность и приватность

  • Jekyll генерирует статические файлы, это снижает риск серверных уязвимостей.
  • Для публичного сайта обязательно настройте HTTPS (Let’s Encrypt).
  • Если сайт собирает персональные данные (формы), используйте сторонние провайдеры, храните минимум данных и соблюдайте требования GDPR.

Тесты и приёмочные критерии

  • Сайт собирается командой jekyll build без ошибок.
  • В каталоге _site присутствуют ожидаемые HTML-файлы.
  • HTTP-запрос к корню возвращает 200 и корректный HTML.

Шаблон плейбука для развертывания (SOP)

  1. Локально: bundle install → jekyll build.
  2. CI: запуск jekyll build, артефакт — содержимое _site.
  3. Деплой: копирование _site на production-сервер в корень веб-сервера или публикация в объектное хранилище/CDN.
  4. Проверка: URL ответа 200, сканирование основных страниц.

Короткое объявление (пример для рассылки, 100–200 слов)

Установите Jekyll на Ubuntu 20.04 и создайте легкий и быстрый статический сайт за считанные минуты. В этом руководстве описаны необходимые шаги: обновление системы, установка Ruby, настройка локальной установки gem-пакетов, установка Jekyll и Bundler, создание проекта и запуск встроенного сервера. Также вы найдёте альтернативы (Docker, rbenv, GitHub Pages), чек-листы для разработчиков и DevOps, рекомендации по безопасности и отладке. Руководство подходит для новичков и команд, которые хотят быстрый старт без базы данных и сложной серверной логики. Следуя инструкции, вы получите повторяемый процесс сборки и готовый к развертыванию статический сайт.

Итог

Вы научились устанавливать Jekyll на Ubuntu 20.04, запускать локальный сервер и подготовить сайт для деплоя. Для production-использования рекомендуем автоматизировать сборку через CI, проксировать трафик через Nginx и обязательно настроить HTTPS.

Важно: если вы используете нестандартные плагины или специфические зависимости — выбирайте изоляцию через Docker или управляемые версии Ruby (rbenv/rvm).

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро