{"id":13586630,"url":"https://github.com/nragon/keeper","last_synced_at":"2025-12-30T18:25:10.308Z","repository":{"id":222374919,"uuid":"159374115","full_name":"nragon/keeper","owner":"nragon","description":"A service to monitor and maintaining MQTT and HomeAssistant","archived":false,"fork":false,"pushed_at":"2019-09-26T15:30:09.000Z","size":84,"stargazers_count":28,"open_issues_count":3,"forks_count":6,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-02-13T21:36:45.947Z","etag":null,"topics":["failover","high-availability","homeassistant","keeper","mqtt","python","watchdog"],"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/nragon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2018-11-27T17:30:47.000Z","updated_at":"2024-08-01T16:32:40.256Z","dependencies_parsed_at":null,"dependency_job_id":"d5bbf36c-09f2-4d03-80cc-84ce1b1ac8b4","html_url":"https://github.com/nragon/keeper","commit_stats":null,"previous_names":["nragon/keeper"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nragon%2Fkeeper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nragon%2Fkeeper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nragon%2Fkeeper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nragon%2Fkeeper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nragon","download_url":"https://codeload.github.com/nragon/keeper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247707719,"owners_count":20982831,"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","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":["failover","high-availability","homeassistant","keeper","mqtt","python","watchdog"],"created_at":"2024-08-01T15:05:41.841Z","updated_at":"2025-12-30T18:25:10.245Z","avatar_url":"https://github.com/nragon.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Welcome to Keeper\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n[Keeper](https://github.com/nragon/keeper) is an open source service manager. Currently, monitors home assistant service and mqtt services.\nMQTT service is monitored by checking connections to the service and home assistant is monitored using an heartbeating mechanism. Through MQTT we exchange heartbeat messages with home assistant in order to determine if its running.\nEvery 3 missed messages between [Keeper](https://github.com/nragon/keeper) and home assistant, [Keeper](https://github.com/nragon/keeper) will attempt to restart home assistant. Then, if after 3 restarts home assistant still not responding, the system is rebooted.\nIn MQTT case, it's only performed a service restart every 3 missed connections\n\n# Table of Contents\n- [Installation](#installation)\n- [Configuration](#configuration)\n- [Home Assistant](#homeassistant)\n    - [systemd](#systemd)\n    - [Hass.io](#hassio)\n- [Contributing](#contributing)\n- [Licensing](#licensing)\n\n# Installation\n## systemd\n```` \ncurl -sSL https://raw.githubusercontent.com/nragon/keeper/master/setup/systemd/setup | bash\n````\n\n## Hass.io\nFollow instructions on how to install third party add-ons [here](https://www.home-assistant.io/hassio/installing_third_party_addons/).\nUse the following URL when required:\n````\nhttps://github.com/nragon/keeper/tree/master/setup/hassio\n````\n\n# Configuration\nYou can find a set of properties in a json file inside [config](config) directory that can be tuned and configured according with you own settings\n\nConfiguration | Definition\n--------------| ----------\nheartbeat.interval | Interval between heartbeat message. This should match number of seconds in home assistant automation\nheartbeat.delay | Number of seconds we should wait before considering a miss heartbeat message\nheartbeat.topic | Heartbeat topic\nha.restart.command | Command to restart home assistant service\nsystem.restart.command | Command to restart system\nmqtt.broker | MQTT broker ip\nmqtt.port | MQTT broker port\nmqtt.user | MQTT user used\nmqtt.pass | MQTT user password\nmqtt.restart.command | Command to restart MQTT service\n\n# Home Assistant\nIn home assistant side we should configure an automation capable o sending heartbeat messages to [Keeper](https://github.com/nragon/keeper).\nThe number of seconds and topic are different depending on [Keeper](https://github.com/nragon/keeper) configurations\n````\n- id: keeperheartbeat\n  initial_state: \"on\"\n  trigger:\n    platform: time\n    seconds: \"/\u003cnumberofseconds\u003e\"\n  action:\n    service: mqtt.publish\n    data:\n      topic: \"\u003cheartbeattopic\u003e\"\n      payload: \"1\"\n````\n# Contributing\nPull requests and issues on [github](https://github.com/nragon/keeper) are welcome. Feel free to suggest any improvement.\n\n# Licensing\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnragon%2Fkeeper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnragon%2Fkeeper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnragon%2Fkeeper/lists"}