{"id":20743638,"url":"https://github.com/tobychui/imusutm","last_synced_at":"2025-07-22T16:08:27.123Z","repository":{"id":134126110,"uuid":"583650650","full_name":"tobychui/imusutm","owner":"tobychui","description":"Basic service up-time monitor written in Golang","archived":false,"fork":false,"pushed_at":"2023-10-06T03:47:26.000Z","size":69,"stargazers_count":18,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-24T05:43:06.604Z","etag":null,"topics":["downtime","downtime-monitor","golang","monitor","monitoring","service","service-disruption","uptime","uptime-monitor"],"latest_commit_sha":null,"homepage":"","language":"HTML","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/tobychui.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":"2022-12-30T12:57:50.000Z","updated_at":"2025-03-24T14:32:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"3bf1f1f2-4210-4489-a8a2-95056f21057b","html_url":"https://github.com/tobychui/imusutm","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/tobychui/imusutm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobychui%2Fimusutm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobychui%2Fimusutm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobychui%2Fimusutm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobychui%2Fimusutm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tobychui","download_url":"https://codeload.github.com/tobychui/imusutm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobychui%2Fimusutm/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266525248,"owners_count":23942912,"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","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":["downtime","downtime-monitor","golang","monitor","monitoring","service","service-disruption","uptime","uptime-monitor"],"created_at":"2024-11-17T07:12:17.460Z","updated_at":"2025-07-22T16:08:22.029Z","avatar_url":"https://github.com/tobychui.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"![圖片](https://github.com/tobychui/imusutm/assets/24617523/f8098c25-ea74-48bc-8837-a73bf831c26c)\n\n\n# imusutm\n\nBaisc service up-time monitor and TOTP generator written in Golang\n\n## Usage\n\nDouble click the binary executable to run the up-time monitor. \n\n## Build from Source\n```\ngit clone https://github.com/tobychui/imusutm\ncd imusutm\ngo mod tidy\ngo build\n./utm\n(or .\\utm.exe)\n```\n\n### Setup Monitoring Server\n\nCreate a file named \"config.json\" and place it in the same folder to the binary executable.\n\n```json\n{\n \"Targets\": [\n    {\n        \"ID\": \"imus_homepage\", //ID of the target\n        \"Name\": \"imuslab Homepage\", //Name to show on the UI\n        \"URL\": \"https://imuslab.com\", //URL to request\n        \"Protocol\": \"https\" //Protocol to check online\n    },\n    //More endpoint here\n ],\n \"Interval\": 300, //Update interval in seconds\n \"LogToFile\": false, //Log results to file\n \"RecordsInJson\": 288 //How many records to keep, in this example, 300s (5 min) x 288 records per target = 1 day\n}\n```\n\nTo start the monitoring server, use the following command (Note the \":\")\n\n```\n./utm -p :8089\n```\n\nYou can also change the port if this port has already been occupied by another service. \n\n*Tips: You can add it to systemd as a service if you want it to startup with your other services on Linux*\n\n### Setting up TOTP Code Generator\nTOTP code generator was added after Github force me to enable 2FA to my account. \nYou can setup a totp code generator with a config file name totp.json with the following contents.\n\n```json\n{\n \"Entries\": [\n  {\n   \"Name\": \"Example\",\n   \"Secret\": \"JBSWY3DPEHPK3PXP\",\n   \"Link\": \"example.com\"\n  },\n\t//Add more line if needed\n ]\n}\n```\nRestart the application to see the new code generator running.\n![圖片](https://github.com/tobychui/imusutm/assets/24617523/f0567094-b660-44c8-9527-2e378b8f1a87)\n\n## More Protocols Support\n\nAs I only need to ping my own web servers, I currently only implemented the following protocol. If you need more protocols, feel free to create a PR on this project.\n\n- http\n\n- https\n\n*Notes: You do not need to know php if you want to add more protocols. All changes are only nessary to be done in the Golang side*\n\n### License\n\nMIT License\n\n### Disclaimer\nThis is an internal tool design for my in-house use only. Use it with your own risk.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobychui%2Fimusutm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftobychui%2Fimusutm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobychui%2Fimusutm/lists"}