GithubHelp home page GithubHelp logo

exexzian / hublin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from linagora/hublin

0.0 2.0 0.0 4.96 MB

An easy and free video conference service #webrtc

Home Page: https://hubl.in

License: Other

JavaScript 86.98% CSS 4.70% HTML 8.32%

hublin's Introduction

Hubl.in

Join the chat at https://gitter.im/linagora/hublin

Code Climate Build Status

Hubl.in is a free and open source video conference solution built with love and designed with ethics in mind. It's the best way to initiate a communication anywhere with anybody and brings real time conversation to the next level. Hubl.in allows free communication without additional plugins.

Installation

  1. clone the repository

     git clone https://ci.open-paas.org/stash/scm/meet/meetings.git
    
  2. Install and configure MongoDB

You must install mongoDB. We suggest you to use mongoDB version 2.6.5.

    echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | tee /etc/apt/sources.list.d/mongodb.list
    apt-get install -y mongodb-org=2.6.5 mongodb-org-server=2.6.5 mongodb-org-shell=2.6.5 mongodb-org-mongos=2.6.5 mongodb-org-tools=2.6.5
    service mongod start
  1. install node.js

Please note that your version of node.js must be greater than version 0.10.28 but less than or equal to 0.10.36. We highly recommend that you use nvm to install a specific version of node.

  1. Install Redis

     apt-get install redis-server
    
  2. Copy the sample db.json configuration file and adapt it to your need (especially the mongodb URL if you do not use default parameters from step 2)

     cp config/db.json.sample config/db.json
    
  3. Install the npm dependencies (as an administrator)

     npm install -g mocha grunt-cli bower karma-cli
    
  4. Go into the project directory and install project dependencies

     cd meetings
     npm install
    

Testing

You can check that everything works by launching the test suite:

grunt

If you want to launch tests from a single test, you can specify the file as command line argument. For example, you can launch the backend tests on the test/unit-backend/webserver/index.js file like this:

grunt test-unit-backend --test=test/unit-backend/webserver/index.js

Note: This works for backend and midway tests.

Some specialized Grunt tasks are available :

grunt linters # launch hinter and linter against the codebase
grunt test-frontend # only run the fontend unit tests
grunt test-unit-backend # only run the unit backend tests
grunt test-midway-bakend # only run the midway backend tests
grunt test # launch all the testsuite

Fixtures

Fixtures can be configured in the fixtures folder and injected in the system using grunt:

grunt fixtures

Note that this will override all the current configuration resources with the fixtures ones.

Starting the server

Use npm start to start the server !

npm start

Develop into Hubl.in

Running grunt dev will start the server in development mode. Whenever you make changes to server files, the server will be restarted. Make sure you have started the mongodb and redis servers beforehand.

In addition, you can run grunt debug to start the node-inspector debugger server. Visit the displayed URL in Chrome or Opera to start the graphical debugging session. Note that startup takes a while, you must wait until the Hubl.in webserver starts to do anything meaningful.

Updating files for distribution

grunt plugins are used to process files and generate distribution. You will have to follow some rules to not break the distribution generation which are defined here.

Frontend

Any project frontend file which is under frontend/js and used in a web page must be placed between generator tags. For example, in frontend/views/meetings/index.jade:

// <!--build:js({.tmp,frontend}) meetings.js-->
script(src='/js/modules/user/user.js')
...
script(src='/js/meetings/app.js')
// <!--endbuild-->

The files placed between the two comment lines will be used to generate a meetings.js file (concatenate and minify all).

Backend

All the files from backend are copied into the dist/backend folder without any change.

Static files

These folders are pushed in the distribution:

  • config
  • templates

If you need to add more, you will have to change the 'copy:dist' and 'dist-files' tasks in Gruntfile.js

Create a distribution

To create a distribution with clean environment, minified files and install production dependencies:

grunt dist-all
cd dist
npm install --production

Then you can start the server with 'npm start', 'node server', or your favorite tool (Kudos to forever).

Docker

Hubl.in is available on the Docker Hub as linagora/hublin, so you can pull it from there:

docker pull linagora/hublin

Or you can build it from the current git repository

docker build -t linagora/hublin .

The linagora/hublin container is configured to get the mongodb connection from mongodb://db:27017 URL. You can modify the config/db.json file and adapt to use your own instance, or continue to use Docker and use one of the solutions below.

docker-compose

docker-compose allows to describe and run distributed applications (cf docker-compose.yml file).

Note: A docker-compose based image is available on the Docker Hub at linagora/hublin-all.

Launch

docker-compose up

Build

docker-compose build

docker containers

You can pull all the required containers by hand (mongodb, redis), start them, and create the links when starting Hubl.in:

# get mongo and start it as a container named 'db'
docker pull mongo
docker run -d --name db mongo

docker pull redis
docker run -d --name redis redis

# start hubl.in
docker run -p 8080:8080 --link db:db --link redis:redis linagora/hublin

Once started, Hubl.in is available on http://<DOCKER_HOST>:8080.

Note: If you are on OS X and/or use boot2docker, DOCKER_HOST value will be the result of the 'boot2docker ip' call.

Embedding

Want to embed hubl.in on your website? Read more here.

License

Affero GPL v3

hublin's People

Contributors

chamerling avatar michaelbailly avatar grahamlinagora avatar jkornobis avatar kewisch avatar max-k avatar btngo avatar rockymeadow avatar yannickmy avatar kscc25 avatar laurentdubois avatar thomas-hilaire avatar lsc-linagora avatar gitter-badger avatar cphyc avatar pangboww avatar

Watchers

James Cloos avatar exex zian avatar

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.