# blog **Repository Path**: NextEraAbyss/blog ## Basic Information - **Project Name**: blog - **Description**: 渡鸦博客系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: https://blog.wat.ink/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-15 - **Last Updated**: 2026-10-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 渡鸦博客系统 ![渡鸦博客](https://blog.wat.ink/static/images/system/og-image.jpg) ## 项目介绍 渡鸦博客是一个使用 Go 语言构建的简约而功能强大的博客系统,具有用户友好的前台界面和高效的后台管理系统。项目设计注重性能优化和用户体验,适合个人或小型团队使用。 ### 在线体验 - 前台界面: [https://blog.wat.ink](https://blog.wat.ink) - 后台管理: [https://blog.wat.ink/admin](https://blog.wat.ink/admin) ## 主要特性 ### 前台功能 - 🏠 响应式首页设计,适配多种设备 - 📝 文章阅读与分类浏览 - 🏷️ 标签云与标签分类 - 🔍 全站搜索功能 - 💬 评论系统 - 🌙 暗色模式支持 ### 后台功能 - 📊 直观的数据统计仪表盘 - ✍️ 文章撰写与管理(支持 Markdown) - 👥 用户管理系统 - 📁 分类与标签管理 - 💬 评论审核与回复 - ⚙️ 系统设置与优化 ## 技术栈 ### 后端 - **语言框架**: Go 1.21+ - **Web 框架**: [自研框架] - **数据库**: MySQL 8.0+ - **缓存**: Redis ### 前端 - **CSS 框架**: Tailwind CSS - **图标库**: Font Awesome 5.15.4 (前台) / 6.4.0 (后台) - **代码高亮**: Prism.js - **编辑器**: 支持 Markdown ## 目录结构 ``` ├── config/ # 配置文件目录 ├── internal/ # 内部应用代码 │ ├── controller/ # 控制器 │ ├── model/ # 数据模型 │ ├── service/ # 业务逻辑 │ └── utils/ # 工具函数 ├── static/ # 静态资源文件 │ ├── css/ # 样式文件 │ ├── images/ # 图片资源 │ ├── js/ # JavaScript 文件 │ └── vendor/ # 第三方库资源 ├── templates/ # 模板文件 │ ├── admin/ # 后台模板 │ ├── layouts/ # 布局模板 │ └── web/ # 前台模板 ├── main.go # 应用入口 └── go.mod # Go 模块定义 ``` ## 快速开始 ### 系统要求 - Go 1.21 或更高版本 - MySQL 8.0 或更高版本 - Redis (可选,用于缓存) ### 安装步骤 1. **克隆仓库** ```bash git clone https://gitee.com/your-username/blog.git cd blog ``` 2. **安装依赖** ```bash go mod download ``` 3. **配置数据库** ```bash # 创建配置文件 cp config/config.example.yaml config/config.yaml # 修改配置文件中的数据库连接信息 # 编辑 config/config.yaml ``` 4. **本地化资源** ```bash # 按照说明下载并放置第三方资源 # 详见 static/vendor/README.md ``` 5. **运行应用** ```bash go run main.go ``` 6. **访问应用** - 前台: http://localhost:8080 - 后台: http://localhost:8080/admin ## 本地开发 ### 热重载 推荐使用 `air` 进行热重载开发: ```bash # 安装 air go install github.com/cosmtrek/air@latest # 运行 air ``` ### 资源本地化 所有前端资源已本地化,详细信息请参考 `static/vendor/README.md`。 ## 部署指南 ### Windows 打包 Linux 部署 #### Windows 下交叉编译 1. **设置 Go 交叉编译环境变量** ```cmd # CMD 命令行 set GOOS=linux set GOARCH=amd64 # PowerShell $env:GOOS="linux" $env:GOARCH="amd64" ``` 2. **编译应用** ```cmd go build -o raven-blog ``` 3. **打包资源** ```cmd # 创建部署目录 mkdir deploy # 复制编译好的二进制文件 copy raven-blog deploy\ # 复制必要的配置文件和静态资源 xcopy config deploy\config\ /E /I /Y xcopy static deploy\static\ /E /I /Y xcopy templates deploy\templates\ /E /I /Y # 创建日志目录 mkdir deploy\logs # 打包成zip文件以便传输 powershell Compress-Archive -Path deploy\* -DestinationPath raven-blog.zip ``` #### Linux 服务器部署 1. **将打包文件传输到 Linux 服务器** ```bash # 使用 SCP 上传 (在本地 PowerShell 或 CMD 中执行) scp raven-blog.zip user@your-server-ip:/path/to/upload/ ``` 或使用 SFTP 工具如 WinSCP、FileZilla 等上传文件。 2. **解压和配置** ```bash # 在 Linux 服务器上执行 cd /path/to/upload unzip raven-blog.zip -d raven-blog cd raven-blog # 设置可执行权限 chmod +x raven-blog # 配置数据库连接等 nano config/config.yaml ``` 3. **使用 Systemd 管理应用** 创建服务文件: ```bash sudo nano /etc/systemd/system/raven-blog.service ``` 添加以下内容: ``` [Unit] Description=Raven Blog Service After=network.target mysql.service [Service] User=www-data WorkingDirectory=/path/to/upload/raven-blog ExecStart=/path/to/upload/raven-blog/raven-blog Restart=always RestartSec=5 StandardOutput=append:/path/to/upload/raven-blog/logs/output.log StandardError=append:/path/to/upload/raven-blog/logs/error.log [Install] WantedBy=multi-user.target ``` 4. **启动并设置开机自启** ```bash # 重新加载 systemd 配置 sudo systemctl daemon-reload # 启动服务 sudo systemctl start raven-blog # 设置开机自启 sudo systemctl enable raven-blog # 检查状态 sudo systemctl status raven-blog ``` 5. **配置 Nginx 反向代理** 创建 Nginx 配置文件: ```bash sudo nano /etc/nginx/sites-available/raven-blog ``` 添加以下内容: ``` server { listen 80; server_name blog.yourdomain.com; location / { proxy_pass http://localhost:8080; 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; } location /static/ { alias /path/to/upload/raven-blog/static/; expires 7d; } } ``` 启用站点并重启 Nginx: ```bash sudo ln -s /etc/nginx/sites-available/raven-blog /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx ``` 6. **配置 SSL 证书 (可选)** ```bash sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d blog.yourdomain.com ``` ### Docker 部署 ```bash # 构建镜像 docker build -t raven-blog . # 运行容器 docker run -d -p 8080:8080 --name raven-blog raven-blog ``` ### 传统部署 1. 编译应用 ```bash go build -o blog ``` 2. 运行应用 ```bash ./blog ``` ## 贡献指南 1. Fork 本仓库 2. 创建你的功能分支 (`git checkout -b feature/amazing-feature`) 3. 提交你的更改 (`git commit -m 'Add some amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 创建一个 Pull Request ## 许可证 本项目采用 MIT 许可证 - 详情请参阅 [LICENSE](LICENSE) 文件 ## 联系我们 - 项目维护者: 渡鸦 - 电子邮件: [your-email@example.com](mailto:your-email@example.com) - 社交媒体: [GitHub](https://github.com/your-username) | [微博](https://weibo.com/your-username) --- 🔥 如果你喜欢这个项目,请给它点一个 star ⭐