Woohoo, this website is finally updated! I will document my Drupal -> static site saga at some point, but first, a brief description of how to host a Hugo static site on Mayfirst.org.
Getting setup with Hugo generally
So, why Hugo? Well, it’s what Mayfirst uses for their own static site content. I just followed the Hugo docs to set it up locally first. This was great. Really easy to follow, ran out of the box easily and I just used the default theme. Then I searched for simple themes, and found some helpful posts. I eventually found one I liked and began adjusting things. Given my really incomplete styling knowledge, I eventually complained on Bluesky and got some extremely patient and kind and amazing help from María A. Matienzo (thanks again, María!!!).
Getting Hugo onto Mayfirst servers
This process was made possible by some more help, this time from the incredibly patient Jaime Villarreal from Mayfirst. (Thank you Jaime for YEARS of patient support!) Since I was trying to migrate content from my current site, I didn’t want to take down my current site while I setup this new site. Jaime helped me setup a staging site, which involved creating a new hosting order to setup a staging site, which created its own new website essentially. I was then able to SFTP files onto this staging site.
Side note: when I was organizing my folders to be ready to be on the Mayfirst servers I changed things slightly and couldn’t get the Hugo server to load anymore, but it was just that, like commenter number 1 here, I was not loading the server in the right place. I did run into a few snags like that where I was just doing something slightly wrong, but from a combination of searching for answers and retrying a bunch, I did figure things out.
But where was I supposed to put the files on the Mayfirst server?
In the Hugo default file structure:
- the
filesdirectory ->site/fileson the Mayfirst server - the contents of
files/public->site/webon the Mayfirst server (note: the contents of the public folder, not the folder itself!)
I also edited the hugo.toml file:
config = “/home/users/[your-mayfirst-user]/site/files”
archetypeDir = “/home/users/[your-mayfirst-user]/site/files/archetypes”
contentDir = “/home/users/[your-mayfirst-user]/site/files/content”
layoutDir = “/home/users/[your-mayfirst-user]/site/files/layouts”
dataDir = “/home/users/[your-mayfirst-user]/site/files/data”
staticDir = “/home/users/[your-mayfirst-user]/site/files/static”
themesDir = “/home/users/[your-mayfirst-user]/site/files/themes”
source = ""
publicDir = “/home/users/[your-mayfirst-user]/site/web/public”
publishDir = “../”
And this got the site up on the staging site! One other tiny thing was that the home button was misbehaving so in my theme I edited it in the sidebar.html layout to hardcode the nav to go to the specific site (staging or live) and not the base URL.
Finishing the migration
I let out an audible cheer when everything was up and working on my staging site. It was so exciting to have it completed, and be able to show it to people and get help on the finer details. The final step in the process was to move my site from the staging site to the “live” site.
Jaime advised the easiest way to do this is through the Mayfirst Control Panel.
- delete your web configuration (and the associated server access account)
- delete the existing databases (don’t need those anymore with a static site!)
- restore your web configuration (it creates a clean folder structure on the Mayfirst servers)
- re-add your server access account
Then, logout and log back in again, and you’ll be able to SFTP the files over following the same process as the staging site. I changed the config to the live site instead of staging. Waited for the upload, and, it worked! Woohoo!
Let me know if you have any questions or if there’s anything I can describe in better detail (please email me till I get comments setup here).
Thanks again to María and Jaime for all the help. Really glad to have my site in a more simplified format. Yay!
Last modified on June 19, 2025