Unfortunatelly I am not using this software in production anymore and also I do not have many free time available to keep evolving this project, so, if you are interested in maintaining it, please, send me a message [dimiro1 at gmail] with your ideas on how you can maintain/evolve this project.
Try browsing the code on Sourcegraph!
This software is written in Go - the WYSIWYG lang
- I wanted to learn Go and I needed a non trivial application;
- I use Pusher in some projects;
- I really like Pusher;
- Public Channels;
- Private Channels;
- Presence Channels;
- Web Hooks;
- Client events;
- Complete REST API;
- Easy installation;
- A single binary without dependencies;
- Easy configuration;
- Protocol version 7;
- Multiple apps in the same instance;
- Drop in replacement for pusher server;
You can download pre built binaries from the releases tab.
I do not have a Windows machine, so I can only distribute binaries for amd64 linux and amd64 darwin.
$ go get github.com/dimiro1/ipe
or simply
$ go install github.com/dimiro1/ipe
{
"Host": ":8080", // Required
"SSL": false, // Not Required, default is false
"Profiling": false, // Mount pprof at /debug. Not Required, default is false
"SSLHost": ":4433", // Required if SSL is true
"SSLKeyFile": "A key.pem file", // Required if SSL is true
"SSLCertFile": "A cert.pem file", // Required if SSL is true
"Apps": [ // Required, A Json arrays with multiple apps
{
"ApplicationDisabled": false, // Required but can be false
"Secret": "A really secret random string", // Required
"Key": "A random Key string", // Required
"OnlySSL": false, // Required but can be false
"Name": "The app name", // Required
"AppID": "The app ID", // Required
"UserEvents": true, // Required but can be false
"WebHooks": true, // Required but can be false
"URLWebHook": "Some URL to send webhooks" // Required if WebHooks is true
}
]
}
var pusher = new Pusher(APP_KEY, {
wsHost: 'localhost',
wsPort: 8080,
wssPort: 4433, // Required if encrypted is true
encrypted: false, // Optional. the application must use only SSL connections
enabledTransports: ["ws", "flash"],
disabledTransports: ["flash"]
});
Ruby
Pusher.host = 'localhost'
Pusher.port = 8080
PHP
$pusher = new Pusher(APP_KEY, APP_SECRET, APP_ID, DEBUG, "http://localhost", "8080");
NodeJS
var pusher = new Pusher({
appId: APP_ID,
key: APP_KEY,
secret: APP_SECRET
domain: 'localhost',
port: 80
});
This software uses the glog library
for more information about logging type the following in console.
$ ipe -h
- When you are offline;
- When you want to control your infrastructure;
- When you do not want to have external dependencies;
- When you want extend the protocol;
Feel free to fork this repo.
Pusher is an excelent service, their service is very reliable. I recomend for everyone.
Here in Brazil we have this beautiful tree called Ipê, it comes in differente colors: yellow, pink, white, purple.
Claudemiro Alves Feitosa Neto
Copyright 2014, 2015, 2016 Claudemiro Alves Feitosa Neto. All rights reserved. Use of this source code is governed by a MIT-style license that can be found in the LICENSE file.