@hackage pinpon0.2.0.2
A gateway for various cloud notification services
Categories
License
BSD-3-Clause
Maintainer
Drew Hess <dhess-src@quixoftic.com>
Links
Versions
Installation
Tested Compilers
Dependencies (30)
- base >=4 && <5
- bytestring >=0.10.8 && <0.11
- containers >=0.5.7 && <0.6
- mtl >=2.2.1 && <2.3
- text >=1.2.2 && <1.3
- transformers >=0.5.2 && <0.6 Show all…
Dependents (0)
Package Flags
pinpon-executable
(on by default)
Build pinpon program
pinpon-gpio-executable
(on by default)
Build pinpon-gpio program
pinpon-ring-executable
(on by default)
Build pinpon-ring program
test-doctests
(on by default)
Build doctests
test-hlint
(off by default)
Build hlint test
pinpon
pinpon
is a silly little service that implements an
Internet-enabled doorbell in Haskell, using
Amazon Simple Notification Service to notify
subscribers that the button has been pushed. Effectively, it's a
simple REST service which, when POST
ed to, will send a notification
to an SNS topic. You can then build a client application which
subscribes to that topic and notifies the user when the doorbell has
been pressed. No such client application is included in the pinpon
package, but an iOS app may be made available at some point in the
future.
The package provides a pinpon-gpio
executable, intended for use on
Linux systems with GPIO functionality. When the specified GPIO pin is
triggered (e.g., via a momentary switch such as
this one),
pinpon-gpio
will POST
a notification to the specified pinpon
server.
Why not simply build the Amazon SNS functionality into the
pinpon-gpio
executable and eliminate the pinpon
REST service?
Chiefly because the host system running the pinpon-gpio
executable
may be particularly vulnerable to physical attacks (after all, it is
presumably hooked up to a doorbell button that is exposed in a public
space). I did not feel comfortable storing my Amazon AWS credentials
on such a device, nor even allowing such a device to communicate
directly with the public Internet. By proxying the AWS access via a
more physically secure host running the pinpon
server on my internal
network, I can better protect my AWS credentials and limit network
access on the GPIO device to just the pinpon
service.