{"id":15966124,"url":"https://github.com/swinton/webpagemon","last_synced_at":"2026-05-02T19:33:04.654Z","repository":{"id":138110388,"uuid":"279203714","full_name":"swinton/webpagemon","owner":"swinton","description":"webpagemon monitors a web page for changes, notifies you when it detects a change","archived":false,"fork":false,"pushed_at":"2020-07-13T14:12:16.000Z","size":6,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-30T04:29:03.532Z","etag":null,"topics":["golang","raspberry-pi","twilio"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/swinton.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2020-07-13T03:47:27.000Z","updated_at":"2020-07-20T15:12:52.000Z","dependencies_parsed_at":"2024-06-19T07:37:49.642Z","dependency_job_id":null,"html_url":"https://github.com/swinton/webpagemon","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/swinton/webpagemon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swinton%2Fwebpagemon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swinton%2Fwebpagemon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swinton%2Fwebpagemon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swinton%2Fwebpagemon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/swinton","download_url":"https://codeload.github.com/swinton/webpagemon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swinton%2Fwebpagemon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32547645,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T19:18:06.202Z","status":"ssl_error","status_checked_at":"2026-05-02T19:16:21.335Z","response_time":132,"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":["golang","raspberry-pi","twilio"],"created_at":"2024-10-07T18:00:57.989Z","updated_at":"2026-05-02T19:33:04.635Z","avatar_url":"https://github.com/swinton.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `webpagemon`\n\u003e :eyes: monitor a web page for changes\n\n## Usage\n\n### Compilation\n\nI run this on a Rasperry Pi, to compile for Raspian:\n\n```shell\nenv GOOS=linux GOARCH=arm GOARM=6 go build -o bin/webpagemon main.go\n```\n\n### Wrapper script\n\nI use a wrapper script (mine is named `is-it-in-stock-yet.sh`) to set the environment variables / arguments I need and to call `webpagemon`:\n\n#### `is-it-in-stock-yet.sh`:\n\n```bash\n#!/bin/bash\nset -e\n\nexport TWILIO_ACCOUNT_SID=# your Twilio account SID from, www.twilio.com/console\nexport TWILIO_AUTH_TOKEN=# your Twilio auth Token from, www.twilio.com/console\nexport TWILIO_SMS_SENDER=# your Twilio phone number, from www.twilio.com/console/phone-numbers\nexport WPM_URL=# the web page URL to monitor, e.g. https://www.example.com/\nexport WPM_SELECTOR=# the document query selector to use to detect a change, e.g. \"h1\"\nexport WPM_RECIPIENTS=# comma-separated list of recipient phone numbers, who will be sent a text message when webpagemon detects a change, e.g. `+12223334444,+15556667777`\n\n/path/to/webpagemon \\\n        \"${WPM_URL}\" \\\n        \"${WPM_SELECTOR}\" \\\n        \"${WPM_RECIPIENTS}\"\n```\n\n\n### Crontab\n\nI use cron to periodically run my wrapper script (every 5 minutes here):\n\n```\n# m h  dom mon dow   command\n*/5 *  *  *    *     /home/pi/bin/is-it-in-stock-yet.sh \u003e /home/pi/logs/webpagemon.log 2\u003e\u00261\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswinton%2Fwebpagemon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswinton%2Fwebpagemon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswinton%2Fwebpagemon/lists"}