A good starting point could be the unifedpush-operator: https://github.com/aerogear/unifiedpush-operator