From 32b87ae4c1aaaafb1e0f051e3072e1597fa13f34 Mon Sep 17 00:00:00 2001 From: Daniel Berteaud Date: Thu, 12 Mar 2015 17:56:59 +0100 Subject: [PATCH] Start writing some documentation There're still some issues with TOC not scrolling --- public/js/vroom.js | 34 ++++++++ templates/default/documentation.html.ep | 132 +++++++++++++++++++++++++++++++ templates/default/public_toolbar.html.ep | 2 +- 3 files changed, 167 insertions(+), 1 deletion(-) diff --git a/public/js/vroom.js b/public/js/vroom.js index e096078..2583a00 100644 --- a/public/js/vroom.js +++ b/public/js/vroom.js @@ -403,6 +403,40 @@ function initIndex(){ }); } +// The documentation page +function initDoc(){ + $('#doc-toc').width($('#doc-toc').parents().width()); + $('#doc-toc').toc({ + elementClass: 'toc', + ulClass: 'nav', + heading: 'Content', + indexingFormats: 'number' + }); + + // Scroll to the table of content section when user scroll the mouse + $('body').scrollspy({ + target: '#doc-toc', + offset: $('#headerNav').outerHeight(true) + 40 + }); + + setTimeout(function() { + var $sideBar = $('#doc-toc'); + $sideBar.affix({ + offset: { + top: function() { + var offsetTop = $sideBar.offset().top, + sideBarMargin = parseInt($sideBar.children(0).css('margin-top'), 10), + navOuterHeight = $('#headerNav').height(); + return (this.top = offsetTop - navOuterHeight - sideBarMargin); + }, + bottom: function() { + return (this.bottom = $('footer').outerHeight(true)); + } + } + }); + }, 100); +} + // Used on the room admin page function initAdminRooms(){ var roomList = {}; diff --git a/templates/default/documentation.html.ep b/templates/default/documentation.html.ep index d457297..6ebfc25 100644 --- a/templates/default/documentation.html.ep +++ b/templates/default/documentation.html.ep @@ -2,5 +2,137 @@ %= include 'header' %= include 'public_toolbar'
+
+ +
+

+ Introduction +

+

+ VROOM (short for Video ROOM) is a simple to use, web-based and opensource (MIT licence) video conferencing application. + It's based on several other softwares, most notably the excellent SimpleWebRTC lib. +

+

+ VROOM uses the latest WebRTC technologies to allow video conferencing through a web browser without any plugin. + There are several more or less similar hosted solutions available (like + talky.io, + appear.in, + vLine.com for example). + Most of them are more polished than VROOM, but I've found none entirely opensource, so I started this project. +

+

+ Features +

+

+ VROOM implements the following features: +

    +
  • Video/audio conversations (no limit on the number of peers)
  • +
  • Text chat (and you can save history)
  • +
  • Screen sharing
  • +
  • Email invitations
  • +
  • Email notification when someone joins one of your rooms
  • +
  • Persistent/reserved rooms
  • +
  • Chairman functionnalities (mute/pause/kick other peers)
  • +
  • Grant chairman role to other peers
  • +
  • Password protected rooms (different passwords for access and chairman)
  • +
  • Music on hold (when you're alone in a room)
  • +
  • Can be optionaly integrated with Etherpad-Lite
  • +
+

+

+ VROOM is translated in French and English. You're welcome to submit patches or pull requests to enhance localization, or add new ones. +

+

+ Install your own VROOM instance +

+ The following guide will help you installing VROOM on your own server +

+ Requirements +

+

+ If you want to run your own server, you'll need the following components +

    +
  • Mojolicious 5 or better
  • +
  • A MySQL compatible server (MySQL or MariaDB)
  • +
  • A webserver supporting HTTPS and reverse proxying, including websocket reverse proxying (Apache can do this with mod_proxy_ws)
  • +
  • The following perl modules +
      +
    • Mojolicious::Plugin::Mail
    • +
    • Mojolicious::Plugin::Database
    • +
    • Crypt::SaltedHash
    • +
    • MIME::Base64
    • +
    • Etherpad::API
    • +
    • Session::Token
    • +
    • Config::Simple
    • +
    • Email::Valid
    • +
    • URI
    • +
    • Protocol::SocketIO::Handshake
    • +
    • Protocol::SocketIO::Message
    • +
    +
+ + It's also advised to run VROOM on a systemd powered distribution (simply because that's what I use and I include service units for VROOM). For the same reason, I recommend running Apache as webserver (others like Nginx probably work too, but I provide configuration sample only for Apache) +

+

+ While VROOM should run on any distro, it's only tested on CentOS 7 x86_64, so it's the recommended platform. + Also, I provide packages for all dependencies in my repository, so it'll be much easier to install it this way. + If you have it running on another system, please send me your notes so I can update this documentation. +

+

+ Install on CentOS 7 x86_64 +

+

+ This guide assumes that you have installed a minimal CentOS 7 x86_64 system +

+

+ Configure the required repositories +

+

+ You need to configure both EPEL and FWS repo
+

+cat <<'_EOF' > /etc/yum.repos.d/fws.repo
+[fws]
+enabled=1
+baseurl=http://repo.firewall-services.com/centos/$releasever/
+name=Firewall Services
+gpgcheck=1
+gpgkey=http://repo.firewall-services.com/RPM-GPG-KEY
+enablegroups=0
+ 
+[fws-testing]
+enabled=0
+baseurl=http://repo.firewall-services.com/centos-testing/$releasever/
+name=Firewall Services Testing
+gpgcheck=1
+gpgkey=http://repo.firewall-services.com/RPM-GPG-KEY
+enablegroups=0
+_EOF
+yum install epel-release
+        
+

+

+ Install dependencies +

+

+ The follwoing command will install everything required to run VROOM +

+yum install git tar wget httpd mod_ssl openssl mariadb-server \\
+           'perl(Mojolicious)' 'perl(Mojolicious::Plugin::I18N)' 'perl(Mojolicious::Plugin::Mail)' \\
+           'perl(Crypt::SaltedHash)' 'perl(Etherpad::API)' 'perl(LWP::Protocol::https)' \\
+           'perl(Sesion::Token)' 'perl(Mojolicious::Plugin::Database)' 'perl(Email::Valid)' \\
+           'perl(Config::Simple)' 'perl(Session::Token)' 'perl(URI)'
+        
+

+
+
+%= include 'js_common' + %= include 'footer' diff --git a/templates/default/public_toolbar.html.ep b/templates/default/public_toolbar.html.ep index 12f8a9e..73f9f96 100644 --- a/templates/default/public_toolbar.html.ep +++ b/templates/default/public_toolbar.html.ep @@ -1,4 +1,4 @@ -