File size: 5,474 Bytes
a1b4689
 
 
 
 
 
 
 
 
 
 
5d4c685
7701176
5d4c685
7701176
5d4c685
7701176
5d4c685
7701176
5d4c685
 
 
 
 
 
7701176
5d4c685
7701176
5d4c685
7701176
5d4c685
 
 
 
 
 
7701176
 
5d4c685
7701176
5d4c685
7701176
5d4c685
 
7701176
5d4c685
 
 
 
 
7701176
5d4c685
 
 
7701176
5d4c685
7701176
5d4c685
7701176
5d4c685
7701176
5d4c685
7701176
5d4c685
7701176
5d4c685
 
 
 
7701176
5d4c685
 
7701176
5d4c685
 
7701176
 
5d4c685
7701176
5d4c685
 
 
7701176
5d4c685
 
7701176
 
5d4c685
7701176
5d4c685
 
 
 
7701176
5d4c685
7701176
5d4c685
 
 
 
7701176
5d4c685
 
 
 
7701176
5d4c685
 
 
 
7701176
5d4c685
7701176
5d4c685
7701176
5d4c685
 
 
7701176
5d4c685
 
 
7701176
5d4c685
7701176
5d4c685
 
 
 
7701176
5d4c685
7701176
5d4c685
 
 
 
 
7701176
 
5d4c685
7701176
5d4c685
 
 
 
7701176
5d4c685
 
 
 
7701176
5d4c685
 
 
 
7701176
5d4c685
 
 
7701176
5d4c685
7701176
 
5d4c685
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7701176
 
5d4c685
7701176
5d4c685
 
 
 
7701176
5d4c685
 
 
 
7701176
5d4c685
 
 
7701176
5d4c685
7701176
5d4c685
 
 
 
 
 
 
7701176
5d4c685
7701176
5d4c685
7701176
5d4c685
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
---
title: WordPress with SQLite
emoji: 🌐
colorFrom: blue
colorTo: purple
sdk: docker
sdk_version: "4.0"
app_file: app.py
pinned: false
---

# WordPress with SQLite for Hugging Face Spaces

这是一个专为 Hugging Face Spaces 设计的 WordPress 项目,使用 SQLite 数据库和 GitHub 自动备份功能。

## 🚀 快速部署到 Hugging Face Space

### 1. 创建 Hugging Face Space

1. 访问 [Hugging Face Spaces](https://huggingface.co/spaces)
2. 点击 "Create new Space"
3. 选择以下配置:
   - **SDK**: `Docker`
   - **Hardware**: `CPU basic` (推荐) 或更高
   - **Visibility**: 根据需要选择

### 2. 上传项目文件

将以下文件上传到你的 Space:
```
Dockerfile
app.py
requirements.txt
config/wp_php.ini
.dockerignore (可选)
spaces.yml (可选)
```

### 3. 配置环境变量 (可选 - 用于GitHub备份)

在 Space 的 Settings 页面添加以下环境变量:

- `GITHUB_TOKEN`: 你的 GitHub Personal Access Token
- `GITHUB_REPO`: GitHub 仓库路径 (格式: `username/repository-name`)

#### 创建 GitHub Token:
1. 访问 GitHub Settings > Developer settings > Personal access tokens
2. 创建新 token,需要以下权限:
   - `repo` (完整仓库访问权限)
   - `contents:write` (写入仓库内容)

#### 准备 GitHub 仓库:
1. 创建一个新的 GitHub 仓库用于存储备份
2. 在仓库中创建 `backups` 文件夹

### 4. 启动 Space

保存设置后,Space 会自动构建和启动。首次构建需要 5-10 分钟。

## 🏠 本地开发部署

如果你想在本地开发环境中运行此项目:

### 使用 Docker Compose

```bash
# 克隆或下载项目
git clone <your-repo-url>
cd wordpress-docker-compose-master

# 构建并启动
docker-compose up --build

# 或者在后台运行
docker-compose up -d --build
```

### 使用 Docker 直接构建

```bash
# 构建镜像
docker build -t wordpress-sqlite .

# 运行容器
docker run -p 7860:7860 wordpress-sqlite
```

### 本地开发配置

- 数据持久化:使用 Docker volumes 保存数据
- 主题开发:可以挂载本地主题目录
- 插件开发:可以挂载本地插件目录
- 配置文件:可以修改 `config/wp_php.ini`

## 🔧 功能特性

### ✅ SQLite 数据库
- 无需外部数据库服务
- 数据存储在 `/var/www/html/wp-content/database/`
- 自动配置 SQLite Integration 插件

### ✅ GitHub 自动备份
- **启动时恢复**: Space 重启时自动从 GitHub 加载最近 30 天的备份
- **手动备份**: 可以手动运行备份脚本
- **备份内容**: SQLite 数据库 + 上传文件

### ✅ Hugging Face Space 优化
- 端口 7860 (HF Space 标准端口)
- 内存优化配置
- 健康检查支持

## 📖 使用说明

### 访问 WordPress

**Hugging Face Space:**
- **前台**: `https://your-space-name.hf.space/`
- **后台**: `https://your-space-name.hf.space/wp-admin/`

**本地开发:**
- **前台**: `http://localhost:7860/`
- **后台**: `http://localhost:7860/wp-admin/`

### 初次设置

1. 访问你的 Space URL
2. 按照 WordPress 安装向导完成设置
3. 创建管理员账户
4. 开始使用 WordPress

### 手动备份到 GitHub

如果配置了 GitHub 环境变量,可以手动创建备份:

```bash
# 在 Space 的终端中运行
/usr/local/bin/backup-wordpress.sh
```

## 🔍 故障排除

### 1. Space 无法启动
- 检查 Dockerfile 语法
- 确认端口设置为 7860
- 查看构建日志中的错误信息

### 2. WordPress 显示 403 错误
- 等待容器完全启动 (1-2 分钟)
- 检查健康检查状态
- 确认 SQLite 插件正确安装

### 3. GitHub 备份失败
- 验证 `GITHUB_TOKEN``GITHUB_REPO` 环境变量
- 确认 GitHub Token 有正确权限
- 检查仓库中是否存在 `backups` 文件夹

### 4. 数据丢失
- Space 重启时会自动尝试从 GitHub 恢复备份
- 手动恢复:将备份文件解压到相应目录

## 📁 项目结构

```
.
├── Dockerfile                    # Docker 构建文件 (HF Space)
├── app.py                       # HF Space 入口文件
├── requirements.txt             # Python 依赖 (HF Space)
├── spaces.yml                   # HF Space 配置
├── README.md                    # 项目说明
├── DEPLOYMENT_GUIDE.md          # 部署指南
├── docker-compose.yml           # Docker Compose (SQLite)
├── docker-compose.local.yml     # 本地开发配置
├── docker-compose.mysql.yml     # MySQL 版本 (备份)
├── config/
│   ├── wp_php.ini              # PHP 配置
│   └── pma_php.ini             # phpMyAdmin 配置 (MySQL版本)
├── .dockerignore               # Docker 忽略文件
└── env.example                 # 环境变量示例 (MySQL版本)
```

## 🔒 安全注意事项

1. **GitHub Token 安全**:
   - 使用最小权限原则
   - 定期轮换 Token
   - 不要在代码中硬编码 Token

2. **WordPress 安全**:
   - 使用强密码
   - 定期更新 WordPress 和插件
   - 限制管理员访问

3. **备份安全**:
   - 备份仓库设为私有
   - 定期检查备份完整性

## 📝 更新日志

- **v1.0.0**: 初始版本,支持 SQLite 和 GitHub 备份

## 🤝 贡献

欢迎提交 Issue 和 Pull Request!

## 📄 许可证

本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。

---

**注意**: 这是一个为 Hugging Face Spaces 特别优化的 WordPress 部署方案。如果你需要在其他平台部署,可能需要调整配置。