Skip to content

Latest commit

 

History

History
164 lines (115 loc) · 4.18 KB

README.md

File metadata and controls

164 lines (115 loc) · 4.18 KB

Maintainer Needed

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.

Go Report Card

Try browsing the code on Sourcegraph!

IPÊ

This software is written in Go - the WYSIWYG lang

Why I wrote this software?

  1. I wanted to learn Go and I needed a non trivial application;
  2. I use Pusher in some projects;
  3. I really like Pusher;

Features

  • 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;

Download pre built binaries

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.

Building

$ go get github.com/dimiro1/ipe

or simply

$ go install github.com/dimiro1/ipe

How to configure?

The server

{
	"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
		}
	]
}

Libraries

Client javascript library

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"]
});

Client server libraries

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
});

Logging

This software uses the glog library

for more information about logging type the following in console.

$ ipe -h

When use this software?

  • 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;

Contributing.

Feel free to fork this repo.

Pusher

Pusher is an excelent service, their service is very reliable. I recomend for everyone.

Where this name came from?

Here in Brazil we have this beautiful tree called Ipê, it comes in differente colors: yellow, pink, white, purple.

I want to see pictures

Author

Claudemiro Alves Feitosa Neto

LICENSE

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.