push-proxy

command module
v2.0.2+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 10, 2016 License: Apache-2.0 Imports: 5 Imported by: 0

README

Mattermost Push Notifications Service

A server for proxying push notifications to iOS devices from Mattermost, a self-hosted team communication solution.

For organizations who want to keep internal communications behind their firewall, this service encrypts notification messages with a private key under your control before sending them to Apple's public push notification service for delivery to your iOS devices.

Requirements
  1. A linux Ubuntu 14.04 server with at least 1GB of memory.
  2. Having either compiled the Mattermost iOS app and submitted it to the Apple App Store, or hosted in your own Enterprise App Store.
  3. Private and public keys obtained from the Apple Developer Program
Installation
  1. Install the latest release of the Mattermost Notification Server.
  2. Create a directory, for example /home/ubuntu/push-proxy.
  3. Download Mattermost Notification Server v2.0 with wget https://github.com/mattermost/push-proxy/releases/download/v2.0/matter-push-proxy.tar.gz.
  4. Uncompress the file with tar -xvzf matter-push-proxy.tar.gz.
  5. Update config.json with your private and public keys.
  6. Edit using vi /home/ubuntu/push-proxy/config/config.json and set ApplePushCertPublic and ApplePushCertPrivate, this should be a path to the public and private keys previously generated. For example
"ApplePushCertPublic": "./config/publickey.cer",
"ApplePushCertPrivate": "./config/privatekey.pem",
  1. Edit using vi /home/ubuntu/push-proxy/config/config.json and set AndroidApiKey, this should be a key generated from Google Cloud Messaging. For example
"AndroidApiKey": "DKJDIiwjerljd290u34jFKDSF",
  1. Verify push notifications are working by mentioning a user who is offline, which should trigger a push notification.
  2. You can verify that the server operates normally by using curl:
curl http://127.0.0.1:8066/api/v1/send_push -X POST -H "Content-Type: application/json" -d '{ "message":"test", "badge": 1, "platform":"apple", "server_id":"MATTERMOST_DIAG_ID", "device_id":"IPHONE_DEVICE_ID"}'

Replace MATTERMOST_DIAG_ID and IPHONE_DEVICE_ID with the relevant values.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Godeps
_workspace/src/github.com/alexjlockwood/gcm
Google Cloud Messaging for application servers implemented using the Go programming language.
Google Cloud Messaging for application servers implemented using the Go programming language.
_workspace/src/github.com/braintree/manners
Package manners provides a wrapper for a standard net/http server that ensures all active HTTP client have completed their current request before the server shuts down.
Package manners provides a wrapper for a standard net/http server that ensures all active HTTP client have completed their current request before the server shuts down.
_workspace/src/github.com/davecgh/go-spew/spew
Package spew implements a deep pretty printer for Go data structures to aid in debugging.
Package spew implements a deep pretty printer for Go data structures to aid in debugging.
_workspace/src/github.com/garyburd/redigo/internal/redistest
Package redistest contains utilities for writing Redigo tests.
Package redistest contains utilities for writing Redigo tests.
_workspace/src/github.com/garyburd/redigo/redis
Package redis is a client for the Redis database.
Package redis is a client for the Redis database.
_workspace/src/github.com/golang/groupcache/lru
Package lru implements an LRU cache.
Package lru implements an LRU cache.
_workspace/src/github.com/gorilla/context
Package context stores values shared during a request lifetime.
Package context stores values shared during a request lifetime.
_workspace/src/github.com/gorilla/mux
Package gorilla/mux implements a request router and dispatcher.
Package gorilla/mux implements a request router and dispatcher.
_workspace/src/github.com/kyokomi/emoji
Package emoji terminal output.
Package emoji terminal output.
_workspace/src/github.com/pmezard/go-difflib/difflib
Package difflib is a partial port of Python difflib module.
Package difflib is a partial port of Python difflib module.
_workspace/src/github.com/stretchr/objx
objx - Go package for dealing with maps, slices, JSON and other data.
objx - Go package for dealing with maps, slices, JSON and other data.
_workspace/src/github.com/stretchr/testify/assert
Package assert provides a set of comprehensive testing tools for use with the normal Go testing system.
Package assert provides a set of comprehensive testing tools for use with the normal Go testing system.
_workspace/src/github.com/stretchr/testify/mock
Provides a system by which it is possible to mock your objects and verify calls are happening as expected.
Provides a system by which it is possible to mock your objects and verify calls are happening as expected.
_workspace/src/gopkg.in/throttled/throttled.v1
Package throttled implements different throttling strategies for controlling access to HTTP handlers.
Package throttled implements different throttling strategies for controlling access to HTTP handlers.
_workspace/src/gopkg.in/throttled/throttled.v1/store
Package store offers a memory-based and a Redis-based throttled.Store implementation.
Package store offers a memory-based and a Redis-based throttled.Store implementation.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL