Git Product home page Git Product logo

ennuicastr-server's Introduction

This is the server component for Ennuicastr, a system for recording multiple users distributed across the world in a well-synchronized way, without significant loss, over the web. This is the server software that runs https://ecastr.com/ , the main installation of Ennuicastr.

This software is divided into several subcomponents:

db: The database

njsp: The configuration for NodeJS-Server-Pages (npm install nodejs-server-pages), which is needed to run the templated web site component.

server: The server for Ennuicastr recordings itself.

web: The web page

cook: Tools used to process raw audio into usable formats.

Some very light documentation on running your own instance of Ennuicastr is provided in docs/INSTALL.md.

Server requirements

The server has two main components: The Ennuicastr protocol server, and the web components. The web components use nodejs-server-pages, so you'll need to set up your web server of choice to use that.

For nodejs-server-pages WebSockets to work, your web server needs to delegate /ws accesses to it. In nginx, for example:

        location ~ /ws$ {
                proxy_pass http://unix:/tmp/nodejs-server-pages-ws.sock;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
                proxy_set_header Host $host;
                proxy_read_timeout 86400;
                proxy_send_timeout 86400;
                send_timeout 86400;
        }

For the AudioWorkletProcessor to be able to use SharedArrayBuffer, you need the correct "security" features. For instance, in nginx:

        add_header 'Cross-Origin-Opener-Policy' 'same-origin';
        add_header 'Cross-Origin-Embedder-Policy' 'require-corp';

The client uses Jitsi to communicate, so you'll need to set up a Jitsi server. If the client is at https://weca.st/ , then Jitsi must be at https://jitsi.weca.st/ . That is, it must be at jitsi.X, where X is the domain used for the client.

You can hide the actual Jitsi interface, since Ennuicastr provides its own. In nginx, for example:

    location = / {
        return 301 https://ecastr.com/;
    }

...

    location @root_path {
        #rewrite ^/(.*)$ / break;
        return 301 https://ecastr.com/;
    }

Jitsi will also need correct CORS so that it can be connected to from another domain. For instance, with nginx and weca.st:

    location = /http-bind {
...
        add_header 'Access-Control-Allow-Origin' 'https://weca.st';
        add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
    }

ennuicastr-server's People

Contributors

yahweasel avatar

Stargazers

Yonatan avatar  avatar Arthur Rosa avatar  avatar Yassine Doghri avatar Benjamin Bellamy avatar thebabush avatar Michał Janiszewski avatar Michael Richters avatar  avatar  avatar Noel Towa avatar David Ralph avatar Gergely Papp avatar Kerry Hoath avatar SiYoungOh avatar Anthony Ronda avatar  avatar Panos Kountanis avatar Kyle Robbertze avatar  avatar  avatar Dulara Amaranayaka avatar  avatar Neal Gompa (ニール・ゴンパ) avatar Martin Loy avatar Rich Visotcky avatar  avatar Tim Reid avatar Philippe Jadin avatar Aubrey Falconer avatar Marek Vybíral avatar Alex Silva avatar 0x0 avatar f0rdfisher avatar  avatar Patricio Priede avatar Adam Howard avatar Ricardo avatar Timothy Cyrus avatar  avatar Josh Babetski avatar

Watchers

 avatar  avatar f0rdfisher avatar Jonas Faure avatar

ennuicastr-server's Issues

Half-connection

One report of a user who was connected from their end, but showed as disconnected on the host!

Missing a License

Under US law that makes this application All Right Reserved while in other parts of the world it's barely better than public domain.
Please add a license so we can understand distribution rights which are also needed for pull requests on github which requires forking/copying this repo first unless you'd rather we share patch files.

Mystery disconnections

Having issues with immediate disconnections. Possibly just server firewall issues outside of my control?

Safari browser caused downloaded files to be garbled

Hey there,

My step-dad and I tried out your service. He has a mac and used the Safari browser. Everything worked well, once he selected the proper input in the Sound control panel thing.

However on download of the files, his side of the recording is really terribly garbled and basically unintelligible. It doesn't seem to matter the file type, either.

My interface was a sound devices usbpre2 and his was a Presonus audiobox 96. I suppose the next thing I'll do is talk him into using Firefox.

Do you know of any issues with Safari and ecaster?

Thanks!

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.