Set up Hyde on CentOS 7

Updated on November 22, 2016
Set up Hyde on CentOS 7 header image

Hyde is a static website generator, much like its alternatives, such as Jekyll. It uses Markdown to generate its pages, and can run on a 768MB Vultr instance for a site with moderate traffic.

If this is something you'd like to install, please continue to the first step.

#Step 1: Installing the dependencies

The commands in this article require root access. If you aren't already logged on as the root user, do so now.

CentOS 7 ships with Python, so we don't need to worry about that for now. However, it does not give us access to the Pip package manager, so we'll install that now.

Pip is not included in the default yum repositories, so let's get the required sources:

yum install epel-release -y

Then, let's download and install Pip.

yum install python-pip -y

Good job! Now, let's install Nginx to proxy requests to Hyde.

yum install nginx -y

We'll return to Nginx later, when we're ready to configure it.

#Step 2: Installing and configuring Hyde

Run the following command to install Hyde. It will also install any Python dependencies of Hyde.

pip install hyde

Now, let's get things ready for our new website.

mkdir -p /var/www/html
cd /var/www/html

This will generate our first site:

hyde -s /var/www/html create
hyde gen

Let's give Nginx ownership of the files within the /var/www/html directory:

chown nginx:nginx /var/www/html

#Step 3: Configuring Nginx

Now that we've finished installing Hyde, we can return to Nginx and finish configuring it.

Open up your favourite text editor to /etc/nginx/nginx.conf. Comment out lines 38-57 by adding a pound symbol (#) before the lines. Save it, then open up your text editor to /etc/nginx/conf.d/hyde.conf and paste the following configuration:

server {

        listen 80 default_server;

        root /home/hydeblog/website/deploy;
        index index.html index.htm;

        # Specify your domain name where the underscore is. If you don't want to associate one right now, you can leave the underscore.
        server_name _;

This should do it. Now, let's have Nginx start on it's own:

systemctl enable nginx

Finally, restart Nginx:

systemctl restart nginx

#Managing webpages

Head over to the /var/www/html/content directory whenever you want to add/remove/edit pages. Every time you manipulate pages, make sure you run hyde gen from this folder to refresh the cache.

An excellent example of Markdown syntax can be found on GitHub.

For this article, here is an example:

Hello, world!
##Sample list:
1. Apples
2. Oranges

[Back to top](#)

This is what it'll look like once converted:

Hello, world

Sample list:

  1. Apples
  2. Oranges

Back to top

Remember to save any created web pages as filename.yaml. It is important that the extension is .yaml so that Hyde will convert it into HTML when you refresh the cache.


In conclusion, you learned how to set up your own Hyde blog. When using Hyde, you will find that Hyde uses minimal resources and is a very extendible platform.