{"id":28517281,"url":"https://github.com/mikesplain/hassio-s3-backup","last_synced_at":"2026-05-13T23:31:59.374Z","repository":{"id":292412169,"uuid":"980829358","full_name":"mikesplain/hassio-s3-backup","owner":"mikesplain","description":"Generic S3 backup","archived":false,"fork":false,"pushed_at":"2025-10-08T00:23:14.000Z","size":46,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-13T10:28:15.393Z","etag":null,"topics":["custom-component","home-assistant","homeassistant","python","s3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mikesplain.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-09T19:38:03.000Z","updated_at":"2025-05-12T14:41:58.000Z","dependencies_parsed_at":"2025-05-09T20:44:41.925Z","dependency_job_id":null,"html_url":"https://github.com/mikesplain/hassio-s3-backup","commit_stats":null,"previous_names":["mikesplain/hassio-s3-backup"],"tags_count":0,"template":false,"template_full_name":"ludeeus/integration_blueprint","purl":"pkg:github/mikesplain/hassio-s3-backup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikesplain%2Fhassio-s3-backup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikesplain%2Fhassio-s3-backup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikesplain%2Fhassio-s3-backup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikesplain%2Fhassio-s3-backup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mikesplain","download_url":"https://codeload.github.com/mikesplain/hassio-s3-backup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikesplain%2Fhassio-s3-backup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280906491,"owners_count":26411400,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-25T02:00:06.499Z","response_time":81,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["custom-component","home-assistant","homeassistant","python","s3"],"created_at":"2025-06-09T05:01:09.528Z","updated_at":"2025-10-25T04:36:15.133Z","avatar_url":"https://github.com/mikesplain.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![hacs_badge](https://img.shields.io/badge/HACS-Custom-blue.svg)](https://github.com/hacs/integration)\r\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/mikesplain/hassio-s3-backup)](https://github.com/mikesplain/hassio-s3-backup/releases)\r\n[![GitHub](https://img.shields.io/github/license/mikesplain/hassio-s3-backup)](LICENSE)\r\n[![Validate](https://github.com/mikesplain/hassio-s3-backup/actions/workflows/validate.yml/badge.svg)](https://github.com/mikesplain/hassio-s3-backup/actions/workflows/validate.yml)\r\n\r\n# Home Assistant Generic S3 Backup\r\n\r\nA Home Assistant custom integration that enables storing and managing Home Assistant backups on any S3-compatible object storage provider (e.g., Cloudflare R2, Wasabi, MinIO, DigitalOcean Spaces, and more). This is an alternative to the built-in AWS S3 integration, supporting a wider range of providers.\r\n\r\n---\r\n\r\n## Features\r\n\r\n- Upload Home Assistant backups to S3-compatible storage\r\n- Restore backups directly from your S3 bucket\r\n- Tested with Cloudflare R2 (other providers should work if S3 API compatible)\r\n- Easy configuration via the Home Assistant UI\r\n\r\n---\r\n\r\n## Installation\r\n\r\n### HACS (Recommended)\r\n1. In Home Assistant, go to **HACS \u003e Integrations**.\r\n2. Click the three dots (⋮) in the top right and choose **Custom repositories**.\r\n3. Add this repository URL and select **Integration** as the category.\r\n4. Search for `Generic S3 Backup` in HACS and install.\r\n5. Restart Home Assistant.\r\n\r\n### Manual\r\n1. Download this repository as a ZIP file and extract.\r\n2. Copy the `custom_components/hassio_s3_backup` folder into your Home Assistant `custom_components` directory.\r\n3. Restart Home Assistant.\r\n\r\n---\r\n\r\n## Configuration\r\n\r\n1. In Home Assistant, go to **Settings \u003e Devices \u0026 Services \u003e Integrations**.\r\n2. Click **Add Integration** and search for `Generic S3 Backup`.\r\n3. Enter the following details for your S3-compatible provider:\r\n   - **Access Key ID**: Your S3 API access key\r\n   - **Secret Access Key**: Your S3 API secret\r\n   - **Bucket Name**: The name of your bucket (must exist and be writable)\r\n   - **Endpoint URL**: The provider’s S3 endpoint (e.g., `https://\u003caccountid\u003e.r2.cloudflarestorage.com` for Cloudflare R2)\r\n4. Complete the setup. The integration will verify your credentials and bucket access.\r\n\r\n---\r\n\r\n## Usage\r\n\r\n- Backups created in Home Assistant will be uploaded to your S3 bucket automatically.\r\n- You can restore backups directly from the S3 bucket via the Home Assistant UI.\r\n- All backup management (list, download, delete) is available through the standard Home Assistant backup interface.\r\n\r\n---\r\n\r\n## Troubleshooting\r\n\r\n- **Cannot connect to endpoint**: Double-check your endpoint URL and network connectivity.\r\n- **Invalid credentials**: Ensure your access key and secret are correct and have permissions for the bucket.\r\n- **Invalid bucket name**: The bucket must already exist and be writable by the provided credentials.\r\n\r\nCheck Home Assistant logs for detailed error messages.\r\n\r\n---\r\n\r\n## Supported Providers\r\n\r\n- Cloudflare R2 (tested)\r\n- Any provider supporting the S3 API (Wasabi, DigitalOcean Spaces, MinIO, etc.)\r\n\r\nIf you successfully use another provider, please open an issue or PR to update this list!\r\n\r\n---\r\n\r\n## License\r\n\r\nMIT License. See [LICENSE](LICENSE) for details.\r\n\r\n---\r\n\r\n## Credits\r\n\r\nCreated by [mikesplain](https://github.com/mikesplain). Inspired by the Home Assistant integration blueprint and AWS S3 backup integration.\r\n\r\n---\r\n\r\n## Need Help?\r\n\r\nOpen an issue on the [GitHub repository](https://github.com/mikesplain/hassio-s3-backup/issues) for support or feature requests.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikesplain%2Fhassio-s3-backup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmikesplain%2Fhassio-s3-backup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikesplain%2Fhassio-s3-backup/lists"}