CatPtain commited on
Commit
bf3ada3
·
verified ·
1 Parent(s): 17bc34e

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +140 -135
README.md CHANGED
@@ -8,204 +8,209 @@ sdk_version: "4.0"
8
  app_file: app.py
9
  pinned: false
10
  ---
 
11
 
12
- # WordPress with SQLite for Hugging Face Spaces
13
 
14
- 这是一个专为 Hugging Face Spaces 设计的 WordPress 项目,使用 SQLite 数据库和 GitHub 自动备份功能。
15
 
16
- ## 🚀 快速部署到 Hugging Face Space
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
  ### 1. 创建 Hugging Face Space
19
 
20
  1. 访问 [Hugging Face Spaces](https://huggingface.co/spaces)
21
  2. 点击 "Create new Space"
22
- 3. 选择以下配置:
23
- - **SDK**: `Docker`
24
- - **Hardware**: `CPU basic` (推荐) 或更高
25
- - **Visibility**: 根据需要选择
26
 
27
- ### 2. 上传项目文件
 
 
28
 
29
- 将以下文件上传到你的 Space:
30
  ```
31
- Dockerfile
32
- app.py
33
- requirements.txt
34
- config/wp_php.ini
35
- .dockerignore (可选)
36
- spaces.yml (可选)
37
  ```
38
 
39
- ### 3. 配置环境变量 (可选 - 用于GitHub备份)
40
 
41
- Space Settings 页面添加以下环境变量:
42
 
43
- - `GITHUB_TOKEN`: 你的 GitHub Personal Access Token
44
- - `GITHUB_REPO`: GitHub 仓库路径 (格式: `username/repository-name`)
45
 
46
- #### 创建 GitHub Token:
47
- 1. 访问 GitHub Settings > Developer settings > Personal access tokens
48
- 2. 创建新 token,需要以下权限:
49
- - `repo` (完整仓库访问权限)
50
- - `contents:write` (写入仓库内容)
51
 
52
- #### 准备 GitHub 仓库:
53
- 1. 创建一个新的 GitHub 仓库用于存储备份
54
- 2. 在仓库中创建 `backups` 文件夹
55
 
56
- ### 4. 启动 Space
57
 
58
- 保存设置后,Space 会自动构建和启动。首次构建需要 5-10 分钟。
59
 
60
- ## 🏠 本地开发部署
 
 
61
 
62
- 如果你想在本地开发环境中运行此项目:
 
 
63
 
64
- ### 使用 Docker Compose
65
 
66
- ```bash
67
- # 克隆或下载项目
68
- git clone <your-repo-url>
69
- cd wordpress-docker-compose-master
70
 
71
- # 构建并启动
72
- docker-compose up --build
 
 
 
73
 
74
- # 或者在后台运行
75
- docker-compose up -d --build
76
- ```
77
 
78
- ### 使用 Docker 直接构建
 
 
 
 
79
 
80
- ```bash
81
- # 构建镜像
82
- docker build -t wordpress-sqlite .
83
 
84
- # 运行容器
85
- docker run -p 7860:7860 wordpress-sqlite
86
- ```
87
 
88
- ### 本地开发配置
 
 
 
 
89
 
90
- - 数据持久化:使用 Docker volumes 保存数据
91
- - 主题开发:可以挂载本地主题目录
92
- - 插件开发:可以挂载本地插件目录
93
- - 配置文件:可以修改 `config/wp_php.ini`
94
 
95
- ## 🔧 功能特性
 
 
 
 
96
 
97
- ### SQLite 数据库
98
- - 无需外部数据库服务
99
- - 数据存储在 `/var/www/html/wp-content/database/`
100
- - 自动配置 SQLite Integration 插件
101
 
102
- ### GitHub 自动备份
103
- - **启动时恢复**: Space 重启时自动从 GitHub 加载最近 30 天的备份
104
- - **手动备份**: 可以手动运行备份脚本
105
- - **备份内容**: SQLite 数据库 + 上传文件
 
106
 
107
- ### Hugging Face Space 优化
108
- - 端口 7860 (HF Space 标准端口)
109
- - 内存优化配置
110
- - 健康检查支持
111
 
112
- ## 📖 使用说明
 
 
 
 
113
 
114
- ### 访问 WordPress
115
 
116
- **Hugging Face Space:**
117
- - **前台**: `https://your-space-name.hf.space/`
118
- - **后台**: `https://your-space-name.hf.space/wp-admin/`
119
 
120
- **本地开发:**
121
- - **前台**: `http://localhost:7860/`
122
- - **后台**: `http://localhost:7860/wp-admin/`
123
 
124
- ### 初次设置
 
 
125
 
126
- 1. 访问你的 Space URL
127
- 2. 按照 WordPress 安装向导完成设置
128
- 3. 创建管理员账户
129
- 4. 开始使用 WordPress
130
 
131
- ### 手动备份到 GitHub
132
 
133
- 如果配置了 GitHub 环境变量,可以手动创建备份:
 
 
 
 
 
 
 
 
 
134
 
135
  ```bash
136
- # 在 Space 的终端中运行
137
- /usr/local/bin/backup-wordpress.sh
 
 
 
138
  ```
139
 
140
- ## 🔍 故障排除
141
 
142
- ### 1. Space 无法启动
143
- - 检查 Dockerfile 语法
144
- - 确认端口设置为 7860
145
- - 查看构建日志中的错误信息
146
 
147
- ### 2. WordPress 显示 403 错误
148
- - 等待容器完全启动 (1-2 分钟)
149
- - 检查健康检查状态
150
- - 确认 SQLite 插件正确安装
151
 
152
- ### 3. GitHub 备份失败
153
- - 验证 `GITHUB_TOKEN` 和 `GITHUB_REPO` 环境变量
154
- - 确认 GitHub Token 有正确权限
155
- - 检查仓库中是否存在 `backups` 文件夹
156
 
157
- ### 4. 数据丢失
158
- - Space 重启时会自动尝试从 GitHub 恢复备份
159
- - 手动恢复:将备份文件解压到相应目录
160
 
161
- ## 📁 项目结构
162
 
163
- ```
164
- .
165
- ├── Dockerfile # Docker 构建文件 (HF Space)
166
- ├── app.py # HF Space 入口文件
167
- ├── requirements.txt # Python 依赖 (HF Space)
168
- ├── spaces.yml # HF Space 配置
169
- ├── README.md # 项目说明
170
- ├── DEPLOYMENT_GUIDE.md # 部署指南
171
- ├── docker-compose.yml # Docker Compose (SQLite)
172
- ├── docker-compose.local.yml # 本地开发配置
173
- ├── docker-compose.mysql.yml # MySQL 版本 (备份)
174
- ├── config/
175
- │ ├── wp_php.ini # PHP 配置
176
- │ └── pma_php.ini # phpMyAdmin 配置 (MySQL版本)
177
- ├── .dockerignore # Docker 忽略文件
178
- └── env.example # 环境变量示例 (MySQL版本)
179
- ```
180
 
181
- ## 🔒 安全注意事项
182
 
183
- 1. **GitHub Token 安全**:
184
- - 使用最小权限原则
185
- - 定期轮换 Token
186
- - 不要在代码中硬编码 Token
187
 
188
- 2. **WordPress 安全**:
189
- - 使用强密码
190
- - 定期更新 WordPress 和插件
191
- - 限制管理员访问
192
 
193
- 3. **备份安全**:
194
- - 备份仓库设为私有
195
- - 定期检查备份完整性
196
 
197
- ## 📝 更新日志
 
 
198
 
199
- - **v1.0.0**: 初始版本,支持 SQLite 和 GitHub 备份
200
 
201
- ## 🤝 贡献
202
 
203
- 欢迎提交 Issue Pull Request!
 
 
 
204
 
205
  ## 📄 许可证
206
 
207
- 本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。
208
 
209
  ---
210
 
211
- **注意**: 这是一个为 Hugging Face Spaces 特别��化的 WordPress 部署方案。如果你需要在其他平台部署,可能需要调整配置。
 
8
  app_file: app.py
9
  pinned: false
10
  ---
11
+ # WordPress for Hugging Face Spaces
12
 
13
+ 这是一个专门为 Hugging Face Spaces 优化的 WordPress 部署方案,采用单容器架构,使用 SQLite 数据库,并包含自动文件清理功能。
14
 
15
+ ## 🚀 特性
16
 
17
+ - **单容器部署**: 无需复杂的多容器编排
18
+ - **SQLite 数据库**: 轻量级,无需单独的数据库服务器
19
+ - **自动清理**: 自动删除超过1年的文件,保持存储空间整洁
20
+ - **性能优化**: 针对 Hugging Face Spaces 环境优化
21
+ - **安全配置**: 内置安全最佳实践
22
+ - **监控面板**: 实时查看清理统计和系统状态
23
+
24
+ ## 📋 系统要求
25
+
26
+ - Hugging Face Spaces (Docker 环境)
27
+ - 最小 2GB RAM
28
+ - 最小 10GB 存储空间
29
+
30
+ ## 🛠️ 部署步骤
31
 
32
  ### 1. 创建 Hugging Face Space
33
 
34
  1. 访问 [Hugging Face Spaces](https://huggingface.co/spaces)
35
  2. 点击 "Create new Space"
36
+ 3. 选择 "Docker" 作为 SDK
37
+ 4. 设置 Space 名称和可见性
 
 
38
 
39
+ ### 2. 上传文件
40
+
41
+ 将以下文件上传到你的 Space 仓库:
42
 
 
43
  ```
44
+ ├── Dockerfile
45
+ ├── wp-config.php
46
+ ├── monitor-cleanup.sh
47
+ ├── .dockerignore
48
+ └── README_SPACES.md
 
49
  ```
50
 
51
+ ### 3. 自动部署
52
 
53
+ Hugging Face 会自动检测 Dockerfile 并开始构建部署。
54
 
55
+ ## 🔧 配置说明
 
56
 
57
+ ### 数据库配置
 
 
 
 
58
 
59
+ - **类型**: SQLite
60
+ - **位置**: `/var/www/html/wp-content/database/wordpress.db`
61
+ - **自动备份**: 每日备份到日志目录
62
 
63
+ ### 自动清理配置
64
 
65
+ `wp-config.php` 中可以调整以下设置:
66
 
67
+ ```php
68
+ // 文件保留期限(天数)
69
+ define('FILE_RETENTION_DAYS', 365); // 1年
70
 
71
+ // 清理功能开关
72
+ define('AUTO_CLEANUP_ENABLED', true);
73
+ ```
74
 
75
+ ### 清理策略
76
 
77
+ 自动清理脚本会处理以下内容:
 
 
 
78
 
79
+ 1. **上传文件**: 删除超过1年的媒体文件
80
+ 2. **缓存文件**: 清理过期的缓存
81
+ 3. **临时文件**: 删除临时和备份文件
82
+ 4. **日志文件**: 压缩和清理旧日志
83
+ 5. **空目录**: 删除空的目录结构
84
 
85
+ ### 排除规则
 
 
86
 
87
+ 以下文件类型不会被自动删除:
88
+ - 数据库文件 (*.db, *.sql)
89
+ - 配置文件 (wp-config.php, .htaccess)
90
+ - 核心文件 (index.php)
91
+ - 当前日志文件
92
 
93
+ ## 📊 监控功能
 
 
94
 
95
+ ### 管理面板统计
 
 
96
 
97
+ 登录 WordPress 管理后台后,在仪表板可以看到:
98
+ - 最近清理记录
99
+ - 删除文件统计
100
+ - 磁盘使用情况
101
+ - 系统性能指标
102
 
103
+ ### 日志查看
 
 
 
104
 
105
+ 清理日志保存在 `/var/log/wordpress/cleanup.log`,包含:
106
+ - 清理时间和结果
107
+ - 删除的文件列表
108
+ - 系统资源使用情况
109
+ - 错误和警告信息
110
 
111
+ ## 🔒 安全特性
 
 
 
112
 
113
+ - **文件编辑禁用**: 禁止在后台编辑文件
114
+ - **XML-RPC 禁用**: 防止 XML-RPC 攻击
115
+ - **登录限制**: 限��登录尝试次数
116
+ - **调试模式**: 生产环境禁用调试输出
117
+ - **文件权限**: 严格的文件权限控制
118
 
119
+ ## 性能优化
 
 
 
120
 
121
+ - **内存限制**: 256MB PHP 内存限制
122
+ - **上传限制**: 64MB 文件上传限制
123
+ - **自动保存**: 5分钟自动保存间隔
124
+ - **修订控制**: 限制文章修订版本数量
125
+ - **垃圾清理**: 30天自动清空垃圾箱
126
 
127
+ ## 🚨 故障排除
128
 
129
+ ### 常见问题
 
 
130
 
131
+ 1. **数据库连接错误**
132
+ - 检查 SQLite 插件是否正确安装
133
+ - 确认数据库目录权限正确
134
 
135
+ 2. **文件上传失败**
136
+ - 检查上传目录权限
137
+ - 确认磁盘空间充足
138
 
139
+ 3. **清理脚本不工作**
140
+ - 检查 cron 服务状态
141
+ - 查看清理日志文件
 
142
 
143
+ ### 调试模式
144
 
145
+ 如需启用调试模式,在 `wp-config.php` 中修改:
146
+
147
+ ```php
148
+ define('WP_DEBUG', true);
149
+ define('WP_DEBUG_DISPLAY', true);
150
+ ```
151
+
152
+ ### 手动清理
153
+
154
+ 如需手动执行清理:
155
 
156
  ```bash
157
+ # 进入容器
158
+ docker exec -it <container_name> /bin/bash
159
+
160
+ # 执行清理脚本
161
+ /scripts/monitor-cleanup.sh
162
  ```
163
 
164
+ ## 📈 使用建议
165
 
166
+ ### 内容管理
 
 
 
167
 
168
+ 1. **定期备份**: 虽然有自动清理,建议定期导出重要内容
169
+ 2. **媒体优化**: 上传前压缩图片,减少存储占用
170
+ 3. **插件选择**: 选择轻量级插件,避免资源密集型插件
 
171
 
172
+ ### 性能监控
 
 
 
173
 
174
+ 1. **定期检查**: 查看管理面板的清理统计
175
+ 2. **磁盘监控**: 关注磁盘使用率警告
176
+ 3. **日志分析**: 定期查看清理日志
177
 
178
+ ### 安全维护
179
 
180
+ 1. **定期更新**: 保持 WordPress 和插件更新
181
+ 2. **密码安全**: 使用强密码和双因素认证
182
+ 3. **访问控制**: 限制管理员账户数量
183
+
184
+ ## 🔄 更新和维护
185
+
186
+ ### 更新 WordPress
 
 
 
 
 
 
 
 
 
 
187
 
188
+ 由于使用 Docker 镜像,WordPress 更新需要重新构建镜像:
189
 
190
+ 1. 更新 Dockerfile 中的 WordPress 版本
191
+ 2. 重新部署 Space
 
 
192
 
193
+ ### 配置更新
 
 
 
194
 
195
+ 修改配置文件后,需要重新部署:
 
 
196
 
197
+ 1. 更新相应的配置文件
198
+ 2. 提交到 Git 仓库
199
+ 3. Hugging Face 会自动重新部署
200
 
201
+ ## 📞 支持
202
 
203
+ 如遇到问题,可以:
204
 
205
+ 1. 查看 Hugging Face Spaces 文档
206
+ 2. 检查容器日志
207
+ 3. 参考 WordPress 官方文档
208
+ 4. 在 GitHub 上提交 Issue
209
 
210
  ## 📄 许可证
211
 
212
+ 本项目遵循原项目的许可证条款。
213
 
214
  ---
215
 
216
+ **注意**: 这是一个实验性部署方案,建议在生产环境使用前进行充分测试。