A fully decentralized Hugo blog with custom Webflow-based templates, deployed to Filecoin PDP (Proof of Data Possession) storage. All content is stored on Filecoin with cryptographic proof of persistence and accessible via DNSLink at deblog.filoz.org.
- Primary URL: https://deblog-filoz-org.ipns.dweb.link/
- Alternative: https://dweb.link/ipns/deblog.filoz.org
- Direct CID: Check GitHub Actions summary after each deployment
- Hugo Static Site Generator with custom Webflow-based templates and FilOz branding
- Filecoin PDP Storage - All content pinned with daily cryptographic proofs
- DNSLink - Human-readable domain via deSEC DNS (deblog.filoz.org)
- IPFS Gateway Access - Accessible via multiple IPFS gateways
- Automated Deployment - Push to master triggers full CI/CD pipeline
- Zero CDN Dependencies - Completely decentralized infrastructure
Write Post (Markdown)
↓
Git Push to master branch
↓
GitHub Actions Trigger
↓
Hugo Build (--gc --minify)
↓
Filecoin Pin CLI (Provider ID 2)
↓
Content Pinned to PDP Node
↓
New CID Generated
↓
deSEC API Call
↓
DNSLink TXT Record Updated
↓
Site Accessible:
- deblog.filoz.org (DNSLink)
- Direct CID via IPFS gateways
- Hugo Extended v0.112.4+ (installation guide)
- Git for version control
- Node.js 24+ for Filecoin Pin CLI
- Filecoin Pin CLI (
npm install -g filecoin-pin) - Calibration Testnet Tokens:
- Test FIL from Calibration Faucet
- USDFC stablecoin from dedicated faucet
- Ethereum-style Private Key with test funds
git clone https://github.com/yourusername/filoz-blog.git
cd filoz-blog
git submodule update --init --recursiveLinux:
wget https://github.com/gohugoio/hugo/releases/download/v0.139.3/hugo_extended_0.139.3_Linux-64bit.tar.gz
tar -xzf hugo_extended_0.139.3_Linux-64bit.tar.gz
sudo mv hugo /usr/local/bin/macOS:
brew install hugoWindows: Download from Hugo releases
Verify installation:
hugo versionnpm install -g filecoin-pinhugo server -DOpen http://localhost:1313 in your browser.
hugo new content/posts/my-new-post.mdEdit the post in content/posts/my-new-post.md:
---
title: "My New Post"
date: 2025-11-03T10:00:00Z
draft: false
tags: ["filecoin", "web3"]
---
Your content here...hugo --gc --minifyOutput will be in public/ directory.
- Visit Calibration Faucet
- Get test FIL for your Ethereum address
- Get USDFC stablecoin from dedicated faucet
export PRIVATE_KEY=0x... # Your funded private key
filecoin-pin payments setup --autohugo --gc --minify
filecoin-pin add ./public/You'll receive a CID (Content Identifier). Test access:
https://ipfs.io/ipfs/<CID>
- Go to your GitHub repository
- Settings > Secrets and variables > Actions
- Add these secrets:
- FILECOIN_PRIVATE_KEY: Your Ethereum private key (with test FIL and USDFC)
- DESEC_TOKEN: Your deSEC API token (for DNSLink updates)
git add .
git commit -m "Initial commit"
git branch -M master
git remote add origin https://github.com/yourusername/filoz-blog.git
git push -u origin masterEvery push to master branch automatically:
- Builds Hugo site with minification
- Pins to Filecoin PDP (provider ID 2)
- Generates new CID
- Updates DNSLink TXT record via deSEC
- Creates deployment artifacts
- Comments on commit with all access URLs
Deployment time: 3-5 minutes from push to live
Primary access via DNSLink (automatically updated):
https://deblog-filoz-org.ipns.dweb.link/(recommended - has SSL)https://dweb.link/ipns/deblog.filoz.orghttps://ipfs.io/ipns/deblog.filoz.org
Direct CID access (specific version):
https://ipfs.io/ipfs/<CID>https://dweb.link/ipfs/<CID>https://<CID>.ipfs.dweb.link
Find the latest CID in:
- GitHub Actions run summary
- Commit comments
- Downloaded artifacts (
cid.txtoripfs-uri.txt)
Note: DNSLink propagation takes 2-5 minutes after deployment
filoz-blog/
├── .github/
│ └── workflows/
│ └── deploy.yaml # GitHub Actions workflow
├── archetypes/
│ └── default.md # Post template
├── content/
│ └── posts/ # Blog posts (markdown)
├── static/
│ └── images/ # Images (stored on Filecoin)
├── themes/
├── hugo.yaml # Hugo configuration
└── README.md
Edit hugo.yaml to customize:
- baseURL: Your domain (or leave for IPFS)
- title: Site title
- params.description: Site description
- params.socialIcons: Social media links
- menu: Navigation menu
-
Write post:
hugo new content/posts/my-post.md
-
Add images:
- Place in
static/images/ - Reference as
/images/filename.jpgin markdown
- Place in
-
Preview locally:
hugo server -D
-
Commit and push:
git add . git commit -m "Add new post: My Post" git push
-
Automatic deployment:
- GitHub Actions builds and pins to Filecoin
- New CID generated
- Access via IPFS gateways
- Edit markdown files in
content/posts/ - Commit and push changes
- New CID generated with updated content
- Currently ALPHA software on Calibration testnet
- NOT for production use (as of November 2025)
- Register at filecoin.cloud for mainnet availability
- Each deployment creates a new CID (immutable content addressing)
- DNSLink automatically updates to point to latest CID via deSEC API
- Old CIDs remain accessible via IPFS if still pinned
- DNSLink TXT record:
_dnslink.deblog.filoz.org→dnslink=/ipfs/<latest-CID>
- Content may take 2-5 minutes to appear after DNSLink update
- IPNI (InterPlanetary Network Indexer) advertisement ensures discoverability
- Provider ID 2 has reliable IPNI advertisement success
- Try different gateways if one is slow
# Verify Hugo installation
hugo version
# Check for theme issues
git submodule update --init --recursive
# Clean and rebuild
rm -rf public/ resources/
hugo --gc --minify# Check CLI version
filecoin-pin --version
# Verify private key is set
echo $PRIVATE_KEY
# Check testnet balance
# Visit Calibration explorer with your address
# Reconfigure payments
filecoin-pin payments setup --auto- Check image paths in markdown:
/images/notimages/ - Verify images exist in
static/images/ - Build and check
public/images/directory
MIT License - feel free to use this setup for your own blog.
- Hugo - Static site generator
- Filecoin - Decentralized storage network
- IPFS - InterPlanetary File System
Built with Hugo, stored on Filecoin PDP, accessible via IPFS.