Mozilla Push server and Push Endpoint utilizing PyPy, twisted, and DynamoDB.

Please note: The python components of this server are being deprecated in favor of a pure rust implementation. We are planning on moving the websocket handler first, followed by the endpoint handlers. See Migrating to Rust for details.

This is the third generation of Push server built in Mozilla Services, first to handle Push for FirefoxOS clients, then extended for push notifications for Firefox (via the W3C Push spec.)

For how to read and respond to autopush error codes, see Errors.

For an overview of the Mozilla Push Service and where autopush fits in, see the Mozilla Push Service architecture diagram. This push service uses websockets to talk to Firefox, with a Push endpoint that implements the WebPush standard for its HTTP Endpoints for Notifications API.

Autopush APIs

For developers writing mobile applications in Mozilla, or web developers using Push on the web with Firefox.

Running Autopush

If you just want to run autopush, for testing Push locally with Firefox, or to deploy autopush to a production environment for Firefox.

Source Code

All source code is available on github under autopush.

Code Documentation

We are using rust for a number of optimizations and speed improvements. These efforts are ongoing and may be subject to change. Unfortunately, this also means that formal documentation is not yet available. You are, of course, welcome to review the code located in ./autopush_rs.



Bugs should be reported on the autopush github issue tracker.

The developers of autopush can frequently be found on the Mozilla IRC network ( in the #push channel.

autopush Endpoints

autopush is automatically deployed from master to a dev environment for testing, a stage environment for tagged releases, and the production environment used by Firefox/FirefoxOS.





autopush is offered under the Mozilla Public License 2.0.