{"id":22120666,"url":"https://github.com/2boom-ua/check_services","last_synced_at":"2026-05-09T17:39:31.942Z","repository":{"id":206372693,"uuid":"716497662","full_name":"2boom-ua/check_services","owner":"2boom-ua","description":"Script monitors the status of systemd services on a Linux machine. It checks the services managed by systemd, sending notifications through various messaging services when changes occur.  Support Telegram, Discord, Gotify, Ntfy, Slack, Pushbullet, Pushover, Rocket.chat, Matrix, Mattermost, Pumble, Flock, Zulip, Apprise, Webntfy, Custom","archived":false,"fork":false,"pushed_at":"2026-02-14T08:25:28.000Z","size":2296,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-14T16:50:17.190Z","etag":null,"topics":["apprise","discord","flock","gotify","linux-service","mattermost","ntfy","pumble","push-notifications","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,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-11-09T09:09:56.000Z","updated_at":"2026-02-14T08:25:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"7a13c998-5f98-401b-84b1-3cc8fe3abbdc","html_url":"https://github.com/2boom-ua/check_services","commit_stats":null,"previous_names":["vladimi2boom/check_services","2boom-ua/check_services"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/2boom-ua/check_services","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2boom-ua%2Fcheck_services","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2boom-ua%2Fcheck_services/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2boom-ua%2Fcheck_services/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2boom-ua%2Fcheck_services/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/2boom-ua","download_url":"https://codeload.github.com/2boom-ua/check_services/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2boom-ua%2Fcheck_services/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32829160,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","discord","flock","gotify","linux-service","mattermost","ntfy","pumble","push-notifications","pushbullet","pushover","python","rocketchat","self-hosted","slack","telegram","webntfy","zulip"],"created_at":"2024-12-01T14:29:23.741Z","updated_at":"2026-05-09T17:39:31.935Z","avatar_url":"https://github.com/2boom-ua.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Service Monitoring\n\u003cdiv align=\"center\"\u003e  \n    \u003cimg src=\"https://github.com/2boom-ua/check_services/blob/main/check_services.jpg?raw=true\" alt=\"\" width=\"939\" height=\"494\"\u003e\n\u003c/div\u003e\n\n### Overview\n\nThis Python script monitors the status of system services on a Linux machine. It checks the services managed by `systemd`, forwarding notifications through various messaging services when the crevice status changes detected. \n\n### Features\n\n- **Service Status Monitoring:** Regularly checks if specified services are active or inactive.\n- **Real-time notifications with support for multiple accounts** via:\n  - Telegram, Discord, Slack, Gotify, Ntfy, Pushbullet, Pushover, Rocket.chat\n  - Matrix, Mattermost, Floc, Pumble, Zulip, Apprise, Webntfy, Custom webhook\n- **Configuration:** Easily configurable through JSON files for notification settings.\n- **Polling Period:** Adjustable polling interval to check service status.\n\n### View\nhttps://your_domain_name or http://server_ip:5152\n\n### Requirements\n- Python 3.x\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\"STARTUP_MESSAGE\": true,\n\"DEFAULT_DOT_STYLE\": true,\n\"NOTIFY_ENABLED\": true\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| NOTIFY_ENABLED | true/false | On/Off notification via messaging platforms. | \n\n### Clone the repository:\n```\ngit clone https://github.com/2boom-ua/check_services.git\ncd check_services\n```\n### Install required Python packages:\n```\npip install -r requirements.txt\n```\n### Dowload and edit config.json\n```bash\ncurl -L -o ./config.json  https://raw.githubusercontent.com/2boom-ua/check_services/main/config.json\n```\n\n### Running as a Linux Service\nYou can set this script to run as a Linux service for continuous monitoring.\n\nCreate a systemd service file:\n```\nnano /etc/systemd/system/check_services.service\n```\nAdd the following content:\n```\n[Unit]\nDescription=Services State Change Monitor\nAfter=multi-user.target\n\n[Service]\nType=simple\nRestart=always\nExecStartPre=/bin/sleep 30\nExecStart=/usr/bin/python3 /opt/check_services/check_services.py\n\n[Install]\nWantedBy=multi-user.target\n```\n```\nsystemctl daemon-reload\n```\n```\nsystemctl enable check_services.service\n```\n```\nsystemctl start check_services.service\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%2Fcheck_services","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F2boom-ua%2Fcheck_services","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2boom-ua%2Fcheck_services/lists"}