Skip to content

About

A custom component to enable using S3 compatible endpoints for home assistant backups

Topics

Resources

Stars

72 stars

Watchers

2 watching

Forks

Latest commit

 

History

54 Commits

Folders and files

Repository files navigation

hacs_badge GitHub release HA integration usage

S3 Compatible for Home Assistant

A Home Assistant custom integration to support uploading backups to S3 compatible endpoints. This is a slight modification of the official AWS S3 integration.

Known Working Services

Installation

You can install this component in two ways: via HACS or manually.

Option A: Installing via HACS

  1. Open HACS
  2. Search for S3 Compatible
  3. Expand the Available for download section
  4. Select S3 Compatible
  5. Click Download in the lower right of the details page
  6. Restart Home Assistant
  7. Setup a new backup target location
  8. Once finished, it will show up as an available backup target

Option B: Manual installation (custom_component)

  1. Copy the custom_components/s3_compatible directory to your custom_components directory
  2. Restart Home Assistant
  3. Go to "Settings->Devices & Services".
  4. Click "+ Add Integration".
  5. Search for "S3 Compatible"
  6. Select the integration and Follow setup workflow
  7. Once finished, it will show up as an available backup target

Upload performance

Large backups are uploaded in parts (S3 multipart upload). Two optional settings, in the collapsed Upload performance section of the setup and Reconfigure forms, control how fast this goes and how much memory it uses:

  • Part size (5–256 MiB, default 20): the size of each uploaded part.
  • Parts uploaded at once (1–8, default 1): how many parts are sent in parallel.

Each part is held in memory while it uploads, so peak memory use is roughly (parts uploaded at once + 1) × part size. The defaults keep the original behaviour (about 40 MB) and are safe on any hardware.

Hardware / connection Suggested settings Approx. peak memory
Raspberry Pi or 1–2 GB RAM, or a slow upload connection 20 MiB × 1 (default) ~40 MB
4 GB+ RAM (e.g. HA Green, Yellow, mini PC) with a good upload 32 MiB × 3 ~130 MB
8 GB+ RAM with a fast upload (hundreds of Mbit/s or more) 64 MiB × 4 ~320 MB

Notes:

  • More parts in parallel helps most on fast connections, where a single connection cannot fill the line. On a slow connection it will not make the upload finish sooner, and it uses more of your bandwidth while the backup uploads.
  • For Storj, 64 MiB parts match Storj's segment size and are the most efficient choice.
  • If your backup is encrypted, Home Assistant encrypts it while uploading, so CPU speed can become the limit before your connection does.

My other Home Assistant custom components

  • Setup Codes - Integrated database of Matter and HomeKit device Setup Codes
  • Matter Extensions - Provide additional Matter functionality for devices that Home Assistant does not provide yet

About

A custom component to enable using S3 compatible endpoints for home assistant backups

Topics

Resources

Stars

72 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages