- JavaScript 37.3%
- SCSS 37%
- HTML 25.7%
| archetypes | ||
| content | ||
| scripts | ||
| static | ||
| themes/bitcoinonly | ||
| .editorconfig | ||
| .gitignore | ||
| .hugo_build.lock | ||
| hugo.toml | ||
| LICENSE | ||
| README.md | ||
Bitcoin Only (Hugo)
Static site for btc.rottenwheel.com: a directory of Bitcoin only resources (wallets, meetups, books, tools, etc.).
This repository is the Hugo version of the site (previously Nuxt/Vue). Hugo generates static HTML: no Node needed in production. Upstream repository.
What's included
| Part | Description |
|---|---|
| Content | Markdown pages under content/ (one per menu section) |
| Theme | themes/bitcoinonly/ — layouts, CSS (SCSS) and shortcodes |
| Assets | Logo, icons, images in static/ |
| Config | hugo.toml — title, baseURL, sidebar menu |
Running hugo builds the compiled site into public/ (HTML + CSS + static files ready to serve).
Requirements
- Hugo extended (the extended variant is needed for SCSS)
- Git
Check the version:
hugo version
# Should say "extended", e.g.: hugo v0.147.x+extended
Repo structure
bitcoin-only-hugo/
├── content/ # Pages (Markdown)
│ ├── _index.md # Home
│ ├── wallets.md
│ ├── meetups.md
│ └── ...
├── themes/bitcoinonly/
│ ├── assets/css/ # Site SCSS (layout, home, nav, pages)
│ └── layouts/
│ ├── _default/ # baseof, home, single
│ ├── partials/ # head, side-nav, mobile nav, etc.
│ └── shortcodes/ # table, getting-started
├── static/ # Public files as-is (logo, icons/, images)
├── hugo.toml # Site configuration + menu
├── archetypes/ # Template for `hugo new`
└── scripts/ # Helper scripts (migration); not needed for deployment
How content is organized
- Each file in
content/*.mdis a route:content/books.md→/books/ - YAML front matter:
title,description - Resource tables:
tableshortcode (columns with|) - "Getting Started" boxes:
getting-startedshortcode - The sidebar menu is defined in
hugo.toml(params.navigationLinks)
Theme (layouts)
baseof.html— shell (sidebar + content)home.html— category grid on the home pagesingle.html— the rest of the pages- Shortcodes in
layouts/shortcodes/generate table markup compatible with the CSS
Local development
git clone https://github.com/rottenwheel/bitcoin-only-hugo.git
cd bitcoin-only-hugo
# Server with hot reload (default http://localhost:1313)
hugo server
Production build (output in public/):
hugo --minify
Before deploying, set your real domain in hugo.toml:
baseURL = 'https://yourdomain.com/'
Deploying on a VPS
The result is static files only. Any web server (Nginx, Caddy, Apache) can serve public/.
1. On the VPS: install Hugo extended + Nginx
Example on Debian/Ubuntu:
sudo apt update
sudo apt install -y nginx git
# Hugo extended (adjust the version if you like)
HUGO_VERSION=0.147.8
curl -sL "https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.tar.gz" \
| sudo tar -xz -C /usr/local/bin hugo
hugo version
2. Clone and build
sudo mkdir -p /var/www/bitcoin-only
sudo chown "$USER":"$USER" /var/www/bitcoin-only
cd /var/www/bitcoin-only
git clone https://github.com/rottenwheel/bitcoin-only-hugo.git .
# Edit baseURL in hugo.toml if needed
hugo --minify
The files to serve are in /var/www/bitcoin-only/public.
3. Configure Nginx
/etc/nginx/sites-available/bitcoin-only:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/bitcoin-only/public;
index index.html;
location / {
try_files $uri $uri/ =404;
}
# Reasonable caching for assets
location ~* \.(css|js|png|jpg|jpeg|gif|svg|ico|woff2?)$ {
expires 7d;
add_header Cache-Control "public";
}
}
Enable and reload:
sudo ln -s /etc/nginx/sites-available/bitcoin-only /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
4. HTTPS (recommended)
With Certbot:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
5. Updating the site later
cd /var/www/bitcoin-only
git pull
hugo --minify
# No need to restart Nginx: only files in public/ change
Summarized workflow
Edit Markdown / theme
↓
hugo --minify
↓
public/
↓
Nginx (or Caddy) on the VPS
Adding or editing a page
- Create or edit a
.mdfile incontent/ - If it's a new page, add the link in
hugo.toml→params.navigationLinks - Check it locally with
hugo server - Commit,
git pullon the VPS and runhugo --minifyagain
Notes
- Hugo extended is required (Dart Sass / theme SCSS).
public/andresources/are in.gitignore: they are generated on each build and are not version-controlled.markup.goldmark.renderer.unsafe = trueallows HTML in Markdown (necessary for tables and rich links).
License
See LICENSE; the original Bitcoin Only project is open-source and community-oriented.