# Write Server - Hugo Blog Admin for Linux # 基于 Next.js 16 的 Hugo 博客管理后台 Linux 部署版本 这是一个为 Linux 服务器优化的 Hugo 博客管理后台,支持 Docker 部署和 systemd 服务管理。 ## 特性 - 完整的博客管理功能(文章、评论、友链、订阅源等) - Docker 容器化部署 - systemd 服务支持 - Nginx 反向代理配置 - 自动重启和健康检查 - 日志管理 - 备份策略 ## 快速开始 ### 方式一:Docker 部署(推荐) ```bash # 1. 克隆项目 git clone cd write-server # 2. 配置环境变量 cp .env.example .env nano .env # 编辑配置 # 3. 启动服务 docker-compose up -d # 4. 查看日志 docker-compose logs -f ``` ### 方式二:直接部署 ```bash # 1. 安装依赖 ./scripts/install.sh # 2. 配置环境变量 cp .env.example .env nano .env # 3. 启动服务 ./scripts/start.sh # 4. 设置开机自启 sudo ./scripts/setup-service.sh ``` ## 目录结构 ``` write-server/ ├── src/ # 源代码 ├── public/ # 静态资源 ├── scripts/ # 部署脚本 ├── nginx/ # Nginx 配置 ├── systemd/ # systemd 服务文件 ├── backups/ # 备份目录 ├── logs/ # 日志目录 ├── Dockerfile # Docker 镜像配置 ├── docker-compose.yml # Docker Compose 配置 ├── .env.example # 环境变量模板 └── README.md # 本文档 ``` ## 配置说明 ### 环境变量 复制 `.env.example` 为 `.env`,并填写以下配置: ```bash # 博客根目录(Hugo 项目路径) BLOG_ROOT=/path/to/your/hugo/blog # 服务端口 PORT=8016 # Artalk 评论系统 ARTALK_SERVER=https://artalk.your-domain.com ARTALK_SITE=Your Site Name # Telegram Bot(可选) TG_BOT_TOKEN=your-bot-token TG_ALLOWED_CHAT_IDS=your-chat-id # 微信公众号(可选) WECHAT_APP_ID=your-app-id WECHAT_APP_SECRET=your-app-secret # AI 配置(可选) DEEPSEEK_API_KEY=your-api-key DEEPSEEK_BASE_URL=https://api.deepseek.com DEEPSEEK_MODEL=deepseek-chat ``` ### Nginx 配置 如果需要域名访问,参考 `nginx/write-server.conf` 配置 Nginx 反向代理。 ## 管理命令 ```bash # Docker 方式 docker-compose up -d # 启动 docker-compose down # 停止 docker-compose restart # 重启 docker-compose logs -f # 查看日志 docker-compose ps # 查看状态 # systemd 方式 sudo systemctl start write-server # 启动 sudo systemctl stop write-server # 停止 sudo systemctl restart write-server # 重启 sudo systemctl status write-server # 查看状态 sudo journalctl -u write-server -f # 查看日志 ``` ## 备份与恢复 ```bash # 手动备份 ./scripts/backup.sh # 恢复备份 ./scripts/restore.sh backups/write-server-20260101.tar.gz # 自动备份(已配置 cron) crontab -l # 查看定时任务 ``` ## 更新升级 ```bash # 拉取最新代码 git pull # Docker 方式 docker-compose build --no-cache docker-compose up -d # 直接部署方式 npm install npm run build sudo systemctl restart write-server ``` ## 故障排查 ### 查看日志 ```bash # 应用日志 tail -f logs/app.log # PM2 日志(直接部署方式) pm2 logs write-server # Docker 日志 docker-compose logs -f ``` ### 常见问题 1. **端口被占用** ```bash lsof -i :8016 kill -9 ``` 2. **权限问题** ```bash sudo chown -R $USER:$USER /path/to/blog ``` 3. **Hugo 未安装** ```bash # 参考 scripts/install.sh 安装 Hugo ``` ## 安全建议 1. 使用 HTTPS(配置 SSL 证书) 2. 限制访问 IP(防火墙或 Nginx 配置) 3. 定期更新依赖 4. 启用访问日志 5. 配置 fail2ban 防暴力破解 ## 性能优化 1. 启用 Gzip 压缩 2. 配置 CDN 3. 使用 PM2 集群模式 4. 配置 Redis 缓存(可选) ## 许可证 MIT License