added new path /webrtc for testing purposes
This commit is contained in:
		
							
								
								
									
										4
									
								
								nodejs/etc/default/safechat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								nodejs/etc/default/safechat
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
#EXEC_SAFECHAT="/usr/bin/nodejs /usr/share/safechat/nodejs/safechat"
 | 
			
		||||
#SAFECHAT_LOG="/var/log/SAFECHAT.log"
 | 
			
		||||
#SAFECHAT="safechat"
 | 
			
		||||
#SAFECHAT_PORT="8888"
 | 
			
		||||
							
								
								
									
										38
									
								
								nodejs/etc/init/safechat.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								nodejs/etc/init/safechat.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
#!upstart
 | 
			
		||||
description "Secure and Encrypted Chat Server"
 | 
			
		||||
author      "Marc Wäckerlin (https://marc.wäckerlin.ch) <marc@waeckerlin.org>"
 | 
			
		||||
 | 
			
		||||
start on (local-filesystems and net-device-up)
 | 
			
		||||
stop on runlevel [!2345]
 | 
			
		||||
 | 
			
		||||
respawn
 | 
			
		||||
 | 
			
		||||
script
 | 
			
		||||
    echo $$ > /var/run/safechat.pid
 | 
			
		||||
    # there are some useful defaults
 | 
			
		||||
    # do not edit this file, overwrite values in /etc/default/safechat
 | 
			
		||||
    EXEC_SAFECHAT="/usr/bin/nodejs /usr/share/safechat/nodejs/safechat"
 | 
			
		||||
    SAFECHAT_LOG="/var/log/safechat.log"
 | 
			
		||||
    SAFECHAT_USER="safechat"
 | 
			
		||||
    SAFECHAT_PORT=""
 | 
			
		||||
    [ -r /etc/default/safechat ] && . /etc/default/safechat
 | 
			
		||||
    if test -n "${SAFECHAT_USER}"; then
 | 
			
		||||
        exec sudo -u "${SAFECHAT_USER}" ${EXEC_SAFECHAT} ${SAFECHAT_PORT} >> ${SAFECHAT_LOG} 2>&1
 | 
			
		||||
    else
 | 
			
		||||
        exec ${EXEC_SAFECHAT} ${SAFECHAT_PORT} >> ${SAFECHAT_LOG} 2>&1
 | 
			
		||||
    fi
 | 
			
		||||
end script
 | 
			
		||||
 | 
			
		||||
pre-start script
 | 
			
		||||
    SAFECHAT_LOG="/var/log/safechat.log"
 | 
			
		||||
    [ -r /etc/default/safechat ] && . /etc/default/safechat
 | 
			
		||||
    # Date format same as (new Date()).toISOString() for consistency
 | 
			
		||||
    echo "[2016-11-25T11:53:52.543Z] (sys) Starting" >> ${SAFECHAT_LOG}
 | 
			
		||||
end script
 | 
			
		||||
 | 
			
		||||
pre-stop script
 | 
			
		||||
    SAFECHAT_LOG="/var/log/safechat.log"
 | 
			
		||||
    [ -r /etc/default/safechat ] && . /etc/default/safechat
 | 
			
		||||
    rm /var/run/safechat.pid
 | 
			
		||||
    echo "[2016-11-25T11:53:52.544Z] (sys) Stopping" >> ${SAFECHAT_LOG}
 | 
			
		||||
end script
 | 
			
		||||
@@ -1,24 +1,38 @@
 | 
			
		||||
## @id $Id$
 | 
			
		||||
 | 
			
		||||
##
 | 
			
		||||
## This file has been added:
 | 
			
		||||
##  - by bootstrap.sh
 | 
			
		||||
##  -  on Fri, 25 November 2016 13:55:11 +0100
 | 
			
		||||
## Feel free to change it or even remove and rebuild it, up to your needs
 | 
			
		||||
##
 | 
			
		||||
##       1         2         3         4         5         6         7         8
 | 
			
		||||
## 45678901234567890123456789012345678901234567890123456789012345678901234567890
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST = package.json.in database doc public routes sockets safechat.js views
 | 
			
		||||
EXTRA_DIST = @PACKAGE_NAME@.js package.json.in public routes sockets views
 | 
			
		||||
 | 
			
		||||
nodejsdir = ${pkgdatadir}/nodejs
 | 
			
		||||
 | 
			
		||||
node_modules:
 | 
			
		||||
	npm install
 | 
			
		||||
sysconfdefaultdir = ${sysconfdir}/default
 | 
			
		||||
sysconfinitdir = ${sysconfdir}/init
 | 
			
		||||
dist_sysconf_DATA = etc/@PACKAGE_NAME@.json
 | 
			
		||||
dist_sysconfdefault_DATA = etc/default/@PACKAGE_NAME@
 | 
			
		||||
dist_sysconfinit_DATA = etc/init/@PACKAGE_NAME@.conf
 | 
			
		||||
 | 
			
		||||
all: node_modules
 | 
			
		||||
 | 
			
		||||
node_modules: package.json.in
 | 
			
		||||
	HOME=. npm install
 | 
			
		||||
 | 
			
		||||
clean-local:
 | 
			
		||||
	-rm -r node_modules .npm
 | 
			
		||||
 | 
			
		||||
install-data-hook:
 | 
			
		||||
	test -d $(DESTDIR)${nodejsdir} || mkdir -p $(DESTDIR)${nodejsdir}
 | 
			
		||||
	chmod -R u+w $(DESTDIR)${nodejsdir}
 | 
			
		||||
	cp -r . $(DESTDIR)${nodejsdir}
 | 
			
		||||
 | 
			
		||||
uninstall-local:
 | 
			
		||||
	-chmod -R u+w $(DESTDIR)${nodejsdir}
 | 
			
		||||
	-rm -rf $(DESTDIR)${nodejsdir}
 | 
			
		||||
 | 
			
		||||
clean-local:
 | 
			
		||||
	-rm -rf node_modules
 | 
			
		||||
 | 
			
		||||
MAINTAINERCLEANFILES = makefile.in
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "@PACKAGE_NAME@",
 | 
			
		||||
  "version": "@PACKAGE_VERSION@",
 | 
			
		||||
  "documentation": "https://dev.marc.waeckerlin.org/doc/safechat/",
 | 
			
		||||
  "private": true,
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "ejs": "~2.5.2",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								nodejs/public/stylesheets/style.styl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								nodejs/public/stylesheets/style.styl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
body
 | 
			
		||||
  padding: 50px
 | 
			
		||||
  font: 14px "Lucida Grande", Helvetica, Arial, sans-serif
 | 
			
		||||
a
 | 
			
		||||
  color: #00B7FF
 | 
			
		||||
@@ -6,9 +6,17 @@
 | 
			
		||||
var package = require(__dirname+"/../package.json");
 | 
			
		||||
 | 
			
		||||
exports.index = function(req, res) {
 | 
			
		||||
    res.render('index', {
 | 
			
		||||
        projecturl: "https://dev.marc.waeckerlin.org/redmine/projects/safechat/embedded/index.html",
 | 
			
		||||
        packagename: package.name,
 | 
			
		||||
        packageversion: package.version
 | 
			
		||||
  res.render(path, {
 | 
			
		||||
    projecturl: package.documentation,
 | 
			
		||||
    packagename: package.name,
 | 
			
		||||
    packageversion: package.version
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
exports.webrtc = function(req, res) {
 | 
			
		||||
  res.render('webrtc', {
 | 
			
		||||
    projecturl: package.documentation,
 | 
			
		||||
    packagename: package.name,
 | 
			
		||||
    packageversion: package.version
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,11 +2,10 @@
 | 
			
		||||
 * Module dependencies.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
var express    = require('express'),
 | 
			
		||||
    routes     = require(__dirname+'/routes');
 | 
			
		||||
 | 
			
		||||
var package = require(__dirname+'/package.json');
 | 
			
		||||
var config = require(package.path.config);
 | 
			
		||||
var express = require('express');
 | 
			
		||||
var routes = require(__dirname+'/routes');
 | 
			
		||||
var app = module.exports = express.createServer();
 | 
			
		||||
var io  = require('socket.io').listen(app);
 | 
			
		||||
var sql = require(__dirname+'/database')(config.mysql);
 | 
			
		||||
@@ -58,6 +57,7 @@ io.sockets.on('connection', sockets.connection);
 | 
			
		||||
// Routes
 | 
			
		||||
 | 
			
		||||
app.get('/', routes.index);
 | 
			
		||||
app.get('/webrtc', routes.webrtc);
 | 
			
		||||
 | 
			
		||||
app.listen(config.port, function(){
 | 
			
		||||
  console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										54
									
								
								nodejs/views/webrtc.ejs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								nodejs/views/webrtc.ejs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
<!DOCTYPE HTML>
 | 
			
		||||
<html>
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 | 
			
		||||
    <meta name="viewport" content="width=device-width initial-scale=1" />
 | 
			
		||||
    <link href="stylesheets/safechat.css" rel="stylesheet" type="text/css" />
 | 
			
		||||
    <script type="text/javascript" src="jquery/jquery.min.js"></script>
 | 
			
		||||
    <link href="stylesheets/jquery.cssemoticons.css" media="screen" rel="stylesheet" type="text/css" />
 | 
			
		||||
    <script src="javascripts/ext/jquery.cssemoticons.js" type="text/javascript"></script>
 | 
			
		||||
    <title>WebRTC Test</title>
 | 
			
		||||
  </head>
 | 
			
		||||
 | 
			
		||||
  <body>
 | 
			
		||||
    <h1>WebRTC test</h1>
 | 
			
		||||
    <div id="status">
 | 
			
		||||
    <div id="main">
 | 
			
		||||
      <noscript>JavaScript is required!</noscript>
 | 
			
		||||
      <video autoplay></video>
 | 
			
		||||
    </div>
 | 
			
		||||
    <script>
 | 
			
		||||
     try {
 | 
			
		||||
       var errorCallback = function(e) {
 | 
			
		||||
         $('#status').html('ERROR: '+e)
 | 
			
		||||
         console.log('ERROR:', e)
 | 
			
		||||
       }
 | 
			
		||||
       navigator.getUserMedia = navigator.getUserMedia ||
 | 
			
		||||
                                navigator.webkitGetUserMedia ||
 | 
			
		||||
                                navigator.mozGetUserMedia ||
 | 
			
		||||
                                navigator.msGetUserMedia
 | 
			
		||||
       if (navigator.getUserMedia) {
 | 
			
		||||
         // Not showing vendor prefixes.
 | 
			
		||||
         navigator.getUserMedia({
 | 
			
		||||
           video: true,
 | 
			
		||||
           audio: true,
 | 
			
		||||
           facingMode: "user"
 | 
			
		||||
         }, function(localMediaStream) {
 | 
			
		||||
           var video = document.querySelector('video')
 | 
			
		||||
           video.src = window.URL.createObjectURL(localMediaStream)
 | 
			
		||||
           
 | 
			
		||||
           // Note: onloadedmetadata doesn't fire in Chrome when using it with getUserMedia.
 | 
			
		||||
           // See crbug.com/110938.
 | 
			
		||||
           video.onloadedmetadata = function(e) {
 | 
			
		||||
             // Ready to go. Do some stuff.
 | 
			
		||||
           };
 | 
			
		||||
         }, errorCallback)
 | 
			
		||||
       } else {
 | 
			
		||||
         $('#status').html('ERROR: WebRTC not fully supported in this browser')
 | 
			
		||||
       }
 | 
			
		||||
     } catch (e) {
 | 
			
		||||
       $('#status').html('ERROR: '+e.message)
 | 
			
		||||
     }
 | 
			
		||||
    </script>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
		Reference in New Issue
	
	Block a user