Giter Site home page Giter Site logo

apollo's Introduction

Apollo

IM, group chat, and video calls built on Respoke.

Requirements

Setup

  1. Perform the following commands in a terminal:

    git clone https://github.com/respoke/apollo
    cd apollo
    npm install
  2. Edit settings in the two config files:

    • Server configuration: ./config.example.js and copy to ./config.js
    • Browser configuration: ./public/js/client-config.example.js and copy to ./public/js/client-config.js
  3. Start the app via terminal:

    npm start
  4. Apollo will be running at http://localhost:3000/.

Using Google OAuth 2.0 authentication

You should be able to input your google auth credentials in ./config.js, set config.google.enable = true and it will work.

Google auth requires that you create a Google developer project in their developer console.

  1. Click Create Project and select that project
  2. Go to APIs and Auth > Credentials and click on "Create New Client ID" under Oauth
  3. Choose "Web Application".
  4. Add your site's base URL including http:// or https:// under "AUTHORIZED JAVASCRIPT ORIGINS". (e.g. https://localhost:8080)
  5. Add /auth/google/callback under "AUTHORIZED REDIRECT URI". (e.g. https://localhost:8080/auth/google/callback)
  6. Obtain the Client ID and Client Secret for Apollo (the google section of ./config.js)
  7. Go to APIs and Auth > Consent Screen and add your information including a product name

This blog post gives an overview of basic concepts for Google OAuth 2.0.

Extending Apollo

Custom message parsing plugins

Apollo lets you add your own plugins to parse message contents. You might want to turn a certain string into a link, or fetch an image when a particular string is in a message, embed a video, etc.

Message parsing plugins are middleware - executed asynchronously, in series according to the clientConfig.messageRenderingMiddleware array in your ./public/js/client-config.js file.

Example middleware:

function (messageInputText, next) {

    // replace all instances of "Billy" with "Cheeseface"
    var err = null;

    next(err, messageInputText.replace(/Billy/g, "Cheeseface"));

}
Custom server plugins

You can extend the base Apollo application.

An example plugin can be seen at ./example-plugin.js.

Apollo automatically loads (via require) all plugins that are placed in the ./plugins/ folder.

Desktop app

Apollo has a companion desktop application which uses node-webkit.

You must configure to point to your Apollo server, then build it. Thus, it will not work without first setting up an Apollo server.

Requirements

If you would like to build the desktop app, proceed with the following steps.

  1. Edit the following example config files and rename them:
    • ./nodewebkit.example.json to ./nodewebkit.json
    • ./public/passthrough.example.html to ./public/passthrough.html
  2. From the Apollo directory, run grunt release.
  3. The applications will be in the ./public/release/<your app name> folder.
  4. It is recommended to compress them by running grunt pack.

Screensharing - local setup

  1. You need the Respoke chrome extension setup.
  2. It only works over https.
  3. Using a tunnel like ngrok helps. Make sure you add it to the extension manifest.

Documentation

Run grunt jsdoxy.

Output goes to .docs/.

License

AGPL v3

See the LICENSE file for text.

Apollo - Copyright (c) 2015, Digium. All Rights Reserved. Licensed Software.

apollo's People

Contributors

ruffrey avatar pho3nixf1re avatar

Stargazers

Sergey Grachev avatar  avatar Béranger avatar  avatar  avatar Andrii Nugged avatar Robby Valles avatar Jason Cline avatar Deirdre Connolly avatar David Resseguie avatar Rob Warner avatar Peter Piekarczyk avatar Saúl Ibarra Corretgé avatar Michael Bunch avatar Jeremy Wilken avatar James Irwin avatar Richard Cirerol avatar Jean-Francis AHANDA avatar AJ Zane avatar Chad Carter avatar  avatar Catherine "Erin" Ishimoticha avatar Jason Fill avatar  avatar William Chia avatar  avatar

Watchers

David M. Lee avatar Dan Jenkins avatar Chad McElligott avatar Steven Sokol avatar  avatar Catherine "Erin" Ishimoticha avatar James Cloos avatar  avatar

apollo's Issues

Admin Password

Installed apollo and when access localhost: 3000 appears to login screen but can not login .

I created a new user and have not received the email password .

There are an administrator user? If so?
How do I use it?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.