Mailcatcher, but for FCM HTTP v1. Run a fake Firebase Cloud Messaging endpoint and a small web inbox — in-memory only, ideal for local or dev Docker Compose. Point your app at Pushcatcher instead of Google’s FCM API and inspect outbound pushes in the browser.
The public image on Docker Hub is nurelmdevelopment/pushcatcher. 4000 serves the web UI; 4040 is the FCM HTTP v1–compatible API (POST /v1/projects/:project/messages:send). In Compose you usually publish 4000 to your host for the UI; other services on the same network call http://pushcatcher:4040 (or your service name) with no special Host header. Do not expose 4040 to the public internet — use this only on trusted local or dev networks.
| Port | What |
|---|---|
| 4000 | Web UI: list, detail, clear |
| 4040 | API: POST /v1/projects/:project/messages:send |
Add a service using the image. latest tracks the newest published build; pin a version tag or digest if you need a reproducible environment.
services:
pushcatcher:
image: nurelmdevelopment/pushcatcher:latest
ports:
- "4000:4000"Configure your application’s FCM base URL to http://pushcatcher:4040 on the Docker network (adjust the hostname if you rename the service).
Building from source, running tests, and publishing your own image are covered in HOW_TO_BUILD.md.
MIT