Build and Deploy your Hugo Pages on Azure in 2020

0x00 Description

Some time ago, I found Jendrik Illner’s personal website. In addition to the great articles there, the theme of the website attracted my attention. And I found that the website is powered by the Academic theme for Hugo. Then I think it’s time to build a great looking personal website for myself now. I am a newcomer to Azure, so this article is only a record of the process of building my personal website on azure and the issues I encountered. I hope to help people with the same needs.

0x01 Get Hugo and the Academic theme to local

Before we can host static pages on the cloud, it’s better to run them locally. First, let’s get hugo to local. I use macOS to run hugo. So using homebrew to install hugo would be very convenient.

brew install hugo

Once hugo installation is complete, you can use the hugo command in the terminal. For example, you can use hugo version to print out the version of hugo installed.

And it’s very simple to create a hugo site, just execute the hugo new site command.

hugo new site hugoInit

A folder named hugoInit will be created and contain site files.

site folder

Then we can come to the new folder just created and add a new page to this site and run it locally. But before adding a page we can download a hugo theme.

git init
git submodule add https://github.com/budparr/gohugo-theme-ananke.git themes/ananke
echo 'theme = "ananke"' >> config.toml

Now let’s try to run the site locally.

hugo serve

And we get an ananke theme site available at http://localhost:1313/.

init

As for adding a new page to our site, just execute the following command.

hugo new posts/page.md

By default, the hugo serve command will run your site without those draft posts. If you want to show them on your site, just pass the -D parameter to the command.

You can find more information at the Hugo Homepage.

Next we’ll introduce the Academic theme. To be honest, I think this theme is what I’m looking for. Modular architecture, easy to combine various widgets, friendly support for markdown, and its theme is brief.

Its code is hosted on github, so we need to download the project from github:

git clone https://github.com/sourcethemes/academic-kickstart.git My_Website

Then initialize the theme:

cd My_Website
git submodule update --init --recursive

After initializing the theme project, we get the Academic theme to local. Because i t’s a theme for Hugo, so we can run it as above.

hugo serve

And we get the Academic theme site available at http://localhost:1313/.

Academic

Now, let’s modify the project to build our own site. Open this project with VS Code, and there are two folders worth our attention. They are the config folder and the content folder.

vs code

In the config folder, you can find the config.toml file which is the configuration of Academic and is formatted using TOML syntax. For example, you can modify the title of your site from the default value Academic to whatever you like. Another useful file is the params.toml file. You can choose a theme, choose a font size and whether to enable users to switch between day and night mode, etc.

As for the content folder, as its name suggests, this folder holds the contents of your website. For example, you can modify the _index.md file in the author folder to show your information. You can add/remove widgets of your web site by modifying files in the home folder. If you don’t want the projects widget be shown, you can change the active value in the projects.md file to false. And you can find the post folder, yes, all your posts are in this folder.

0x02 Deploy your Hugo Pages to Azure

After modifying the content of your web site, it’s time to show the web site to real world.
I deploy my website to Azure from VS Code. But first you need an Azure subscription and the VS Code of course. Then we need to install the azure storage extension, you can find it in the VS Code Extension marketplace.

Azure Subscription
Once the azure storage extension is installed, you can sign in to Azure from VS Code and find your subscription under the STORAGE item.

Now we need to create a storage account to host our web site. You just right-click on your subscription and choose Create Storage Account. Once the Storage account is complete, right-click that account and select Configure Static Website.

After creating the azure storage account, we need to deploy the web site files to the storage account. Select the Files explorer in VS Code, and you will find a folder called public which is the real web site files generated from the project. Then right-click on the folder and select Deploy to Static Website.

Deploy to azure

After uploading your web site to azure, you can open it in a browser.

0x03 Summary

This article briefly records the process of building a website and hosting it on Azure. And this article is my first post in 2020, Happy New Year!


Subscribe To Jiadong Chen's Blog

Avatar
Jiadong Chen
Cloud Architect/Senior Developer

Cloud Architect at Company-X | Microsoft MVP, MCT | Azure Certified Solutions Architect & Cybersecurity Architect Expert | Member of .NET Foundation | Packt Author ㅣ Opinions = my own.

comments powered by Disqus