Hugo博客部署指南 Hugo博客部署指南 用Hugo在ubuntu24上部署一个个人博客记录一些学习笔记,项目总结,技术文章和思考 我们将使用Hugo静态网站生成器在Ubuntu 24上部署个人博客。Hugo是一个用Go编写的快速、现代的静态网站生成器,非常适合构建个人博客、项目文档等。 步骤: 安装Hugo 创建一个新的Hugo站点 选择或创建一个主题 配置站点 创建内容(文章) 本地测试 部署到服务器(假设你已经有一个服务器,并且可以通过SSH访问) 由于你是在Ubuntu 24上部署,我们可以通过包管理器安装Hugo,但为了获得最新版本,我们也可以从GitHub发布页面下载。 这里我们选择使用包管理器安装,因为Ubuntu 24的仓库中可能已经有了较新版本的Hugo。 如果仓库中的版本不够新,我们也可以使用Snap安装,或者从GitHub下载二进制文件。 以下是通过APT安装的步骤: 我来为你提供一个完整的Hugo博客部署指南,适合Ubuntu 24系统。 1. 安装Hugo bash # 更新系统包列表 sudo apt update # 安装Hugo(Ubuntu 24仓库中的版本可能较旧,建议使用以下方法安装最新版) sudo apt install -y wget # 方法1:从GitHub下载最新版 # 查看最新版本:https://github.com/gohugoio/hugo/releases wget https://github.com/gohugoio/hugo/releases/download/v0.128.0/hugo_extended_0.128.0_linux-amd64.deb sudo dpkg -i hugo_extended_0.128.0_linux-amd64.deb # 方法2:使用Snap安装(版本可能不是最新) # sudo snap install hugo # 验证安装 hugo version 2. 创建博客项目 bash # 创建新的Hugo站点 hugo new site my-blog cd my-blog # 初始化Git仓库(可选但推荐) git init 3. 选择并安装主题 bash # 推荐的主题(选择一个) # 1. PaperMod - 简洁现代 git submodule add --depth=1 https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod # 2. Stack - 卡片式设计 # git submodule add https://github.com/CaiJimmy/hugo-theme-stack.git themes/stack # 3. LoveIt - 功能丰富 # git submodule add https://github.com/dillonzq/LoveIt.git themes/LoveIt 4. 基础配置 编辑 hugo.toml(或 config.toml): toml baseURL = 'https://yourdomain.com/' languageCode = 'zh-CN' title = '我的技术博客' theme = 'PaperMod' # 启用评论系统(可选) [params] comments = true # 启用Google Analytics(可选) googleAnalytics = 'G-XXXXXXX' # 多语言配置 [languages.zh-CN] title = '我的技术博客' weight = 1 # 菜单配置 [[menu.main]] identifier = 'posts' name = '文章' url = '/posts/' weight = 1 [[menu.main]] identifier = 'categories' name = '分类' url = '/categories/' weight = 2 [[menu.main]] identifier = 'tags' name = '标签' url = '/tags/' weight = 3 [[menu.main]] identifier = 'about' name = '关于' url = '/about/' weight = 4 5. 创建目录结构 bash # 创建内容目录 mkdir -p content/posts content/projects content/notes content/about # 创建示例文章 hugo new posts/first-post.md hugo new notes/learning-log.md hugo new projects/summary-2024.md hugo new about/index.md 6. 文章模板 编辑 content/posts/first-post.md: markdown --- title: "第一篇博客文章" date: 2024-12-21T10:00:00+08:00 draft: false tags: ["Hugo", "博客", "教程"] categories: ["技术"] summary: "这是我的第一篇博客文章,主要介绍如何使用Hugo搭建个人博客。" --- ## 简介 这是我的第一篇博客文章,记录Hugo博客搭建过程。 ## 主要内容 - Hugo安装 - 主题配置 - 文章撰写 ## 代码示例 ```python def hello_world(): print("Hello, Hugo!") 总结 Hugo是一个优秀的静态网站生成器,适合技术博客。 text ## 7. 本地测试 ```bash # 启动本地服务器 hugo server -D # 访问 http://localhost:1313 # -D 参数包含草稿文章 8. 部署配置 方案A:GitHub Pages(推荐) bash # 创建部署脚本 deploy.sh cat > deploy.sh << 'EOF' #!/bin/bash echo -e "\033[0;32mDeploying updates to GitHub...\033[0m" # 生成静态文件 hugo # 进入public目录 cd public # 初始化Git(如果第一次) git init git add . # 提交更改 msg="rebuilding site $(date)" if [ -n "$*" ]; then msg="$*" fi git commit -m "$msg" # 推送到GitHub Pages仓库 # 修改为你的仓库地址 git push -f git@github.com:username/username.github.io.git main cd .. EOF chmod +x deploy.sh 方案B:Nginx服务器部署 bash # 安装Nginx sudo apt install -y nginx # 生成静态文件 hugo # 复制到Nginx目录 sudo cp -r public/* /var/www/html/ # 配置Nginx sudo nano /etc/nginx/sites-available/blog Nginx配置示例: nginx server { listen 80; server_name yourdomain.com; root /var/www/blog; index index.html; location / { try_files $uri $uri/ =404; } } 9. 自动化脚本 创建 scripts/setup.sh: bash #!/bin/bash # 博客管理脚本 case "$1" in "new") hugo new "posts/$(date +%Y-%m-%d)-$2.md" ;; "server") hugo server -D ;; "build") hugo --minify ;; "deploy") hugo --minify cd public && git add . && git commit -m "Update $(date)" && git push ;; *) echo "用法: $0 {new|server|build|deploy}" ;; esac 10. 优化配置 添加搜索功能 toml # 在config.toml中添加 [params] search = true 添加代码高亮 toml # 使用Chroma高亮 pygmentsCodeFences = true pygmentsStyle = "monokai" 添加SEO优化 toml [params] description = "个人技术博客,分享学习笔记、项目总结和技术思考" keywords = "技术博客,编程,学习笔记,项目总结" 11. 备份脚本 bash # backup.sh #!/bin/bash DATE=$(date +%Y%m%d_%H%M%S) BACKUP_DIR="/path/to/backup/hugo-blog-$DATE" # 备份整个项目 cp -r ~/my-blog "$BACKUP_DIR" # 备份到远程 # rsync -avz ~/my-blog user@remote:/backup/hugo-blog/ 12. 日常使用命令 bash # 创建新文章 hugo new posts/文章标题.md # 本地预览 hugo server # 构建静态文件 hugo # 清理构建缓存 hugo --gc # 构建并压缩 hugo --minify 额外建议 版本控制 bash # 添加.gitignore echo "public/" >> .gitignore echo "resources/" >> .gitignore 使用GitHub Actions自动部署 创建 .github/workflows/gh-pages.yml: yaml name: Deploy Hugo on: push: branches: [ main ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: peaceiris/actions-hugo@v2 - run: hugo --minify - uses: peaceiris/actions-gh-pages@v3 with: personal_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./public 内容组织建议 /content/posts/ - 技术文章 /content/notes/ - 学习笔记 /content/projects/ - 项目总结 /content/drafts/ - 草稿箱 这个方案为你提供了一个完整的、可扩展的技术博客系统。你可以根据自己的需求调整主题和配置。