Jekyll is Ruby based, free and easy to use site generator, designed for creating static blogs, but it can be also used for creating all types of static websites as well, without using a database. Jekyll works by processing plain text files in Markdown and Textfile or Liquid templates and generating static website. This kind of websites have many advantages over the dynamic sites, such as security, speed and flexibility. Websites generated with Jekyll can be hosted on any type of web server or GitHub. In this tutorial we will cover the installation of Jekyll on a CentOS 7 VPS.
Jekyll has several requirements which we have to install on the server, in order to run it:
– SSH access to the VPS with root privileges. All our VPS hosting plans come with full root access
– Ruby version 2.2.5 or newer, including all development headers
– RubyGems package manager
– GCC and Make compilers
2. Login via SSH and update the system
To begin, login to your CentOS 7 VPS via SSH as user root
ssh root@IP_Address -p Port_number
As usual, make sure that all packages installed on your server are updated to the latest available version
yum -y update
This process is better explained in one of our previous blog posts.
3. Install Ruby
Jekyll is based on Ruby, so we have to have it installed on the server. It is available in the official CentOS 7 repositories, so we can simply install it running the following command
yum install ruby
Once it is installed, check Ruby’s version
ruby -v ruby 2.0.0p648 (2015-12-16) [x86_64-linux]
It will also install RubyGems which is also required by Jekyll
gem -v 2.6.14
As you may noticed, this is not the latest version of Ruby. If you need a more recent version of Ruby you can install it using Ruby Version Manager (RVM). It also allows you to install multiple version of Ruby on the server which is very useful if your application is built and depends on a specific Ruby version. To install RVM on your server, first import its key using the following command
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
and run the following command to install it
\curl -sSL https://get.rvm.io | bash -s stable
To start using RVM you need to run the following
Now, you can go ahead and install Ruby
rvm install ruby
And if you check you will see that a newer version of Ruby installed on your server
ruby -v ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
4. Install Jekyll on CentOS 7
After we make sure that all requirements are installed, we can proceed with the Jekyll installation. It can be installed using the RubyGems package manager we mentioned earlier in this post. Run the following command
gem install jekyll
To verify the installation you can check Jekyll’s version
jekyll -v jekyll 3.8.0
This means that Jekyll version 3.8.0 is successfully installed and ready to use on your CentOS 7 VPS.
We also need to install Bundler on the server. It is a package manager that manage gems and it will help us to install all Jekyll dependencies
gem install bundler
5. Create Jekyll blog
If you closely followed the tutorial, your server is ready for creating your first Jekyll project. We will create a simple static blog to test the installation. Run the following command
cd /opt/ jekyll new blog New jekyll site installed in /opt/blog
This will create a new ‘blog’ directory. To list all available options you can use when creating the blog, you can use the following command
jekyll new --h Options: --force Force creation even if PATH already exists --blank Creates scaffolding but with empty files --skip-bundle Skip 'bundle install' -h, --help Show this message -v, --version Print the name and version -t, --trace Show the full backtrace when an error occurs -s, --source [DIR] Source directory (defaults to ./) -d, --destination [DIR] Destination directory (defaults to ./_site) --safe Safe mode (defaults to false) -p, --plugins PLUGINS_DIR1[,PLUGINS_DIR2[,...]] Plugins directory (defaults to ./_plugins) --layouts DIR Layouts directory (defaults to ./_layouts) --profile Generate a Liquid rendering profile -h, --help Show this message -v, --version Print the name and version -t, --trace Show the full backtrace when an error occurs
Now, change the current working directory
and run the following command to build the site on the preview server
bundle exec jekyll serve Configuration file: /opt/blog/_config.yml Source: /opt/blog/ Destination: /opt/blog/_site Incremental build: disabled. Enable with --incremental Generating... done in 0.342 seconds. Auto-regeneration: enabled for '/opt/blog' Server address: http://127.0.0.1:4000/ Server running... press ctrl-c to stop.
The new Jekyll blog will be created and it accessible at http://127.0.0.1:4000 . You will be able to access it only from the localhost. If you want to make it publicly available, use the following command
jekyll serve --host IP_Address &
replace IP_Address with your server’s IP address and you will be able to access your first Jekyll blog with your favorite web browser at http://IP_Address:40000 . You should get the default Jekyll home page.
If you need more information and want to learn how to use this amazing static site builder, visit Jekyll’s official documentation.
PS. If you liked this post, on how to install Jekyll on CentOS 7, please share it with your friends on the social networks using the buttons on the left or simply leave a reply below. Thanks.