Running My Blog With a 2013 Mac Pro
2025-03-04
Why I Did This
I detest e-waste. Every year, perfectly good hardware gets thrown away simply because it's not the latest model.
Instead of letting it collect dust or become scrap, I wanted to give it new life. To make a point I am running this site on old Mac Pro "Trash can" from 2013 as a web server for my personal site.
This project is also part of a broader goal I have this year: changing my relationship with technology. I want to move away from consumption and focus more on creation.
The Original Setup: Linux Mint + Hugo
Installing Linux Mint XFCE
To install Linux Mint XFCE, I first created a bootable USB using YUMI.
- Download Linux Mint XFCE
- Create a Bootable USB
- Used YUMI to write the
.iso
to a USB drive.
- Used YUMI to write the
- Booting and Installing
- Held Option (⌥) key on boot and selected EFI Boot.
- Installed Linux Mint XFCE with full disk wipe.
Fixing the Fan Control Issue
After installation, I noticed the Mac Pro's fan wouldn't ramp up under load, which could lead to overheating. I fixed this with mbpfan:
sudo apt install build-essential libsensors4-dev git git clone https://github.com/linux-on-mac/mbpfan.git cd mbpfan make sudo make install sudo systemctl enable mbpfan sudo systemctl start mbpfan
I tested it with stress tests and verified that the fan adjusted correctly: stress-ng --cpu 4 --timeout 300s sensors
Setting Up a Hugo-Powered Web Server
With the OS working, I initially installed Hugo, a fast static site generator: sudo apt update && sudo apt install hugo -y
Then, I created a new Hugo site: cd /var/www/ sudo hugo new site zblev.dev cd zblev.dev
Added a theme called PaperMod: git clone https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod
Edited config.toml
:
theme = "PaperMod"
Migrating to Zola
After encountering some issues with Hugo's layout templates, I decided to switch to Zola, a simpler static site generator written in Rust.
Why Zola?
Zola offers several advantages:
- Single binary with no dependencies
- Fast build times
- Simple and clear template system
- Built-in support for Sass, syntax highlighting, and search
Installing Zola
Installing Zola was straightforward:
curl -sL https://github.com/getzola/zola/releases/download/v0.17.2/zola-v0.17.2-x86_64-unknown-linux-gnu.tar.gz | sudo tar xzf - -C /usr/local/bin
Creating a New Zola Site
I initialized a new Zola site:
cd ~ zola init zola-site
During setup, I configured:
- Site URL: https://zblev.dev
- Sass compilation: enabled
- Syntax highlighting: enabled
- Search index: enabled
Setting Up Templates
I created a basic template structure:
mkdir -p templates
For the base template (templates/index.html), I created a simple HTML structure with:
- A header with the site title and navigation
- A main content area that changes for each page type
- A footer with copyright information and attribution to Zola
I also created templates for sections (templates/section.html) and pages (templates/page.html) to handle lists of posts and individual post pages.
Migrating Content
I created a content structure:
mkdir -p content/posts
Added a section index for posts:
echo '+++ title = "Posts" sort_by = "date" template = "section.html" page_template = "page.html" +++' > content/posts/_index.md
And migrated my existing content, changing the frontmatter format from YAML to TOML.
Adding Basic Styling
I created a simple CSS file:
mkdir -p static
With some basic styling to make the site clean and readable.
Deployment
I created a deployment script for easy updates:
#!/bin/bash cd ~/zola-site zola build sudo cp -r public/* /var/www/html/ sudo systemctl restart nginx echo "Deployment complete!"
Made it executable:
chmod +x ~/deploy-zola.sh
Now I can update my site by simply running ~/deploy-zola.sh
.
Making It Accessible via Cloudflare Tunnel
My existing Cloudflare Tunnel setup continued to work without any modifications since it was already pointing to my Nginx server, which still serves content from the same location (/var/www/html/
).
Conclusion
Migrating from Hugo to Zola was relatively straightforward and resulted in a simpler, more maintainable setup. Zola's single binary approach and clear template system makes it easier to understand and customize.
My 2013 Mac Pro continues to demonstrate that older hardware can still serve useful purposes when given the right software. Instead of becoming e-waste, it's now a reliable web server running a modern, fast static site generator.
My next goal is to explore solar powering this setup.