本指南说明了如何为 Discourse 配置自动备份,包括在本地服务器和 S3 兼容存储上的存储选项。
了解如何为您的 Discourse 平台设置自动备份。
本指南涵盖了配置自动备份、将其存储在本地服务器或 S3 兼容存储上,以及管理存储保留选项(如 Amazon Glacier)。
配置自动备份
- 导航到
/admin设置。 - 选择 Backup (备份) 部分。
- 将
backup_frequency设置为您想要的间隔天数。默认值为7(每周)。设置为1进行每日备份,或设置为0以禁用自动备份。最大值为30。
backup_frequency100%75%50%
附加备份设置
backup_time_of_day— 备份运行的每日时间 (UTC)。默认值:3:30。backup_with_uploads— 在计划的备份中包含上传文件。默认值: 已启用。禁用此项将仅备份数据库。maximum_backups— 要保留的最大备份数。旧的备份会自动删除。默认值:5。remove_older_backups— 删除早于指定天数的备份。留空表示禁用。
将备份存储在本地服务器上
默认情况下,备份存储在您的本地服务器上。对于自托管实例,请在 /var/discourse/shared/standalone/backups/default 访问它们。
将备份存储在 S3 兼容存储上
使用管理面板
- 创建一个 S3 存储桶 (bucket)。
- 在管理面板中设置
s3_backup_bucket。
- 请遵循 设置 S3 上传 中的步骤。
- 配置
s3_access_key_id、s3_secret_access_key和s3_region。 - 将
backup_location设置为 “S3”。

警告
将备份和常规上传存储在相同的存储桶和文件夹中已不再受支持,并且将无法工作。
s3_backup_bucket路径仅应用于备份。如果您需要使用包含其他文件的存储桶,请确保在配置s3_backup_bucket设置时提供一个前缀(示例:my-awesome-bucket/backups),并确保带有该前缀的文件是私有的。
从现在起,所有备份都将上传到 S3,而不再存储在本地。本地存储将仅用于备份和恢复期间的临时文件。
转到管理仪表板中的 Backups (备份) 选项卡以浏览备份——您可以随时下载它们以进行手动异地备份。
在 app.yml 中使用环境变量
您还可以使用 app.yml 中的环境变量配置 S3 备份。有关更多信息,请参阅 为上传配置 S3 兼容对象存储提供商
请注意,上述文章涵盖了 app.yml 中用于备份和文件/图像上传的 S3 设置。如果您仅想将 S3 用于备份(而不是用于文件/图像上传),则可以从 app.yml 配置中省略以下参数:
DISCOURSE_USE_S3DISCOURSE_S3_CDN_URLDISCOURSE_S3_BUCKET
在这种情况下,您也无需配置 after_assets_precompile 步骤,也无需配置 CDN。
请确保包含您的存储提供商所需的所有其他参数,如文章所述。以下是一个仅激活 S3 备份的示例配置(针对 Scaleway S3):
DISCOURSE_S3_REGION: nl-ams
DISCOURSE_S3_ENDPOINT: https://s3.nl-ams.scw.cloud
DISCOURSE_S3_ACCESS_KEY_ID: my_access_key
DISCOURSE_S3_SECRET_ACCESS_KEY: my_secret_access_key
DISCOURSE_S3_BACKUP_BUCKET: my_bucket/my_folder
DISCOURSE_BACKUP_LOCATION: s3
归档到成本更低的存储
请注意,在 AWS S3 上,您还可以启用 Glacier 存储桶生命周期规则的自动迁移,以保持您的 S3 备份成本较低。其他存储提供商通常也有类似的服务。

