{"id":15908366,"url":"https://github.com/capjamesg/websub","last_synced_at":"2026-01-21T10:37:44.868Z","repository":{"id":104874728,"uuid":"459076089","full_name":"capjamesg/websub","owner":"capjamesg","description":"My personal WebSub hub, built with Python Flask and SQLite. ","archived":false,"fork":false,"pushed_at":"2024-01-11T18:47:05.000Z","size":189,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-04T14:05:02.176Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit-0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/capjamesg.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-02-14T08:29:50.000Z","updated_at":"2023-07-15T09:05:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"68bde547-2bf4-4172-aeab-3f0bafde9af3","html_url":"https://github.com/capjamesg/websub","commit_stats":{"total_commits":12,"total_committers":2,"mean_commits":6.0,"dds":"0.41666666666666663","last_synced_commit":"cbf537c2f67c4296b46d322a22cf70adcf4839b6"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/capjamesg/websub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/capjamesg%2Fwebsub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/capjamesg%2Fwebsub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/capjamesg%2Fwebsub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/capjamesg%2Fwebsub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/capjamesg","download_url":"https://codeload.github.com/capjamesg/websub/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/capjamesg%2Fwebsub/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28631937,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"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":[],"created_at":"2024-10-06T14:20:57.208Z","updated_at":"2026-01-21T10:37:44.846Z","avatar_url":"https://github.com/capjamesg.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WebSub Hub\n\nThis repository contains the code for my WebSub Hub.\n\nWebSub is a protocol used to send notifications to URLs when you have added content onto your site.\n\nWebSub is used on my personal website to notify subscribers when I update my blog.\n\n## Screenshot\n\n![The WebSub project home page](screenshot.png)\n\n## Getting Started\n\n### Installing dependencies\n\nTo use this WebSub Hub, first install all of the required dependencies. You can do this by executing the following command:\n\n    pip install -r requirements.txt\n\n### Seeding the database\n\nNext, seed the database for this project by running the following command:\n\n    python3 seed.py\n\nThe command above creates the websub.db database and the two tables required for this project to work.\n\n## Configuring the application\n\nNext, you will need to configure your application. To do so, you will need to change the values in the default config.py file:\n\n    ME = \"https://jamesg.blog\"\n    SETUP = True\n\nClients will only be able to subscribe to web resources that start with your ME domain. Replace ME with your domain name. \n\nThe SETUP value determines whether or not to show the project setup page. You may want to read this page when you are configuring your hub.\n\nOnce you have read the setup page, set SETUP to False.\n\n### Running the application\n\nNow you are ready to run the project. To do so, run the following command:\n\n    export FLASK_APP=.\n    flask run\n\n## Test Cases\n\nThis endpoint has passed the following test cases in the [websub.rocks](https://websub.rocks/hub) WebSub Hub test suite:\n\n- 100 - Typical subscriber request\n- 102 - Subscriber sends additional parameters\n- 103 - Subscriber re-subscribes before the subscription expires\n- 104 - Unsubscribe request\n- 105 - Plain text content\n- 106 - JSON content\n    \n## Useful Resources\n\nThe following resources may help you if you are new to WebSub:\n\n* [WebSub specification](https://www.w3.org/TR/websub/)\n* [How to publish and consume WebSub (IndieWeb wiki)](https://indieweb.org/How_to_publish_and_consume_WebSub)\n* [WebSub explainer page (IndieWeb wiki)](https://indieweb.org/WebSub)\n\n## License\n\nThis project is licensed under the [MIT 0 license](LICENSE).\n\n## Contributors\n\n- capjamesg","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcapjamesg%2Fwebsub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcapjamesg%2Fwebsub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcapjamesg%2Fwebsub/lists"}