If you want to generate static websites (like this blog) then Hugo is the package for you. There are several cool things about Hugo, the biggest being performance. It compiles static sites faster than any other static site generator I’ve used.
In the last tutorial, I showed how to set it up and deploy to a small Linux server, and in this article I’ll show you how to set it up for personal development in Pop!_OS. You can generate pages and push them to any static host.
Install Golang
The first thing you’ll need to do, if you haven’t already is install Golang
1
| |
but you’ll be a few versions behind. I like to have the freshest version of the language, so I just Download Golang and grab the latest archive for Linux. It’s a binary format so you don’t even have to build it.
Extract it with this command:
1
| |
Then add the path to go in your profile:
1 2 3 | |
Type in “go version” to verify:

Install Hugo
Now you’ll need to install Hugo itself. There are a few ways to do it, including using apt, but again I like to have the latest version:
1 2 3 4 5 | |
This will install the latest version of Hugo to your machine. Now you’ll need to add another folder to the path so you can run hugo:
In ~/.profile:
1
| |
Now you need to test out hugo:
1
| |
It should look something like this:

Create a New Hugo Site
Now you’ll need to create a new Hugo site:
1
| |
Now you’re going to need a theme:
You can find a good list of Hugo themes here.
Once you find one you like, copy the link the repo. I choose “Hyde” for this example:
1 2 | |
Now create a new post:
1
| |
Your post will look like this:
1 2 3 4 5 6 7 | |
Add some content, and make sure to change “draft” to true.
To test it out:
1
| |

And you’re ready to view your blog on localhost:1313:

All files are generated in /public so when you’re ready to publish run:
1
| |
And then all the files in /public will be your new site.

Enjoy your new blog!
If you have any questions or comments feel free to contact me. Let me know what cool sites you’ve built with Hugo!
