{"id":20804964,"url":"https://github.com/lichess-org/lila-push","last_synced_at":"2025-07-03T12:03:56.948Z","repository":{"id":37088462,"uuid":"184473632","full_name":"lichess-org/lila-push","owner":"lichess-org","description":"Web push microservice for lichess.org","archived":false,"fork":false,"pushed_at":"2025-03-01T15:34:55.000Z","size":319,"stargazers_count":18,"open_issues_count":2,"forks_count":12,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-05-07T04:31:08.903Z","etag":null,"topics":["http-api","lichess"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lichess-org.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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},"funding":{"custom":"https://lichess.org/patron"}},"created_at":"2019-05-01T19:58:29.000Z","updated_at":"2025-04-04T04:20:47.000Z","dependencies_parsed_at":"2023-12-23T00:49:26.541Z","dependency_job_id":"61a0a11e-5076-4558-a81f-87903f519c0f","html_url":"https://github.com/lichess-org/lila-push","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lichess-org/lila-push","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lichess-org%2Flila-push","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lichess-org%2Flila-push/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lichess-org%2Flila-push/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lichess-org%2Flila-push/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lichess-org","download_url":"https://codeload.github.com/lichess-org/lila-push/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lichess-org%2Flila-push/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263322786,"owners_count":23448712,"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","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":["http-api","lichess"],"created_at":"2024-11-17T19:12:37.348Z","updated_at":"2025-07-03T12:03:56.923Z","avatar_url":"https://github.com/lichess-org.png","language":"Rust","funding_links":["https://lichess.org/patron"],"categories":[],"sub_categories":[],"readme":"lila-push\n=========\n\nWeb push microservice for [lichess.org](https://lichess.org).\n\nSetup\n-----\n\n1. Generate a private key.\n\n   ```\n   openssl ecparam -name prime256v1 -genkey -noout -out private.pem\n   ```\n\n2. Print public key and set `push.web.vapid_public_key` in lila configuration:\n\n   ```\n   openssl ec -in private.pem -pubout -outform DER | tail -c 65 | base64 | tr '/+' '_-' | tr -d '\\n' \u0026\u0026 echo\n   ```\n\n3. Run microservice:\n\n   ```\n   cargo run --release -- --vapid private.pem --vapid-subject mailto:contact@lichess.org\n   ```\n\nUsage\n-----\n\n```\ncargo run -- --help\n```\n\nHTTP API\n--------\n\n### `POST /` send a push message\n\n```javascript\n{\n  \"subs\": [{\n    \"endpoint\": \"https://fcm.googleapis.com/fcm/send/dpH5lCsTSSM:APA91bHqjZxM0VImWWqDRN7U0a3AycjUf4O-byuxb_wJsKRaKvV_iKw56s16ekq6FUqoCF7k2nICUpd8fHPxVTgqLunFeVeB9lLCQZyohyAztTH8ZQL9WCxKpA6dvTG_TUIhQUFq_n\",\n    \"keys\": {\n      \"p256dh\": \"BLQELIDm-6b9Bl07YrEuXJ4BL_YBVQ0dvt9NQGGJxIQidJWHPNa9YrouvcQ9d7_MqzvGS9Alz60SZNCG3qfpk=\",\n      \"auth\": \"4vQK-SvRAN5eo-8ASlrwA==\"\n    }\n  }],\n  \"payload\": \"lorem ipsum\", // could be json encoded as a string\n  \"ttl\": 43200 // 12 hour limit to deliver\n}\n```\n\n```json\n{\n  \"https://fcm.googleapis.com/fcm/send/dpH5lCsTSSM:AP...\": \"ok\"\n}\n```\n\nresponse | description\n--- | ---\nok | **success**\nendpoint_not_valid | Subscription is no longer valid and should not be used again\nendpoint_not_found | Subscription is not valid and should not be used again\nnot_implemented | Endpoint does not support encryption algorithm\n... | Other errors\n\nLicense\n-------\n\nlila-push is licensed under the GNU Affero General Public License 3.0 (or any\nlater version at your option). See COPYING for the full license text.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flichess-org%2Flila-push","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flichess-org%2Flila-push","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flichess-org%2Flila-push/lists"}