Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ennuicastr/ennuicastr-server
The server for Ennuicastr ( https://ecastr.com/ )
https://github.com/ennuicastr/ennuicastr-server
Last synced: 9 days ago
JSON representation
The server for Ennuicastr ( https://ecastr.com/ )
- Host: GitHub
- URL: https://github.com/ennuicastr/ennuicastr-server
- Owner: ennuicastr
- License: other
- Created: 2020-02-20T00:32:13.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-04-29T19:58:11.000Z (7 months ago)
- Last Synced: 2024-05-21T20:11:35.749Z (6 months ago)
- Language: JavaScript
- Homepage:
- Size: 5.55 MB
- Stars: 42
- Watchers: 4
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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](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](https://github.com/Yahweasel/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';
}
```