{"id":22120664,"url":"https://github.com/2boom-ua/update_check","last_synced_at":"2026-04-20T19:04:10.655Z","repository":{"id":206372044,"uuid":"716478524","full_name":"2boom-ua/update_check","owner":"2boom-ua","description":"Monitoring tool for DietPi systems that performs periodic checks for available system updates, upgrades, and live patches.t supports configurable notifications via messaging platforms, including Telegram, Discord, Slack, Gotify, Ntfy, Pushbullet, Matrix, Mattermost, Pushover, Rocket.Chat, Pumble, Flock, Zulip, Apprise, Webntfy and Custom","archived":false,"fork":false,"pushed_at":"2025-12-20T08:25:35.000Z","size":402,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-21T17:46:09.440Z","etag":null,"topics":["apprise","dietpi","discord","element","flock","gotify","linux-service","matrix-notification","mattermost","ntfy","pushbullet","pushover","python","rocketchat","self-hosted","slack","telegram","webntfy","zulip"],"latest_commit_sha":null,"homepage":"","language":"Python","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/2boom-ua.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2023-11-09T08:16:05.000Z","updated_at":"2025-12-20T08:25:38.000Z","dependencies_parsed_at":"2024-02-09T18:28:05.603Z","dependency_job_id":"bc6c067d-d901-493a-b079-c2cdc801a802","html_url":"https://github.com/2boom-ua/update_check","commit_stats":null,"previous_names":["vladimi2boom/update_check","2boom-ua/update_check"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/2boom-ua/update_check","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2boom-ua%2Fupdate_check","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2boom-ua%2Fupdate_check/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2boom-ua%2Fupdate_check/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2boom-ua%2Fupdate_check/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/2boom-ua","download_url":"https://codeload.github.com/2boom-ua/update_check/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2boom-ua%2Fupdate_check/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32061253,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T11:35:06.609Z","status":"ssl_error","status_checked_at":"2026-04-20T11:34:48.899Z","response_time":94,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["apprise","dietpi","discord","element","flock","gotify","linux-service","matrix-notification","mattermost","ntfy","pushbullet","pushover","python","rocketchat","self-hosted","slack","telegram","webntfy","zulip"],"created_at":"2024-12-01T14:29:23.312Z","updated_at":"2026-04-20T19:04:10.649Z","avatar_url":"https://github.com/2boom-ua.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Update Monitoring Script\n\u003cdiv align=\"center\"\u003e  \n\t\u003cimg src=\"https://github.com/2boom-ua/update_check/blob/main/update_check.jpg?raw=true\" alt=\"\" width=\"209\" height=\"98\"\u003e\n\u003c/div\u003e\n\n### Overview\n\nThis Python script monitors the availability of system updates, upgrades, and live patches on a DietPi system. It periodically checks specific files and sends notifications through various messaging services when updates are available.\n\n### Features\n\n- **Update Monitoring:** Checks for available updates, upgrades, and live patches.\n- **Real-time notifications with support for multiple accounts** via:\n  - Telegram\n  - Discord\n  - Slack\n  - Gotify\n  - Ntfy\n  - Pushbullet\n  - Pushover\n  - Rocket.chat\n  - Matrix\n  - Mattermost\n  - Pumble\n  - Flock\n  - Zulip\n  - Apprise\n  - Webntfy\n  - Custom webhook\n- **Dynamic Configuration:** Load settings from a JSON configuration file.\n- **Polling Period:** Adjustable interval for checking updates.\n\n![alt text](https://github.com/2boom-ua/update_check/blob/main/screenshot_tg.png?raw=true)\n\n### Requirements\n- Python 3.x\n- Docker installed and running\n- Dependencies: `requests`, `schedule`\n\n### Config Notification\nEasily configure your settings with the [Multi-Platform Notification JSON Creator.](https://github.com/2boom-ua/mpn_json)\n\n### Edit config.json:\nYou can use any name and any number of records for each messaging platform configuration, and you can also mix platforms as needed. The number of message platform configurations is unlimited.\n\n[Configuration examples for Telegram, Discord, Matrix, Apprise, Pumble, Mattermost, Discord, Ntfy, Gotify, Zulip, Flock, Slack, Rocket.Chat, Pushover, Pushbullet, Webntfy](docs/json_message_config.md)\n```\n    \"CUSTOM_NAME\": {\n        \"ENABLED\": false,\n        \"WEBHOOK_URL\": [\n            \"first url\",\n            \"second url\",\n            \"....\"\n        ],\n        \"HEADER\": [\n            {first JSON structure},\n            {second JSON structure},\n            {....}\n        ],\n        \"PAYLOAD\": [\n            {first JSON structure},\n            {second JSON structure},\n            {....}\n        ],\n        \"FORMAT_MESSAGE\": [\n            \"markdown\",\n            \"html\",\n            \"....\"\n        ]\n    },\n```\n| Item | Required | Description |\n|------------|------------|------------|\n| ENABLED | true/false | Enable or disable Custom notifications |\n| WEBHOOK_URL | url | The URL of your Custom webhook |\n| HEADER | JSON structure | HTTP headers for each webhook request. This varies per service and may include fields like {\"Content-Type\": \"application/json\"}. |\n| PAYLOAD | JSON structure | The JSON payload structure for each service, which usually includes message content and format. Like as  {\"body\": \"message\", \"type\": \"info\", \"format\": \"markdown\"}|\n| FORMAT_MESSAGE | markdown,\u003cbr\u003ehtml,\u003cbr\u003etext,\u003cbr\u003esimplified | Specifies the message format used by each service, such as markdown, html, or other text formatting.|\n\n- **markdown** - a text-based format with lightweight syntax for basic styling (Pumble, Mattermost, Discord, Ntfy, Gotify),\n- **simplified** - simplified standard Markdown (Telegram, Zulip, Flock, Slack, RocketChat).\n- **html** - a web-based format using tags for advanced text styling,\n- **text** - raw text without any styling or formatting.\n\n\n```\n \"STARTUP_MESSAGE\": true,\n \"DEFAULT_DOT_STYLE\": true,\n \"MIN_REPEAT\": 1\n```\n\n| Item   | Required   | Description   |\n|------------|------------|------------|\n| STARTUP_MESSAGE | true/false | On/Off startup message. |\n| DEFAULT_DOT_STYLE | true/false | Round/Square dots. |\n| MIN_REPEAT | 1 | Set the poll period in minutes. Minimum is 1 minute. | \n\n### Edit crontab (crontab -e)\n```\n0 */1 * * * /boot/dietpi/dietpi-update 2\n```\n### Clone the repository:\n```\ngit clone https://github.com/2boom-ua/update_check.git\ncd dockcheck\n```\n\n## Docker\n```bash\n  docker build -t update_check .\n```\nor\n```bash\n  docker pull ghcr.io/2boom-ua/update_check:latest\n```\n### Dowload and edit config.json\n```bash\ncurl -L -o ./config.json  https://raw.githubusercontent.com/2boom-ua/update_check/main/config.json\n```\n### docker-cli\n```bash\n  docker run -v ./config.json:/update_check/config.json -v /run/dietpi:/run/dietpi --name update_check -e TZ=UTC ghcr.io/2boom-ua/update_check:latest \n```\n### docker-compose\n```\nservices:\n  update_check:\n    container_name: update_check\n    image: ghcr.io/2boom-ua/update_check:latest\n    network_mode: host\n    volumes:\n      - ./config.json:/update_check/config.json\n      - /run/dietpi:/run/dietpi\n    environment:\n      - TZ=Etc/UTC\n    restart: unless-stopped\n```\n\n```bash\ndocker-compose up -d\n```\n---\n### Running as a Linux Service\nYou can set this script to run as a Linux service for continuous monitoring.\n\n### Install required Python packages:\n```\npip install -r requirements.txt\n```\nCreate a systemd service file:\n```\nnano /etc/systemd/system/update_check.service\n```\nAdd the following content:\n```\n[Unit]\nDescription=check update aviable\nAfter=multi-user.target\n[Service]\nType=simple\nRestart=always\nExecStart=/usr/bin/python3 /opt/update_check/update_check.py\n[Install]\nWantedBy=multi-user.target\n```\n```\nsystemctl daemon-reload\n```\n```\nsystemctl enable update_check.service\n```\n```\nsystemctl start update_check.service\n```\n\n### License\n\nThis project is licensed under the MIT License - see the [MIT License](https://opensource.org/licenses/MIT) for details.\n\n### Author\n\n- **2boom** - [GitHub](https://github.com/2boom-ua)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2boom-ua%2Fupdate_check","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F2boom-ua%2Fupdate_check","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2boom-ua%2Fupdate_check/lists"}