rockcampbell.com/content/posts/self-hosting-hugo.md

66 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

+++
date = '2025-07-26T22:00:18Z'
draft = false
title = 'Self Hosting Hugo'
+++
## Why I Decided to Self-Host
I've been working on rockcampbell.com, and decided I wanted full control. That meant running Hugo on my own home server, behind Nginx Proxy Manager, using Docker — and pointing my domain directly to it.
What followed was a surprisingly long series of gotchas...
---
## Building the Hugo Site
- Used the PaperMod theme
- Installed Hugo Extended manually (because the Arch repo version was too old)
- Created my first post (and later deleted it)
---
## Docker Setup
- Used `nginx:alpine` to serve the public folder
- Mounted the `public/` folder using Docker Compose
- Exposed it to Nginx Proxy Manager via the shared `web` network
---
## Nginx Proxy Manager
- Configured the domain `rockcampbell.com`
- Issued SSL certificate via Let's Encrypt
- Initial requests worked, but subpages failed over HTTPS
**Fix:** The issue was a misconfigured `baseURL` in `hugo.toml`, and SSL wasnt working until I reissued the cert.
---
## DNS Issues
I forgot to update the A record from GitHub Pages to my home IP, which caused Let's Encrypt cert issuance to fail.
---
## Hugo Errors
- `Error: no existing content directory configured for this project`
Fixed by adding `contentDir = "content"` to `hugo.toml`.
---
## Lessons Learned
- Always double-check DNS before attempting SSL
- If you get a 502 Bad Gateway from OpenResty, its probably a reverse proxy or Docker networking issue
- Dont trust the default `hugo new` behavior with new module-based sites — clarify your config
---
## Final Setup
- Hugo serves from `/public`
- Docker container running on `web` network
- Nginx Proxy Manager handles SSL + reverse proxy
- rockcampbell.com is live and running from my home server