This is a first post of the blog I am starting.

I decided to start my own blog where I will share some of my thoughts on privacy, cybersecurity, linux, programming, ethical hacking, cloud computing, you name it. I will post on a random basis share some of the challenges I’ve encountered and (hopefully) useful instructions on how to overcome them.

Choosing a static website engine for my blog

The first and the hardest choice on staring the blog was to chose the blogging engine. I dropped an option to use Wordpress due to the fact it is quite heavy for the purpose of writing a light-weight personal blog.

I also considered coding my own solution with Python Flask web framework (thanks to Tero Karvinen and his flask programming course), but considered that to be quite time consuming as well. After some time of googling and browsing through numerous reddit posts, I found Hugo, a static site generator written on Go.

Hugo allows you to write most of your content in Markdown. You can google the syntax of Markdown. Github has good documentation on basic formatting and syntax. The engine will generate static HTML pages that you could upload basically to any hosting service that your wish.

Installing Hugo

Installation on my Ubuntu 22.04 Linux was pretty straightforward. All you need to do is run:

sudo apt-get install hugo

After Hugo is installed, you will need to enable your site. Navigate to your home directory and run:

hugo new site NameOfYourBlog

Change “NameOfYourBlog” with the desired site name.

The command above will create NameOfYourBlog directory.

Hugo supports various themes that you can download from https://themes.gohugo.io/, alternatively you can also use git submodule by navigating to themes folder and typing:

git init && git clone https://github.com/path-to-theme/theme.git name-of-theme

You obviously need to have git installed.

Adding some content

You can write your content in Markdown and store it in content/posts directory. When you are ready, run the hugo command to create new posts as follows:

hugo new posts/my-first-post.md

You can find a newly created file in the content/posts directory called my-first-post.md. Use your favourite text editor to edit the contents.

Start the local web server

From the terminal window run the following command:

hugo server -D -F

Now you can browse your blog on http://localhost:1313

I will cover on how to deploy Hugo in production using self hosted Apache2 web server in my next posts.