Add-ons as code for Home Assistant.
Declare which add-ons should be installed, how they are configured, and which
ones should be removed - all in a single YAML file you can keep in git.
Home Assistant add-ons are configured by hand in the UI. That works for one add-on, but it doesn't scale:
- Rebuilding or migrating a Home Assistant instance means re-installing and re-configuring every add-on by hand, from memory.
- There is no version history of your add-on configuration - no diff, no rollback, no review.
- Keeping several Home Assistant instances consistent is a manual chore.
AddMan is a small add-on that continuously reconciles your add-ons against a
declarative addman.yaml file:
- Installs add-ons and the repositories they come from.
- Configures them: options,
boot,watchdog,auto_update,ingress_panel, start/restart behaviour. - Removes add-ons you mark with
state: absent. - Validates every option against the add-on's own schema before applying, so a typo can't break an add-on.
Point AddMan's config directory at a git repo (e.g. with the git-pull add-on) and your entire add-on setup becomes version-controlled, reproducible infrastructure-as-code.
addman.yaml -> AddMan reconcile loop -> Home Assistant Supervisor API
(desired state) (every check_interval) (install / configure / remove)
-
Add this repository to Home Assistant:
-
Install the add-on:
-
Start AddMan. On first start it writes a default
/config/addman.yamlyou can edit. A minimal example:repositories: - https://github.com/sabeechen/hassio-google-drive-backup addons: # The key is the add-on slug. core_samba: auto_start: true cebe7a76_hassio_google_drive_backup: auto_start: true options: days_between_backups: 3 # No longer want an add-on? Declare it absent and AddMan uninstalls it. core_ssh: state: absent
See the add-on documentation for every option, secrets support, and troubleshooting.
Issues and pull requests are welcome — see CONTRIBUTING.md.
