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