{"id":24848709,"url":"https://github.com/minvs1/ham","last_synced_at":"2026-05-05T19:31:38.892Z","repository":{"id":252622109,"uuid":"840961171","full_name":"minvs1/ham","owner":"minvs1","description":"Resources manager for Home Assistant, focused on Kubernetes","archived":false,"fork":false,"pushed_at":"2025-04-15T08:18:01.000Z","size":58,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-04T15:38:46.362Z","etag":null,"topics":["custom-components","home-assistant","kubernetes"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/minvs1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"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":"2024-08-11T08:15:43.000Z","updated_at":"2025-04-15T08:18:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"2317ff6c-e56c-447e-b7c5-b636084870ef","html_url":"https://github.com/minvs1/ham","commit_stats":null,"previous_names":["minvs1/hacs-plugins","minvs1/ham"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/minvs1/ham","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minvs1%2Fham","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minvs1%2Fham/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minvs1%2Fham/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minvs1%2Fham/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/minvs1","download_url":"https://codeload.github.com/minvs1/ham/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/minvs1%2Fham/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32664783,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-05T11:29:49.557Z","status":"ssl_error","status_checked_at":"2026-05-05T11:29:48.587Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-components","home-assistant","kubernetes"],"created_at":"2025-01-31T12:16:49.463Z","updated_at":"2026-05-05T19:31:38.873Z","avatar_url":"https://github.com/minvs1.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ham\n\nHAM (HA Addon Manager) is a simple container that can be used as an init container to automatically download, install and update Home Assistant lovelace resources and custom components.\n\n## Getting Started\n\n### Create a components.json file\n\nYour components.json file defines which plugins to install and how they should be loaded. Here's an example using a ConfigMap:\n\n```yaml\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: custom-components-config\ndata:\n  components.json: |\n    [\n      {\n        \"name\": \"vacuum-card\",\n        \"url\": \"https://github.com/denysdovhan/vacuum-card/releases/download/v2.10.1/vacuum-card.js\",\n        \"version\": \"2.10.1\",\n        \"type\": \"file\",\n        \"install_type\": \"www\"\n      },\n      {\n        \"name\": \"browser-mod\",\n        \"url\": \"https://github.com/thomasloven/hass-browser_mod\",\n        \"version\": \"2.3.3\",\n        \"type\": \"git\",\n        \"install_type\": \"custom_components\",\n        \"remote_resource_path\": \"custom_components/browser_mod\"\n      },\n      {\n        \"name\": \"lovelace-auto-entities\",\n        \"url\": \"https://github.com/thomasloven/lovelace-auto-entities\",\n        \"version\": \"1.13.0\",\n        \"type\": \"git\",\n        \"install_type\": \"www\",\n        \"remote_resource_path\": \"auto-entities.js\"\n      }\n    ]\n```\n\n### Components Configuration\n\nEach component in components.json can have the following properties:\n\n- `name` (required): Unique identifier for the component\n- `url` (required): URL to download the component from\n- `version` (required): Version of the component for update tracking\n- `type` (optional): Type of the file (\"file\", \"zip\", or \"git\"). If not specified, will be auto-detected from the URL\n- `install_type` (optional): Where to install the component (\"www\" or \"custom_components\"). Defaults to \"www\"\n- `remote_resource_path` (optional): Path to the resource on remote location. The file that should be added to lovelace_resources.yaml or dir created in `/config/custom_components`. Required for non-file type components in www directory.\n\n#### Installation Types and Handling\n\n- **Single Files (JS, CSS)**\n  - Installed to `/config/www/`\n  - For www installations, filename is automatically used as lovelace_resource if not specified\n\n- **ZIP Files**\n  - Extracted to `/config/www/[name]/` or `/config/custom_components/[name]/`\n  - For www installations, must specify lovelace_resource pointing to the main JS file\n\n- **Git Repositories**\n  - Cloned and installed to `/config/www/[name]/` or `/config/custom_components/[name]/`\n  - Use repo_path to specify which subdirectory contains the component\n  - For www installations, must specify lovelace_resource\n\n### Update your Home Assistant configuration\n\nAdd the following to your Home Assistant configuration:\n\n```yaml\nlovelace:\n  mode: yaml\n  resources: !include lovelace_resources.yaml\n```\n\n### Add Init Container\n\n```yaml\ninitContainers:\n  - name: install-ham\n    image: \"ghcr.io/minvs1/ham:latest\"\n    volumeMounts:\n      - name: config\n        mountPath: /config\n      - name: custom-components-config\n        mountPath: /config/ham/components.json\n        subPath: components.json\n```\n\n## Example Deployment\n\n```yaml\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  labels:\n    app: home-assistant\n  name: home-assistant\nspec:\n  template:\n    metadata:\n      labels:\n        app: home-assistant\n    spec:\n      initContainers:\n        - name: install-hacs-plugins\n          image: \"ghcr.io/minvs1/hacs-plugins:latest\"\n          volumeMounts:\n            - name: config\n              mountPath: /config\n            - name: custom-components-config\n              mountPath: /config/ham/components.json\n              subPath: components.json\n      containers:\n        - name: home-assistant\n          image: \"ghcr.io/home-assistant/home-assistant:2024.7.1\"\n          volumeMounts:\n            - name: config\n              mountPath: /config\n      volumes:\n        - name: config\n          persistentVolumeClaim:\n            claimName: home-assistant-config-pvc\n        - name: custom-components-config\n          configMap:\n            name: custom-components-config\n```\n\n## Version Management\n\nThe container maintains a lock file (`components.json.lock`) to track installed versions. Components are only downloaded when:\n- They haven't been installed before\n- A new version is specified in components.json\n\n## Tests\n\n```bash\ndocker build -f Dockerfile.test -t ham-tests .\ndocker run --rm ham-tests\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminvs1%2Fham","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fminvs1%2Fham","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminvs1%2Fham/lists"}