|
--- |
|
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 部署方案。如果你需要在其他平台部署,可能需要调整配置。 |
|
|