Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add s3backup documentation #36604

Open
wants to merge 1 commit into
base: next
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions source/_integrations/s3backup.markdown
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
title: S3 Backup
description: Instructions on how to setup S3 backup accounts to be used with backups.
ha_release: 2025.2
ha_category:
- Backup
ha_iot_class: Local Polling
ha_config_flow: true
ha_domain: s3backup
ha_codeowners:
- '@mkohns'
ha_integration_type: service
---

This integration allows you to use S3 compatible storage accounts with Home Assistant Backups.

{% include integrations/config_flow.md %}

{% configuration_basic %}
S3 endpoint URL:
description: "The http(s) URL of your S3 storage endpoint without bucket name"
Access Key:
description: "The access key provided by your S3 storage provider"
Secret Key:
description: "The secret key provided by your S3 storage provider"
Bucket Name:
description: "The bucket name your credentials have access to"
{% endconfiguration_basic %}
Comment on lines +19 to +28
Copy link
Contributor

@coderabbitai coderabbitai bot Dec 29, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Enhance configuration documentation

The configuration section could be improved by:

  1. Adding optional parameters (e.g., region, path prefix)
  2. Providing more detailed parameter descriptions
  3. Including configuration examples
 {% configuration_basic %}
 S3 endpoint URL:
-  description: "The http(s) URL of your S3 storage endpoint without bucket name"
+  description: "The http(s) URL of your S3 storage endpoint without bucket name (e.g., https://s3.amazonaws.com for AWS S3)"
 Access Key:
-  description: "The access key provided by your S3 storage provider"
+  description: "The access key (AWS Access Key ID) provided by your S3 storage provider"
 Secret Key:
-  description: "The secret key provided by your S3 storage provider"
+  description: "The secret key (AWS Secret Access Key) provided by your S3 storage provider"
 Bucket Name:
-  description: "The bucket name your credentials have access to"
+  description: "The name of the S3 bucket where backups will be stored"
+Region:
+  description: "(Optional) The S3 region name (e.g., us-east-1). Required for some S3 providers"
+Path Prefix:
+  description: "(Optional) A prefix to add to backup files (e.g., 'backups/')"
 {% endconfiguration_basic %}

+## Example Configuration
+
+### Amazon S3
+
+1. Create an S3 bucket in your AWS account
+2. Create an IAM user with appropriate permissions
+3. Configure the integration with:
+   - Endpoint URL: `https://s3.amazonaws.com`
+   - Region: `us-east-1` (or your chosen region)
+   - Access Key and Secret Key from your IAM user
+   - Your bucket name
+
+### MinIO
+
+1. Set up a MinIO server
+2. Create a bucket and access credentials
+3. Configure the integration with:
+   - Endpoint URL: Your MinIO server URL
+   - Access Key and Secret Key from MinIO
+   - Your bucket name
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{% configuration_basic %}
S3 endpoint URL:
description: "The http(s) URL of your S3 storage endpoint without bucket name"
Access Key:
description: "The access key provided by your S3 storage provider"
Secret Key:
description: "The secret key provided by your S3 storage provider"
Bucket Name:
description: "The bucket name your credentials have access to"
{% endconfiguration_basic %}
{% configuration_basic %}
S3 endpoint URL:
description: "The http(s) URL of your S3 storage endpoint without bucket name (e.g., https://s3.amazonaws.com for AWS S3)"
Access Key:
description: "The access key (AWS Access Key ID) provided by your S3 storage provider"
Secret Key:
description: "The secret key (AWS Secret Access Key) provided by your S3 storage provider"
Bucket Name:
description: "The name of the S3 bucket where backups will be stored"
Region:
description: "(Optional) The S3 region name (e.g., us-east-1). Required for some S3 providers"
Path Prefix:
description: "(Optional) A prefix to add to backup files (e.g., 'backups/')"
{% endconfiguration_basic %}
## Example Configuration
### Amazon S3
1. Create an S3 bucket in your AWS account
2. Create an IAM user with appropriate permissions
3. Configure the integration with:
- Endpoint URL: `https://s3.amazonaws.com`
- Region: `us-east-1` (or your chosen region)
- Access Key and Secret Key from your IAM user
- Your bucket name
### MinIO
1. Set up a MinIO server
2. Create a bucket and access credentials
3. Configure the integration with:
- Endpoint URL: Your MinIO server URL
- Access Key and Secret Key from MinIO
- Your bucket name

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not AWS related. It is for all S3 compatible storage providers

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mkohns Thanks for clarifying! Understood that the integration is intended for all S3-compatible providers rather than being AWS-specific. If you’d like to remove or generalize the AWS mention in any examples, just let me know. Otherwise, it could still serve as a helpful reference for users who happen to use AWS.


## Known Limitations

- none

## Removing the integration

This integration follows standard integration removal. No extra steps are required.

{% include integrations/remove_device_service.md %}

## Troubleshooting

{% details "Authentication failure" %}

Make sure your credentials (access key/secret key) have read/write access to your bucket.

{% enddetails %}
Loading