{"repo":"mcncarl/wechat-relay","free":true,"listed":false,"github":"https://github.com/mcncarl/wechat-relay","clone":"git clone https://github.com/mcncarl/wechat-relay.git","description":"Self-hosted relay for WeChat Official Account draft APIs.","language":"JavaScript","stars":11,"topics":[],"license":"AGPL-3.0","category":"self-hosted-apps","readme_excerpt":"wechat-relay wechat-relay is a small, public, self-hosted relay for four WeChat Official Account draft APIs. It exists for one narrow deployment problem: the Official Account allowlist sees the relay server's fixed outbound IPv4 instead of a changing client address. Commercial use is permitted, but users must comply with AGPL-3.0-or-later . For commercial deployment, customization, training, or technical support, contact the repository maintainer. 商业使用：允许，但必须遵守 AGPL-3.0-or-later。 商业部署、定制、培训与技术支持：可联系维护者。 The relay creates or reads drafts only through the four documented compatibility routes. It does not automate the WeChat client, open the Official Account web console, mass-send, publish, or provide a generic WeChat API proxy. Security model - The Node process refuses to start unless WECHAT APP ID , WECHAT APP SECRET , and RELAY TOKEN are all present. - RELAY TOKEN must encode at least 32 cryptographically random bytes (at least 43 base64/base64url characters or 64 hex characters). Do not invent a memorable password. - The process binds only to 127.0.0.1 or ::1 . Tailscale Serve or Caddy is the network boundary. - /v1/health is public and returns only {\"ok\":true} . /v1/ready is authenticated and checks SQLite plus WeChat credential/IP readiness. - Request paths, methods, query parameters, content types, body sizes, body time, total upstream-operation time (including token refresh/retry), response size, rate, total connections, and concurrent admitted requests are bounded. - We","default_branch":null,"files":null,"tree":[],"storefront":"/r/mcncarl","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/mcncarl/wechat-relay/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}