• This repository has been archived on 24/Feb/2021
  • Stars
    star
    1,585
  • Rank 29,515 (Top 0.6 %)
  • Language
    JavaScript
  • License
    Other
  • Created over 9 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

DEPRECATED - An easy and free video conference service based on WebRTC

Deprecated

!!! This project is deprecated and not maintained anymore !!!

Hubl.in

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

Code Climate Codacy Badge CodeFactor Build Status Docker 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

A complete and more advanced documentation is available at https://linagora.github.io/hublin-doc. The following instructions assumes that you are installing Hublin on a debian distribution.

  1. clone the repository
git clone https://github.com/linagora/hublin.git
  1. Install node.js

Hublin uses Node 8. It is highly recommended that you use nvm to install a specific version of node.

nvm use
# will install and use required node version (lts/carbon)
  1. Go into the project root directory and install project dependencies
npm install
  1. Install and configure MongoDB

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

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
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. Copy the sample db.json configuration file and adapt it to your needs (especially the mongodb URL)
cp config/db.json.sample config/db.json
  1. Install Redis
apt-get install redis-server

A more advanced deployment using the Janus WebRTC Gateway is possible and described in the Hublin + Janus documentation.

Starting the server

Once all your services are ready and started (Mongo, Redis and optionally Janus), use npm start to start the server

npm start

Hublin is now available on http://localhost:8080.

Testing

First, install the required npm dependencies (as an administrator):

npm install -g mocha grunt-cli bower karma-cli

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 also available, check the Gruntfile.js file for more:

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-backend # 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.

Develop

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 services beforehand.

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 JS 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.pug file:

// <!--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://mongo: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).

You can launch Hublin with compose from the current directory:

DOCKER_IP=<YOUR DOCKER IP> docker-compose up

Where DOCKER_IP is the public IP address where Docker services can be reached. This will be used by Janus to send back the right IP to Web clients (ICE candidates) so that they can communicate with Janus correctly.

Janus with docker

The docker image configured for Janus is available on the Hub as linagora/hublin:janus.

docker pull linagora/hublin:janus

Or you can build it from the current repository

docker build -t linagora/hublin:janus -f Dockerfile.janus .

You can launch Hublin with Janus and all required services with Docker compose like:

DOCKER_IP=<YOUR DOCKER IP> docker-compose -f docker-compose.yml -f docker-compose.janus.yml up

If you want to launch required services except Hublin container to start it on your own for development purposes for example, you can do:

DOCKER_IP=<YOUR DOCKER IP> docker-compose -f docker-compose.yml -f docker-compose.janus.yml up janus-gateway mongo redis

And then start Hublin

NODE_ENV=dev npm start

Embedding

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

License

Affero GPL v3

More Repositories

1

Twake

Twake is a secure open source collaboration platform to improve organizational productivity.
TypeScript
1,682
star
2

openpaas-esn

Open PaaS Enterprise Social Network
JavaScript
464
star
3

linshare

LinShare
Shell
421
star
4

tmail-flutter

A multi-platform (Flutter) application for reading your emails, with your favorite devices, using the JMAP protocol!
Dart
314
star
5

twake-drive

The open-source alternative to Google Drive.
TypeScript
67
star
6

docker-janus-gateway

Run janus gateway well configure for hublin in a Docker container.
65
star
7

jmap-client

This repository provides a javascript lib to make requests against a JMAP server.
JavaScript
65
star
8

twake-on-matrix

A multi-platform (Flutter) application for connecting to Matrix - an open network for secure, decentralized communication, with your favorite devices.
Dart
58
star
9

Twake-Mobile

Twake mobile application
Dart
57
star
10

linshare-core

Open Source secure files sharing
Java
53
star
11

linshare-docker

JavaScript
51
star
12

OBM

[ARCHIVED] OBM Opensource Groupware Solution
PHP
46
star
13

tmail-backend

Scala
40
star
14

james-jenkins

Immutable Jenkins CI for Apache James
Groovy
39
star
15

jmap-client-ts

JMAP 1.0 client library in TypeScript
TypeScript
36
star
16

jmap-dart-client

A JMAP client library in Dart to make JMAP method calls and process the responses
Dart
29
star
17

opush

[ARCHIVED]
Java
22
star
18

TED

Replicated, encrypted, scalable and realtime collections based database for Twake
TypeScript
17
star
19

linshare-mobile-android-app

Android application for LinShare - https://linshare.org/
Kotlin
17
star
20

awesome-angular-swipe

[ARCHIVED] This library uses $swipe then exposes a directive which allows mobile swipe feature on everything in the DOM.
JavaScript
17
star
21

linshare-ui-admin

Vue
16
star
22

linshare-mobile-flutter-app

Mobile application for LinShare - https://linshare.org/
Dart
16
star
23

angular-clockpicker

A wrapper for linagora/clockpicker
JavaScript
14
star
24

dynamic-directive

[ARCHIVED] AngularJS Dynamic Directives
JavaScript
11
star
25

esn-frontend-inbox

Webmail SPA for the OpenPaaS Suite - https://open-paas.org
JavaScript
11
star
26

flutter-date-range-picker

A Flutter package for all platform which provides a custom date picker
Dart
11
star
27

james-gatling

Gatling tests for James email server
Scala
10
star
28

ToM-server

TypeScript
10
star
29

openpaas-tip-of-the-day

[ARCHIVED] Contributing and coding in OpenPaas demystified through one tip per day.
SCSS
9
star
30

esn-frontend-calendar

Calendar SPA for the OpenPaaS Suite - https://open-paas.org/
JavaScript
8
star
31

james-parent

Shell
7
star
32

linagora.esn.chat

๐Ÿฑ Module for OpenPaaS ESN
JavaScript
7
star
33

esn-sabre

SabreDAV for OpenPaaS ESN
PHP
7
star
34

mupee

[ARCHIVED] - A proxy to control the updates of your Mozilla software and addons
JavaScript
6
star
35

docker-sonarqube-pr

[ARCHIVED] Dockerized SonarQube for your Github and Stash PR
Shell
6
star
36

Twake-Desktop

Desktop App for Twake
TypeScript
6
star
37

esn-frontend-account

Account SPA for OpenPaaS https://open-paas.org/
JavaScript
6
star
38

poc-ejbca-ws-client.php

[ARCHIVED] a Proof of concept of an EJBCA webservice client written in PHP
PHP
6
star
39

james-admin-client

JS library to help configuring James through web administration APIs
JavaScript
6
star
40

linshare-database-dockerfile

Dockerfile
5
star
41

hubot-hublin

[ARCHIVED] Hubot integration with Hublin
CoffeeScript
5
star
42

esn-frontend-mailto

mailto: SPA for OpenPaaS
JavaScript
5
star
43

rich-text-composer

Unified rich text composer in Flutter
Dart
5
star
44

esn-frontend-contacts

Contacts SPA for the OpenPaaS Suite - https://open-paas.org/
JavaScript
5
star
45

linshare-ui-user

JavaScript
5
star
46

gatling-imap

IMAP Support for Gatling
Scala
5
star
47

hublin-ansible

[ARCHIVED] Automatic deployment tool for hubl.in
Shell
5
star
48

Landing

Landing site of Twake
HTML
5
star
49

OpenPaaS-NG-SP5

[ARCHIVED]
R
5
star
50

mozilla-version-comparator

[ARCHIVED] A node.js module that knows how to compare Mozilla products and addons versions
JavaScript
5
star
51

angular-translate-quality

[ARCHIVED] A JS library to verify the coherence and the correctness of angular-translate elements
JavaScript
4
star
52

linshare-ui-upload-request

Vue
4
star
53

esn-frontend-admin

Administration SPA for OpenPaaS
JavaScript
4
star
54

esn-frontend-common-libs

Common ground for OpenPaaS frontend (https://open-paas.org)
JavaScript
4
star
55

obm-deploy

[ARCHIVED] Ansible based OBM deployment system
JavaScript
4
star
56

esn

OpenPaaS web & API server
4
star
57

linshare-plugin-thunderbird

Thunderbird plugin for LinShare
JavaScript
4
star
58

i18n-checker

[ARCHIVED] Validate translation files
JavaScript
4
star
59

hublin-slack-integration

[ARCHIVED] Integrate Hubl.in with Slack.com
JavaScript
4
star
60

linshare-backend-dockerfile

Shell
4
star
61

linagora.esn.admin

Administration module for the ESN
JavaScript
3
star
62

linsign

[ARCHIVED] LinSign โ€“ Electronic signature application
Java
3
star
63

linshare-ui-admin-dockerfile

Dockerfile
3
star
64

vtiger-api-js-client

[ARCHIVED] A Javascript client to query vTiger 6 REST API
JavaScript
3
star
65

openpaas-videoconference-app

Videoconference app for OpenPaaS
JavaScript
3
star
66

lng-webdrone

[ARCHIVED] ARDrone + Nodejs + video streaming
HTML
3
star
67

crash-guice

[ARCHIVED] Crash Guice integration module
Java
3
star
68

linshare-api-client

JS library for Linshare APIs
JavaScript
3
star
69

esn-frontend-inbox-calendar

Intermediary frontend module for Calendar Web and Webmail frontend
JavaScript
3
star
70

grunt-docker-spawn

[ARCHIVED] Run docker containers with grunt.
JavaScript
3
star
71

esn-frontend-account-inbox

Intermediary frontend module for Inbox and account
JavaScript
2
star
72

openpaas-mailets

[ARCHIVED]
Java
2
star
73

Lincompliance

CSS
2
star
74

esn-frontend-application-grid

TypeScript
2
star
75

linshare-ui-upload-proposition

JavaScript
2
star
76

esn-frontend-linshare

OpenPaaS' AngularJS module for LinShare
JavaScript
2
star
77

dav-client

TypeScript
2
star
78

linagora-design-flutter

An enterprise-class UI design language and Flutter UI library
Dart
2
star
79

linshare-ui-user-dockerfile

Dockerfile
2
star
80

esn-frontend-calendar-public

Public calendar SPA for OpenPaaS
JavaScript
2
star
81

linagora.esn.unifiedinbox

JavaScript
2
star
82

esn-nginx-dockerfile

[ARCHIVED] nginx container for OpenPaaS ESN
Dockerfile
2
star
83

esn-frontend-inbox-linshare

LinShare plugin for OpenPaaS Unified Inbox module
JavaScript
2
star
84

linagora.esn.calendar

๐Ÿ“… Calendar module for OpenPaaS
JavaScript
2
star
85

TwakeMobileProxy

TypeScript
2
star
86

spews-importer-obm

[ARCHIVED] Tools that read SPEWS specific data, to migrate them to OBM using its provisioning API
TypeScript
2
star
87

openpaas-logo

[ARCHIVED] The OpenPaaS logo, ready to spin
JavaScript
2
star
88

openpaas-doc

OpenPaaS Documentation ๐Ÿค˜๐Ÿป
SCSS
2
star
89

contact-update-from-mail

Prediction framework and coupling with OpenPaaS to fetch info from email signature and complete contacts
Java
2
star
90

esn-frontend-mailto-handler

Mailto: links handler, to open them with OpenPaaS webmail
JavaScript
2
star
91

linshare-ui-editor-onlyoffice

Frontend part for LinShare editor tool using OnlyOffice
JavaScript
2
star
92

poc-ejbca-ws-client.java

[ARCHIVED] The Java version of our Ejbca WS client poc
Java
2
star
93

linshare-dockerfile

Official LinShare Docker image
Shell
2
star
94

ogp-flow-proxy

[ARCHIVED]
JavaScript
2
star
95

linshare-thumbnail-engine

Java
2
star
96

vue-openpaas-components

[ARCHIVED] A collection of Vue components to be used by OpenPaaS Vue apps
JavaScript
1
star
97

uds-docker-2

[ARCHIVED] Matรฉriel utilisรฉ lors de la seconde UDS concernant Docker
HTML
1
star
98

esn-elasticsearch-dockerfile

[ARCHIVED] Dockerfile for OpenPaaS ESN Elasticsearch instance
Shell
1
star
99

connect-dynamic-middleware

Allow to change the middleware dynamically in a running connect/express application.
Python
1
star
100

calendar-next-gen

Vue
1
star