From 948d786f6eabada10568db775f184ae4a080568e Mon Sep 17 00:00:00 2001 From: Connor <963408438@qq.com> Date: Tue, 13 Jan 2026 10:09:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9C=8D=E5=8A=A1=E5=99=A8?= =?UTF-8?q?=E9=83=A8=E7=BD=B2=E6=B3=A8=E6=84=8F=E4=BA=8B=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7aff01f..81d0011 100644 --- a/README.md +++ b/README.md @@ -437,6 +437,26 @@ docker pull huobao/huobao-drama:latest - ✅ 一键启动,无需安装 Go、Node.js、FFmpeg - ✅ 易于迁移和扩展 - ✅ 自动健康检查和重启 +- ✅ 自动处理文件权限,无需手动配置 + +**📝 数据持久化说明:** + +Docker 部署使用命名卷 `huobao-data` 存储数据库和上传文件: +- 数据会自动持久化,重启容器不会丢失 +- 容器内 `app` 用户自动拥有完整读写权限 +- 无需担心传统部署中的权限问题 + +如需备份数据: +```bash +# 查看卷位置 +docker volume inspect huobao-drama_huobao-data + +# 备份数据 +docker run --rm -v huobao-drama_huobao-data:/data -v $(pwd):/backup alpine tar czf /backup/huobao-data-backup.tar.gz -C /data . + +# 恢复数据 +docker run --rm -v huobao-drama_huobao-data:/data -v $(pwd):/backup alpine tar xzf /backup/huobao-data-backup.tar.gz -C /data +``` --- @@ -483,6 +503,12 @@ vim configs/config.yaml # 设置mode为production # 配置域名和存储路径 +# 创建数据目录并设置权限(重要!) +# 注意:将 YOUR_USER 替换为实际运行服务的用户名(如 www-data、ubuntu、deploy 等) +sudo mkdir -p /opt/huobao-drama/data/storage +sudo chown -R YOUR_USER:YOUR_USER /opt/huobao-drama/data +sudo chmod -R 755 /opt/huobao-drama/data + # 赋予执行权限 chmod +x huobao-drama @@ -501,12 +527,15 @@ After=network.target [Service] Type=simple -User=www-data +User=YOUR_USER WorkingDirectory=/opt/huobao-drama ExecStart=/opt/huobao-drama/huobao-drama Restart=on-failure RestartSec=10 +# 环境变量(可选) +# Environment="GIN_MODE=release" + [Install] WantedBy=multi-user.target ``` @@ -519,6 +548,37 @@ sudo systemctl start huobao-drama sudo systemctl status huobao-drama ``` +**⚠️ 常见问题:SQLite 写权限错误** + +如果遇到 `attempt to write a readonly database` 错误: + +```bash +# 1. 确认当前运行服务的用户 +sudo systemctl status huobao-drama | grep "Main PID" +ps aux | grep huobao-drama + +# 2. 修复权限(将 YOUR_USER 替换为实际用户名) +sudo chown -R YOUR_USER:YOUR_USER /opt/huobao-drama/data +sudo chmod -R 755 /opt/huobao-drama/data + +# 3. 验证权限 +ls -la /opt/huobao-drama/data +# 应该显示所有者为运行服务的用户 + +# 4. 重启服务 +sudo systemctl restart huobao-drama +``` + +**原因说明**: +- SQLite 需要对数据库文件 **和** 所在目录都有写权限 +- 需要在目录中创建临时文件(如 `-wal`、`-journal`) +- **关键**:确保 systemd 配置中的 `User` 与数据目录所有者一致 + +**常用用户名**: +- Ubuntu/Debian: `www-data`、`ubuntu` +- CentOS/RHEL: `nginx`、`apache` +- 自定义部署: `deploy`、`app`、当前登录用户 + #### 5. Nginx 反向代理 ```nginx