注意:如果您是 Frappe Cloud 用户,系统会自动为您创建站点内和站点外备份:https://frappecloud.com/docs/sites/backups
前提条件
- 电子邮件账户
要接收备份成功或失败的通知邮件,请先创建一个电子邮件账户。
创建 S3 存储桶并设置访问权限
- 创建一个新的 S3 存储桶。
在存储桶设置中,启用“阻止所有公共访问”以保持数据私密。您可以根据需要启用加密、版本控制或对象锁定(请参考 Amazon 的文档)。
2. 打开身份与访问管理(IAM)。
3. 为服务“S3”创建一个新策略,允许“ListBucket”和“PutObject”操作。
或者,使用 JSON 编辑器:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::*/*",
"arn:aws:s3:::YOUR TARGET BUCKET"
],
"Condition": {
"IpAddress": {
"aws:SourceIp": "YOUR SERVER IP"
}
}
}
]
}
- 创建一个用于编程访问的新用户。
- 将您创建的策略附加到新用户。
- 复制用户的访问密钥和秘密密钥。
要自动删除旧备份或将它们移至更便宜的存储类别,请查看生命周期管理。
使用 Minio 创建 Hetzner 存储桶
大写字母是您可以自由选择的变量。在此示例中,我们使用区域 nbg1(纽伦堡)。
- 在 Hetzner 控制台
https://console.hetzner.com/projects/YOUR_PROJECT/security/s3-credentials中,创建一些 S3 访问凭证:密钥和秘密密钥。 - 安装 Minio
- 配置 Minio 以访问您的 Hetzner 存储桶:
mc alias set MY_ALIAS https://nbg1.your-objectstorage.com YOUR_S3_KEY YOUR_S3_SECRET - 创建一个启用了对象锁定的存储桶:
mc mb MY_ALIAS/BUCKET_NAME --with-lock --region nbg1。这可以确保您不会意外删除备份。 - 将对象锁定期限设置为 90 天:
mc retention set GOVERNANCE 90d --default MY_ALIAS/BUCKET_NAME - 检查所有配置是否正确:
mc retention info --json --default MY_ALIAS/BUCKET_NAME - 在S3 备份设置中输入配置:
- 端点 URL:https://nbg1.your-objectstorage.com/
- 存储桶名称:
BUCKET_NAME - 访问密钥 ID:
YOUR_S3_KEY - 访问秘密密钥:
YOUR_S3_SECRET
设置 ERPNext
- 打开S3 备份设置。
- 勾选“启用自动备份”。
- 粘贴来自 AWS 的访问密钥和秘密密钥。
- 设置一个电子邮件地址,以便在备份失败时接收通知。如果您也希望收到成功备份的邮件,请启用“发送成功备份邮件”。
- 指定您在步骤 1 中创建的存储桶名称。
- 选择您希望进行备份和上传备份的频率。范围可以从每月到每天。如果您只想手动备份,请将频率设置为“无”。
从已启用版本控制的存储桶中恢复已删除文件
- 列出所有文件版本:
mc ls -r --versions MY_ALIAS/BUCKET_NAME/ - 下载特定版本:
mc get --vid TARGET_VERSION_ID MY_ALIAS/BUCKET_NAME/20260415_162402/20260415_162402-company_frappe_cloud-database.sql.gz ~/Downloads