新一代极简轻量博客系统
基于 Go 语言开发的现代化个人博客平台,无数据库依赖,支持一键部署和数据迁移。
演示站点 - 仅作为演示站点,内容即项目默认内容
方澄云 - 优质上游服务器供应商(推荐香港三区和五区)
© 2025 GL-Blog • Designed for Simplicity & Performance
- 启动速度: < 100ms 闪电启动
- 内存占用: 仅 ~20MB 运行内存
- 并发处理: 支持数千并发连接
- 响应时间: < 5ms 本地响应
- 二进制大小: ~15MB 单文件部署
- 无数据库: 使用文件系统存储,零配置启动
- 静态编译: 单个二进制文件包含所有依赖
- 跨平台: 支持 Linux/Windows/macOS
- 容器化: 完美支持 Docker 部署
- Apple 设计美学: 参考大厂设计规范
- 毛玻璃效果: 现代化视觉体验
- 流畅动画: 60fps 丝滑交互
- 触控优化: 完美的移动端操作体验
- 自适应布局: 完美适配手机/平板/桌面
- 动态背景: 支持自定义背景图片
- 实时状态: 服务器 CPU/内存/负载监控
- 优雅动效: GSAP 驱动的流畅动画
- 暗色适配: 护眼的夜间模式
- 代码高亮: 支持多种编程语言
- 多协议支持: SSL/STARTTLS/无加密
- 智能认证: 支持密码和授权码
- 邮件验证: 用户注册邮箱验证
- 登录提醒: 异地登录安全通知
- IP 定位: 自动获取登录地理位置
- 批量发送: 支持群发和模板邮件
- 主流邮箱: 完美支持 Gmail/Outlook/QQ/163 等
- 自定义发件人: 支持品牌化邮件显示
- 错误处理: 详细的发送状态反馈
- 异步发送: 不阻塞用户操作
- 站长权限: 第一个注册用户自动成为站长
- 管理员角色: 可管理内容和用户
- 普通用户: 可注册、登录、评论
- 权限分配: 灵活的角色管理
- bcrypt 加密: 工业级密码哈希
- Session 管理: 安全的会话控制
- 邮箱验证: 防止恶意注册
- 登录监控: 异常登录自动通知
- Markdown 文件: 文章内容存储为 .md 文件
- JSON 元数据: 结构化配置和索引
- 本地上传: 图片和附件本地存储
- 版本控制: 支持 Git 版本管理
- 完整导出: tar.gz 格式包含所有数据
- 跨服务器: 无痛迁移到新服务器
- 增量备份: 支持定期自动备份
- 快速恢复: 一键导入恢复所有数据
- CPU 使用率: 实时显示系统 CPU 占用
- 内存监控: 准确的内存使用情况
- 负载均衡: 系统负载平均值
- 系统信息: 自动识别操作系统和架构
- Docker 支持: 容器内准确获取宿主机信息
- 操作系统: 准确识别 Ubuntu/Debian/CentOS 等
- 架构检测: 自动识别 AMD64/ARM64
- 容器环境: 智能检测 Docker 运行环境
- 实时刷新: 每 4 秒更新状态信息
- EasyMDE 集成: 专业的 Markdown 编辑体验
- 实时预览: 编辑时即时查看效果
- 语法高亮: 支持代码语法着色
- 拖拽上传: 图片直接拖拽插入
- 快捷键: 丰富的编辑快捷键
- 分类管理: 灵活的文章分类
- 标签系统: 多标签文章组织
- 搜索功能: 快速查找文章内容
- 归档展示: 时间轴式文章归档
💡 推荐:使用 Docker 部署是最快、最稳定的方式。
# AMD64架构服务器
docker run -d --name gl-blog --restart unless-stopped -p 3000:3000 -v /root/gl-blog/data:/app/data -e TZ=Asia/Shanghai lihupr/gl-blog:latest
# ARM64架构服务器
docker run -d --name gl-blog --restart unless-stopped -p 3000:3000 -v /root/gl-blog/data:/app/data -e TZ=Asia/Shanghai lihupr/gl-blog:arm64
version: '3.8'
services:
gl-blog:
image: lihupr/gl-blog:latest
container_name: gl-blog
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./data:/app/data
environment:
- TZ=Asia/Shanghai
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000"]
interval: 30s
timeout: 10s
retries: 3version: '3.8'
services:
gl-blog:
image: lihupr/gl-blog:arm64
container_name: gl-blog
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./data:/app/data
environment:
- TZ=Asia/Shanghai
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000"]
interval: 30s
timeout: 10s
retries: 3访问地址:打开浏览器访问
http://服务器IP:3000
- Go 1.21 或更高版本
Windows 用户(推荐):
# 双击运行
启动博客.bat
# 或命令行运行
gl-blog.exeLinux/Mac 用户:
# 克隆项目
git clone https://github.com/Lihu-PR/GL-Blog.git
cd GL-Blog
# 安装依赖
go mod download
# 运行项目
go run .
# 或编译后运行
go build -o gl-blog
./gl-blog指定端口:
./gl-blog -port 8080- 启动服务器后访问
http://localhost:3000/setup - 按照引导创建管理员账号和设置基本信息
- 配置 SMTP 邮件服务(可选)
- 设置社交链接和个人信息
- 开始创作您的第一篇文章
- 文章创建: 访问管理后台使用 Markdown 编辑器
- 图片上传: 支持拖拽上传和粘贴插入
- 分类标签: 灵活的内容组织方式
- 实时预览: 编辑时即时查看效果
- SEO 优化: 自动生成友好的 URL
- 用户注册: 支持邮箱验证注册
- 权限分配: 管理员可分配用户角色
- 登录监控: 异地登录自动邮件通知
- 安全设置: 强密码策略和会话管理
# 导出所有数据
./gl-blog -export
# 导入数据(换服务器时使用)
./gl-blog -import backup.tar.gz# 导出数据
docker exec gl-blog ./gl-blog -export
docker cp gl-blog:/app/backup.tar.gz ./backup.tar.gz
# 导入数据
docker cp backup.tar.gz gl-blog:/app/backup.tar.gz
docker exec gl-blog ./gl-blog -import /app/backup.tar.gz
docker restart gl-blogQ: 为什么选择 Go 语言开发?
A: Go 语言具有以下优势:
- 高性能: 编译型语言,执行效率高
- 并发处理: 原生协程支持,轻松处理高并发
- 内存安全: 垃圾回收机制,避免内存泄漏
- 跨平台: 一次编译,到处运行
- 部署简单: 静态编译,无需运行时依赖
Q: 移动端体验如何?
A: GL-Blog 专门针对移动端进行了深度优化:
- 响应式设计: 完美适配各种屏幕尺寸
- 触控优化: 针对触屏操作优化的交互
- 加载速度: 优化的资源加载和缓存策略
- Apple 美学: 参考 iOS 设计规范的界面风格
Q: SMTP 邮件系统支持哪些功能?
A: 完整的企业级邮件功能:
- 用户验证: 注册时邮箱验证
- 登录通知: 异地登录安全提醒
- 密码重置: 邮箱重置密码功能
- 多协议: 支持 SSL/STARTTLS/无加密
- 主流邮箱: Gmail/Outlook/QQ/163 等
Q: 数据安全性如何保障?
A: 多重安全保障:
- 本地存储: 数据完全在您的服务器上
- 加密存储: bcrypt 加密用户密码
- 备份机制: 支持完整数据导出备份
- 会话安全: 安全的 Session 管理
- 权限控制: 细粒度的用户权限管理
Q: 服务器配置要求?
A: 极低的硬件要求:
- CPU: 1 核心即可
- 内存: 512MB 足够
- 存储: 100MB 基础空间
- 网络: 支持 HTTP/HTTPS 访问
Q: 如何配置 HTTPS?
A: 推荐使用 Nginx 反向代理:
server {
listen 443 ssl http2;
server_name your-domain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}Q: 如何进行性能优化?
A: 系统已内置多项优化:
- 静态文件: 内嵌到二进制文件中
- 缓存策略: 智能的浏览器缓存
- 压缩传输: 自动 Gzip 压缩
- 并发处理: Go 协程高效处理请求
- 完整博客系统: 文章创建、编辑、删除、展示
- 用户管理: 注册、登录、权限分配
- 邮件系统: SMTP 配置、邮箱验证、登录通知
- 引导设置: 首次使用自动引导配置
- 数据迁移: 完整的备份恢复机制
- 移动端适配: 完美的响应式设计
- 毛玻璃效果: 现代化的视觉设计
- 服务器监控: 实时 CPU、内存、负载显示
- 优雅动画: 流畅的交互体验
- 代码高亮: 支持多种编程语言
- Go 语言: 高性能后端架构
- 零数据库: 文件系统存储,启动更快
- 静态编译: 单文件部署,无依赖
- 容器优化: Docker 镜像仅 ~12MB
- 语言: Go 1.21+ (高性能、并发安全)
- 路由: Gorilla Mux (灵活的 HTTP 路由)
- 会话: Gorilla Sessions (安全的会话管理)
- 加密: bcrypt (工业级密码哈希)
- Markdown: gomarkdown (高性能 Markdown 解析)
- 邮件: net/smtp + crypto/tls (企业级邮件支持)
- 编辑器: EasyMDE (专业 Markdown 编辑)
- 动画: GSAP (流畅的动画效果)
- 样式: 原生 CSS3 (毛玻璃、响应式)
- 图标: SVG (矢量图标系统)
- 字体: Apple 系统字体栈
- 文章: Markdown 文件 (.md)
- 配置: JSON 文件 (metadata.json)
- 上传: 本地文件系统
- 备份: tar.gz 压缩包
- 容器: Docker + Docker Compose
- 反向代理: Nginx (推荐)
- SSL: Let's Encrypt (免费证书)
- 监控: 内置系统状态监控
- 本地存储: 数据完全在您的服务器上
- 加密存储: bcrypt 哈希用户密码
- 会话安全: 安全的 Cookie 和 Session
- 权限控制: 细粒度的用户权限管理
- 备份机制: 完整数据导出和恢复
- HTTPS 支持: 支持 SSL/TLS 加密传输
- CSRF 防护: 跨站请求伪造防护
- 输入验证: 严格的用户输入验证
- 文件上传: 安全的文件上传机制
- 登录监控: 异常登录自动通知
- 多协议: SSL/STARTTLS/无加密支持
- 认证机制: 支持密码和授权码
- 异步发送: 不阻塞主要功能
- 错误处理: 详细的发送状态反馈
- IP 定位: 登录地理位置追踪
欢迎提交 Issue 或 PR 改进项目。
MIT License - 详见 LICENSE 文件
Made with ❤️ by Lihu-PR
GL-Blog - 让博客创作更简单、更优雅、更高效
基于 Go 语言的现代化博客平台 • 完美移动端体验 • 企业级邮件系统