66 lines
1.8 KiB
Markdown
66 lines
1.8 KiB
Markdown
+++
|
||
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 wasn’t 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, it’s probably a reverse proxy or Docker networking issue
|
||
- Don’t 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
|