zblev.dev

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.

  1. Download Linux Mint XFCE
  2. Create a Bootable USB
    • Used YUMI to write the .iso to a USB drive.
  3. 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:

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:

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:

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.