Setup Guide#
This guide will help you complete the setup of your Hugo + Blowfish site.
Initial Configuration#
1. Update Site Information#
Edit config/_default/hugo.toml
:
baseURL = "https://yourusername.github.io/" # or your custom domain
title = "Your Site Title"
2. Configure Author Information#
Edit config/_default/params.toml
and add your author details:
[author]
name = "Your Name"
image = "/img/profile.jpg" # Place your profile image in static/img/
headline = "Your Headline"
bio = "A brief bio about yourself"
links = [
{ email = "mailto:your-email@example.com" },
{ github = "https://github.com/yourusername" },
{ linkedin = "https://www.linkedin.com/in/yourprofile" },
{ twitter = "https://twitter.com/yourusername" },
]
3. Update Contact Page#
Edit both:
content/contact/index.md
content/contact/index.ja.md
Replace placeholder email and social links with your actual information.
GitHub Pages Deployment#
1. Create GitHub Repository#
git init
git add .
git commit -m "Initial commit: Hugo site with Blowfish theme"
git branch -M main
git remote add origin https://github.com/yourusername/yourusername.github.io.git
git push -u origin main
2. Enable GitHub Pages#
- Go to your repository on GitHub
- Navigate to Settings → Pages
- Under Source, select GitHub Actions
- The site will automatically build and deploy
3. Wait for Deployment#
- Go to the Actions tab to monitor the deployment
- First deployment typically takes 2-3 minutes
- Once complete, your site will be live at
https://yourusername.github.io/
Comments Setup (Giscus)#
1. Enable GitHub Discussions#
- Go to your repository Settings
- Scroll to Features section
- Check Discussions
2. Install Giscus#
- Visit https://giscus.app/
- Enter your repository:
yourusername/yourusername.github.io
- Choose:
- Page ↔️ Discussions Mapping: “pathname”
- Discussion Category: “Announcements” or create a custom category
- Features: Enable reactions and metadata as desired
- Copy the generated configuration values
3. Update Comments Partial#
Edit layouts/partials/comments.html
and replace the placeholder values:
<script src="https://giscus.app/client.js"
data-repo="yourusername/yourusername.github.io"
data-repo-id="YOUR_REPO_ID"
data-category="Announcements"
data-category-id="YOUR_CATEGORY_ID"
...
</script>
4. Enable Comments#
Add showComments: true
to any blog post front matter where you want comments enabled.
Analytics Setup (Optional)#
Option 1: Umami (Recommended - Privacy-focused)#
- Sign up at https://umami.is/ or self-host
- Create a website in Umami dashboard
- Copy your Website ID
- Edit
config/_default/params.toml
:
[umami]
site = "YOUR_WEBSITE_ID"
domain = "yourdomain.com" # or yourusername.github.io
Option 2: Fathom Analytics#
- Sign up at https://usefathom.com/
- Add your site and get Site ID
- Edit
config/_default/params.toml
:
[fathom]
site = "YOUR_SITE_ID"
domain = "yourdomain.com" # optional
Option 3: Google Analytics#
Edit config/_default/hugo.toml
:
[services]
[services.googleAnalytics]
ID = "G-XXXXXXXXXX"
External Image Hosting (For Gallery)#
Option 1: Cloudflare R2 (Recommended - Cost Effective)#
- Sign up for Cloudflare
- Go to R2 Object Storage
- Create a bucket for your images
- Enable public access
- Get the public URL
Option 2: ImageKit#
- Sign up at https://imagekit.io/
- Upload images via dashboard
- Get the URL endpoint
- Free tier: 20GB bandwidth/month
Option 3: Cloudinary#
- Sign up at https://cloudinary.com/
- Upload images
- Get the delivery URL
- Free tier: 25 credits/month
Usage in Content#
Use the custom shortcode:
Optional caption
Custom Domain (Optional)#
1. Add CNAME File#
Create static/CNAME
with your domain:
yourdomain.com
2. Configure DNS#
Add a CNAME record with your DNS provider:
Type: CNAME
Name: www (or @)
Value: yourusername.github.io
For apex domain (@), use A records:
Type: A
Name: @
Value: 185.199.108.153
Value: 185.199.109.153
Value: 185.199.110.153
Value: 185.199.111.153
3. Update baseURL#
Edit config/_default/hugo.toml
:
baseURL = "https://yourdomain.com/"
4. Enable HTTPS#
- Wait for DNS propagation (up to 24 hours)
- Go to GitHub repository Settings → Pages
- Check Enforce HTTPS
Content Customization#
Profile Image#
Place your profile image at:
static/img/profile.jpg
Update reference in config/_default/params.toml
:
[homepage]
homepageImage = "/img/profile.jpg"
Favicon#
Replace the default favicons in static/
with your own:
favicon.ico
favicon-16x16.png
favicon-32x32.png
apple-touch-icon.png
android-chrome-192x192.png
android-chrome-512x512.png
Generate favicons at: https://realfavicongenerator.net/
About Page#
Edit:
content/about/index.md
(English)content/about/index.ja.md
(Japanese)
Add your background, experience, and interests.
Updating Content#
Creating New Posts#
# English
hugo new content/blog/my-new-post.md
# Japanese
hugo new content/blog/my-new-post.ja.md
Front Matter Template#
---
title: "Post Title"
date: 2025-10-15
draft: false
description: "Brief description"
tags: ["tag1", "tag2"]
categories: ["Category"]
showComments: true # Enable comments
---
Your content here...
Theme Updates#
Keep your theme up to date:
hugo mod get -u github.com/nunocoracao/blowfish/v2
hugo mod tidy
Testing Locally#
# Start development server
hugo server -D
# Build for production
hugo --gc --minify
# Check for broken links
hugo --minify --gc --cleanDestinationDir
Troubleshooting#
Build Fails#
- Check Hugo version:
hugo version
(needs Extended version) - Verify Go is installed:
go version
- Clear module cache:
hugo mod clean
Images Not Showing#
- Ensure images are in
static/
directory - Check file paths (case-sensitive)
- Verify external URLs are accessible
Comments Not Working#
- Verify Giscus configuration values
- Check that GitHub Discussions is enabled
- Ensure repository is public
- Verify
showComments: true
in front matter
Search Not Working#
- Ensure
enableSearch = true
inparams.toml
- Check that JSON output is enabled in
hugo.toml
- Clear browser cache
Next Steps#
- ✅ Complete initial configuration above
- ✅ Push to GitHub and verify deployment
- ✅ Set up comments (Giscus)
- ✅ Configure analytics (optional)
- ✅ Set up external image hosting for gallery
- ✅ Customize About and Contact pages
- ✅ Add your first real blog post
- ✅ Share your site!