admin_gitea 18db389beb
Build Packages / Test (push) Has been cancelled
Build Packages / Build macOS package (push) Has been cancelled
Build Packages / Build Linux package (push) Has been cancelled
Build Packages / Build Windows package (push) Has been cancelled
Build Packages / Publish GitHub Release (push) Has been cancelled
docs: add v1.0.0 release notes and package naming
2026-08-05 15:28:29 +08:00
2026-01-28 13:26:17 +08:00
2026-01-28 13:26:17 +08:00
2026-01-28 13:26:17 +08:00

个人主页 - 动态版本

基于Vue3 + Go的个人主页项目【原项目Home-Vue】支持动态更新配置,无需修改代码即可更新站点信息。

技术栈

前端:

  • Vue3 + Vite
  • CSS3 + HTML5 + JavaScript
  • Vue Router
  • Axios

后端:

  • Go + Gin
  • Ent ORM
  • JWT认证
  • SQLite数据库

功能特性

  • 动态配置站点信息(名称、URL、图标等)
  • 可视化管理界面
  • 支持多种图片格式上传(jpg、png、jpeg、webp、avif等)
  • 联系方式管理(Email、GitHub、支付宝、微信等)
  • JWT认证保护管理接口
  • 数据存储在SQLite,轻量级数据库
  • 支持Linux服务器二进制打包部署

项目结构

Home-Vue-go/
├── docs/          # 文档目录
├── scripts/       # 构建脚本
├── src/           # 前端源代码
├── internal/      # Go后端代码
└── public/        # 静态资源

详细的项目结构说明请查看 PROJECT_STRUCTURE.md

快速开始

1. 环境要求

  • Go >= 1.21
  • Node.js >= 16.16.0
  • npm >= 8.15.0

2. 安装依赖

# 安装前端依赖
npm install

# 安装Go依赖
go mod download

3. 生成 Ent 代码(仅修改 Schema 后)

生成后的 Ent 源码已提交到仓库,普通运行和构建不需要重复生成。只有修改 internal/ent/schema 后才运行:

# 进入ent目录
cd internal/ent

# 生成Ent代码
go generate ./...

# 返回项目根目录
cd ../..

说明:

  • go generate 是Go的内置命令,用于运行代码生成工具
  • ./... 表示当前目录及所有子目录
  • 这会根据 schema/ 目录中的定义生成Ent ORM代码
  • 生成器使用 go.mod 中固定的 Ent 版本,不会使用 @latest

4. 运行项目

开发模式:

生产运行只需要启动一个服务。需要前端热更新时,可额外启动 Vite 开发服务器:

终端1 - 启动统一服务:

# 在项目根目录运行
make run

终端2 - 启动前端开发服务器:

# 在项目根目录运行
npm run dev

说明:

  • make run 会先构建前端,再启动同时提供前端、API和上传文件的统一服务
  • 统一服务默认运行在 http://localhost:1552
  • Vite 开发服务器运行在 http://localhost:5173,并将 API 请求代理到统一服务
  • 首次运行会自动创建 data/ 目录和数据库
  • 可以通过环境变量 PORT 修改统一服务端口(默认1552

Windows用户注意: 如果遇到中文乱码,在PowerShell中运行:

[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
chcp 65001

访问:

默认管理员账号:

  • 用户名:admin
  • 密码:admin123

⚠️ 重要: 首次运行后请立即修改默认密码!

5. 构建部署

构建 Linux 单文件程序:

make build-linux

构建 Windows 单文件程序:

make build-windows

构建全部平台:

make build

该命令会生成 Windows、Linux 和 macOS amd64 可执行文件;需要单独构建某个平台时使用对应的 make build-windowsmake build-linuxmake build-darwin

构建前端:

npm install
npm run build

构建完成后:

  • make build 的发布包位于 ./dist/
  • 前端资源已经嵌入每个平台的二进制文件,部署时只需要对应的可执行文件

说明:

  • go build 编译Go程序为二进制文件
  • SQLite 使用纯 Go 驱动,构建不需要 CGO 或 GCC
  • GOOS=linux GOARCH=amd64 指定目标平台和架构
  • -o 指定输出文件名

部署说明

  1. 上传文件到服务器:

    • 上传 home-vue-go 二进制文件
  2. 运行二进制文件:

    ./home-vue-go
    
  3. 数据存储:

    • 数据库文件:./data/home.db
    • 上传的图片:./data/uploads/
    • 所有数据存储在二进制文件同级目录的 data 文件夹中
  4. 环境变量(可选):

    export PORT=1552          # 统一服务端口,默认1552
    export JWT_SECRET=your-secret-key  # JWT密钥,建议修改
    

管理界面使用

  1. 访问 /admin 进入管理界面
  2. 使用默认账号登录
  3. 在管理界面中可以:
    • 站点配置:修改站点名称、URL、图标、描述等
    • 站点管理:添加、编辑、删除站点链接
    • 联系方式管理:管理Email、GitHub、支付宝、微信等联系方式

数据迁移

如果你之前使用的是静态版本(使用JSON配置文件),可以:

  1. 启动新版本服务
  2. 登录管理界面
  3. 手动导入原有数据,或使用API批量导入

API文档

公开API(无需认证)

  • GET /api/sites - 获取站点列表
  • GET /api/contacts - 获取联系方式列表
  • GET /api/config - 获取站点配置

管理API(需要JWT认证)

  • POST /api/auth/login - 登录获取token
  • GET /api/admin/sites - 获取站点列表(管理)
  • POST /api/admin/sites - 创建站点
  • PUT /api/admin/sites/:id - 更新站点
  • DELETE /api/admin/sites/:id - 删除站点
  • GET /api/admin/contacts - 获取联系方式列表(管理)
  • POST /api/admin/contacts - 创建联系方式
  • PUT /api/admin/contacts/:id - 更新联系方式
  • DELETE /api/admin/contacts/:id - 删除联系方式
  • GET /api/admin/config - 获取站点配置(管理)
  • PUT /api/admin/config - 更新站点配置
  • POST /api/admin/upload - 上传图片文件

注意事项

  1. Email格式验证:Email类型的联系方式URL必须是 mailto: 格式(如:mailto:i@bsgun.cn
  2. 图片上传:支持 jpg、jpeg、png、gif、webp、avif、svg、bmp 格式
  3. 数据库安全:SQLite数据库文件存储在服务器本地,不对外暴露,防止数据库注入
  4. JWT密钥:生产环境请务必修改JWT_SECRET环境变量
  5. 默认密码:首次部署后请立即修改管理员密码

开发命令

Go相关命令:

# 更新依赖
go mod tidy

# 下载依赖
go mod download

# 生成Ent代码
cd internal/ent && go generate ./... && cd ../..

# 运行后端(开发模式)
make run

# 构建后端(当前平台)
CGO_ENABLED=0 go build -o home-vue-go .

# 构建后端(Linux
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o home-vue-go .

# 查看Go版本
go version

# 查看模块信息
go mod graph

前端相关命令:

# 安装依赖
npm install

# 开发模式
npm run dev

# 构建生产版本
npm run build

# 预览构建结果
npm run preview

GitHub Actions 构建与安装包

仓库内置 .github/workflows/build.yml,在推送到 main 或创建 Pull Request 时运行测试和跨平台构建。每次工作流运行都会产生三个可下载的安装包:

  • Windows amd64Home-Vue-Go_Windows.zip
  • Linux amd64Home-Vue-Go_Linux.tar.gz
  • macOS amd64Home-Vue-Go_macOS.tar.gz

在 GitHub Actions 的运行详情页下载对应平台的 Home-Vue-Go_<平台> 构建产物。发布版本时推送一个 v 开头的标签,工作流会自动创建 GitHub Release、读取对应版本的发行说明并附加这三个安装包:

git tag v1.0.0
git push github v1.0.0

许可证

本项目沿用原仓库的 MIT License,发行包中也会包含完整的 LICENSE 文件。原项目版权声明及许可条款予以保留。

S
Description
No description provided
Readme MIT 772 KiB
Languages
Vue 54.2%
Go 30%
JavaScript 9.9%
Less 3.5%
Makefile 2.2%
Other 0.2%