作为这个网站的第一篇文章,我先来介绍下该网站使用的技术吧。该网站使用的是 Hugo + PaperMod + Nginx + Ubuntu,这样的组合。我的考虑是纯静态网站对服务器的性能要求不高,管理起来也非常方便,只要安装管理 Nginx 就可以了;本地写好的博客直接同步到服务器的 Nginx 网页目录即可。

Hugo + PaperMod

Hugo 我用的是官方打包好的二进制文件,下载下来后配置下环境变量就可以直接使用了。版本是 extended 版本,如:hugo_extended_0.155.3_windows-amd64

安装 PaperMod 主题

主题的安装与更新推荐使用 git submodule(便于后续升级):

# 1. 创建新站点(若尚未创建)
hugo new site myblog
cd myblog

# 2. 初始化 Git 仓库(必须)
git init

# 3. 添加 PaperMod 为子模块
git submodule add https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod

# 4. 复制示例配置(可选但强烈建议)
copy themes/PaperMod/exampleSite/config.yml config.yml
# 或改用 TOML 格式(本文以 TOML 为主):
# copy themes/PaperMod/exampleSite/config.toml config.toml

# 5. 启动本地预览
hugo server -D

升级 PaperMod 主题

使用 git submodule 升级非常简单:

# 进入站点根目录
cd myblog

# 更新子模块到最新版
git submodule update --remote --merge

# 提交更新记录(可选)
git add themes/PaperMod
git commit -m "chore: update PaperMod theme"

配置

baseURL: "https://xiaotupo.com"
languageCode: "zh-CN"
title: "小土坡 - 分享知识的地方..."
theme: "PaperMod"
disableThemeToggle: true # 显示主题修好按钮

# 设置新建文章的 Front Matter 格式为 YAML
frontmatter:
  posts:
    format: "yaml"

taxonomies:
  tag: "tags"
  category: "categories"

# PaperMod 主题配置
params:
  author: "小土坡"
  email: "xiaotupo@163.com" #
  defaultTheme: "auto" # 配置默认主题色,可选:light/dark/auto
  description: "小土坡是一个分享知识的网站,这里提供了一些关于电子硬件、电路仿真与实验、嵌入式以及物联网、3D打印等主流科技技术相关的内容。"
  enableSearch: true
  showReadingTime: true
  hideBreadcrumbs: true # 隐藏面包屑导航
  ShowShareButtons: true # 显示分享按钮
  TocOpen: true # 默认打开 Toc
  ShowPostNavLinks: true # 显示上一篇/下一篇链接
  ShowCodeCopyButtons: true # 显示代码复制按钮

  homeInfoParams:
    Title: "Hi there 👋"
    Content: "欢迎来到我的博客,我会分享一些有意思的内容给大家!"

  # 社交图标配置
  socialIcons:
    - name: "github"
      url: "https://github.com/xiaotupo-com"
    - name: "bilibili"
      url: "https://space.bilibili.com/334715750"
    - name: "email"
      url: "mailto:xiaotupo@163.com"
    - name: "rss"
      url: "/index.xml"

  profileMode:
    enabled: false
    title: "小土坡 - 分享知识的地方!"
    subtitle: "掌握知识掌握力量👋"
    imageUrl: "/images/avatar.png"
    imageTitle: "小土坡 - 分享知识的地方!"
    imageWidth: 120
    imageHeight: 120

  assets:
    # disableHLJS = true
    # disableFingerprinting = true
    favicon: "/images/favicon.ico"
    favicon96x96: "/images/favicon-96x96.png"
    apple_touch_icon: "/images/apple-touch-icon.png"
    safari_pinned_tab: "/images/safari-pinned-tab.svg"

  fuseOpts:
    isCaseSensitive: false
    shouldSort: true
    location: 0
    distance: 1000
    threshold: 0.4
    minMatchCharLength: 0
    # limit: 10 # refer: https://www.fusejs.io/api/methods.html#search
    keys: ["title", "permalink", "summary", "content"]

menu:
  main:
    - name: "Home"
      url: "/"
      weight: 1
    - name: "Archive"
      url: "/archives/"
      weight: 2
    - name: "Search"
      url: "/search/"
      weight: 3
    - name: "Tags"
      url: "/tags/"
      weight: 4
    - name: "Category"
      url: "/categories/"
      weight: 5
    - name: "Links"
      url: "/links"
      weight: 6
    - name: "About"
      url: "/about"
      weight: 7

# Search Page
outputs:
  home:
    - HTML
    - RSS
    - JSON # necessary for search

安装 Nginx 并配置 SSH 证书

下面列出了安装 Nginx 用到的一些命令:

# 1. 安装 nginx
sudo apt update
sudo apt install -y nginx

# 2. 启动并设置开机自启
sudo systemctl enable --now nginx

# 3. 验证是否成功
curl http://localhost

配置 Nginx 站点

创建配置文件:

sudo nano /etc/nginx/sites-available/xiaotupo.com

粘贴一下内容:

server {
    listen 80;
    server_name xiaotupo.com www.xiaotupo.com;  # ← 改成你的域名,或写服务器公网IP

    root /home/username/xiaotupo.com;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    # 可选:隐藏 .git 等敏感目录
    location ~ /\. {
        deny all;
    }
}

启用站点:

sudo ln -s /etc/nginx/sites-available/xiaotupo.com /etc/nginx/sites-enabled/

测试配置&重载:

sudo nginx -t
sudo systemctl reload nginx

启用 HTTPS(Let’s Encrypt)

在阿里云轻量服务器(Ubuntu)上为 Nginx 配置 HTTPS(即安装 SSL/TLS 证书),最推荐的方式是使用 Let’s Encrypt 免费证书 + Certbot 自动化工具。整个过程免费、自动化、且被广泛信任。

安装 Certbot 并申请证书(全自动)

第一步:安装 Certbot 和 Nginx 插件

sudo apt update
sudo apt install -y certbot python3-certbot-nginx

第 2 步:运行 Certbot(自动配置 Nginx + 申请证书)

sudo certbot --nginx -d xiaotupo.com -d www.xiaotupo.com

替换 xiaotupo.com 为你的实际域名(可多个 -d)

配置站点目录权限

我设置的站点目录为我的用户目录下的 xiaotupo.com,如:/home/usarname/xiaotupo.com,不过这个目录默认 Nginx 是无权访问的,必须配置权限才能访问,否则当你访问时会显示 404

# 1. 修复 home 目录权限
chmod 755 /home/username

# 2. 确保网站目录可读
chmod -R 755 /home/username/xiaotupo.com

# 3. 重载 Nginx
sudo nginx -t && sudo systemctl reload nginx

经过这样配置之后就可以正常访问了,当然我们还要执行一下命令把 hugo 的 public 目录中的站点内容上传到我们的 /home/username/xiaotupo.com,上传命令如下:

PS D:\xiaotupo.com> scp -r .\public\* usarname@xiaotupo.com:/home/username/xiaotupo.com

总结

经过这样的配置网站也算可以正常访问了,以后遇到问题再说。

如果您有什么问题可以通过本站提供的邮箱链接联系我。