vdo.ninja docker
7
app/Dockerfile
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
FROM nginx:alpine
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY .. .
|
||||||
|
|
||||||
|
COPY nginx.conf /etc/nginx/nginx.conf
|
||||||
10
app/docker-compose.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
version: "3.9"
|
||||||
|
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
container_name: app
|
||||||
|
image: app
|
||||||
|
build: .
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "8080:80"
|
||||||
33
app/nginx.conf
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
include mime.types;
|
||||||
|
sendfile on;
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
|
||||||
|
server_name vdo.ninja;
|
||||||
|
|
||||||
|
root /app/static;
|
||||||
|
index index.html;
|
||||||
|
|
||||||
|
|
||||||
|
location ~ ^/([^/]+)/([^/?]+)$ {
|
||||||
|
root /app/static;
|
||||||
|
try_files /$1/$2 /$1/$2.html /$1/$2/ /$2 /$2/ /$1/index.html;
|
||||||
|
add_header Access-Control-Allow-Origin *;
|
||||||
|
}
|
||||||
|
|
||||||
|
location / {
|
||||||
|
if ($request_uri ~ ^/(.*)\.html$) {
|
||||||
|
return 302 /$1;
|
||||||
|
}
|
||||||
|
try_files $uri $uri.html $uri/ /index.html;
|
||||||
|
add_header Access-Control-Allow-Origin *;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
0
.gitignore → app/static/.gitignore
vendored
@ -1,7 +1,7 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<link rel="stylesheet" href="./lineawesome/css/line-awesome.min.css" />
|
<link rel="stylesheet" href="lineawesome/css/line-awesome.min.css" />
|
||||||
<link rel="stylesheet" href="./speedtest.css?ver=1" />
|
<link rel="stylesheet" href="speedtest.css?ver=1" />
|
||||||
<meta charset="utf8" />
|
<meta charset="utf8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<title>VDON Stream Test</title>
|
<title>VDON Stream Test</title>
|
||||||
@ -118,7 +118,7 @@
|
|||||||
Accept the camera and microphone permissions if prompted.<br /><br />
|
Accept the camera and microphone permissions if prompted.<br /><br />
|
||||||
<small><i>No one will be able to see your video or audio, other than you.</i></small>
|
<small><i>No one will be able to see your video or audio, other than you.</i></small>
|
||||||
<br /><br />
|
<br /><br />
|
||||||
<img src='./media/accept.png'/><br />
|
<img src='media/accept.png'/><br />
|
||||||
🌠🌠🌠<button onclick="next3();">Continue</button>⭐
|
🌠🌠🌠<button onclick="next3();">Continue</button>⭐
|
||||||
|
|
||||||
</h2>
|
</h2>
|
||||||
@ -677,7 +677,7 @@
|
|||||||
|
|
||||||
var testType= "webcam&quality=0&css=speedtest.css";
|
var testType= "webcam&quality=0&css=speedtest.css";
|
||||||
if (urlParams.has("screen") || urlParams.has("ss") || urlParams.has("screenshare") || urlParams.has("screentest")) {
|
if (urlParams.has("screen") || urlParams.has("ss") || urlParams.has("screenshare") || urlParams.has("screentest")) {
|
||||||
document.getElementById("screen").innerHTML = '<a href="./speedtest.html" style="color: #CCC;">Test webcam-streaming performance here</a>';
|
document.getElementById("screen").innerHTML = '<a href="speedtest.html" style="color: #CCC;">Test webcam-streaming performance here</a>';
|
||||||
testType = "quality=0&screenshare&css=speedtest.css"
|
testType = "quality=0&screenshare&css=speedtest.css"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3,14 +3,14 @@
|
|||||||
<title>Comms app</title>
|
<title>Comms app</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||||
<meta content="text/html;charset=utf-8" http-equiv="Content-Type" />
|
<meta content="text/html;charset=utf-8" http-equiv="Content-Type" />
|
||||||
<script src="./thirdparty/jquery/jquery-3.6.0.js?asdf"></script>
|
<script src="thirdparty/jquery/jquery-3.6.0.js?asdf"></script>
|
||||||
<script src="./thirdparty/jquery/jquery-ui.js"></script>
|
<script src="thirdparty/jquery/jquery-ui.js"></script>
|
||||||
<link rel="stylesheet" href="./thirdparty/jquery/jquery-ui.css">
|
<link rel="stylesheet" href="thirdparty/jquery/jquery-ui.css">
|
||||||
<link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon" />
|
<link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon" />
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="./media/favicon-32x32.png" />
|
<link rel="icon" type="image/png" sizes="32x32" href="media/favicon-32x32.png" />
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="./media/favicon-16x16.png" />
|
<link rel="icon" type="image/png" sizes="16x16" href="media/favicon-16x16.png" />
|
||||||
<link rel="icon" href="./media/favicon.ico" />
|
<link rel="icon" href="media/favicon.ico" />
|
||||||
<link itemprop="thumbnailUrl" href="./media/vdoNinja_logo_full.png" />
|
<link itemprop="thumbnailUrl" href="media/vdoNinja_logo_full.png" />
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Sora:wght@200;400;700&display=swap" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/css2?family=Sora:wght@200;400;700&display=swap" rel="stylesheet">
|
||||||
@ -975,7 +975,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="gone" >
|
<div class="gone" >
|
||||||
<!-- This image is used when dragging elements -->
|
<!-- This image is used when dragging elements -->
|
||||||
<img src="./media/favicon-32x32.png" style="pointer-events: none;" id="dragImage" loading="lazy" />
|
<img src="media/favicon-32x32.png" style="pointer-events: none;" id="dragImage" loading="lazy" />
|
||||||
</div>
|
</div>
|
||||||
<div id="messagePopup" class="popup-message"></div>
|
<div id="messagePopup" class="popup-message"></div>
|
||||||
<script>
|
<script>
|
||||||
@ -1,5 +1,5 @@
|
|||||||
<head>
|
<head>
|
||||||
<link rel="stylesheet" href="./main.css?ver=40" />
|
<link rel="stylesheet" href="main.css?ver=40" />
|
||||||
<style>
|
<style>
|
||||||
.container {
|
.container {
|
||||||
max-width: min(80%,875px);
|
max-width: min(80%,875px);
|
||||||
@ -87,7 +87,7 @@
|
|||||||
|
|
||||||
<body style='color:white'>
|
<body style='color:white'>
|
||||||
<div id="header">
|
<div id="header">
|
||||||
<a id="logoname" href="./" style="text-decoration: none; color: white; margin: 2px">
|
<a id="logoname" href="../.." style="text-decoration: none; color: white; margin: 2px">
|
||||||
<span data-translate="logo-header">
|
<span data-translate="logo-header">
|
||||||
<font id="qos">V</font>DO.Ninja
|
<font id="qos">V</font>DO.Ninja
|
||||||
</span>
|
</span>
|
||||||
@ -149,7 +149,7 @@
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script src="./thirdparty/ffmpeg.min.js"></script>
|
<script src="thirdpartyfmpeg.min.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
window.onerror = function backupErr(errorMsg, url=false, lineNumber=false) {
|
window.onerror = function backupErr(errorMsg, url=false, lineNumber=false) {
|
||||||
@ -1,8 +1,8 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<link rel="stylesheet" href="./lineawesome/css/line-awesome.min.css" />
|
<link rel="stylesheet" href="lineawesome/css/line-awesome.min.css" />
|
||||||
<link rel="stylesheet" href="./main.css?ver=11" />
|
<link rel="stylesheet" href="main.css?ver=11" />
|
||||||
<link rel="stylesheet" href="./devices.css?ver=1" />
|
<link rel="stylesheet" href="devices.css?ver=1" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<meta charset="utf8" />
|
<meta charset="utf8" />
|
||||||
</head>
|
</head>
|
||||||
@ -10,7 +10,7 @@
|
|||||||
<div id="header">
|
<div id="header">
|
||||||
<a
|
<a
|
||||||
id="logoname"
|
id="logoname"
|
||||||
href="./"
|
href="../.."
|
||||||
style="text-decoration: none; color: white; margin: 2px"
|
style="text-decoration: none; color: white; margin: 2px"
|
||||||
>
|
>
|
||||||
<span data-translate="logo-header">
|
<span data-translate="logo-header">
|
||||||
@ -292,7 +292,7 @@ document.addEventListener("dragstart", event => {
|
|||||||
</div>
|
</div>
|
||||||
<div class="gone" >
|
<div class="gone" >
|
||||||
<!-- This image is used when dragging elements -->
|
<!-- This image is used when dragging elements -->
|
||||||
<img src="./media/favicon-32x32.png" id="dragImage" />
|
<img src="media/favicon-32x32.png" id="dragImage" />
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@ -2,7 +2,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||||
<link rel="stylesheet" href="./lineawesome/css/line-awesome.min.css" />
|
<link rel="stylesheet" href="lineawesome/css/line-awesome.min.css" />
|
||||||
<style>
|
<style>
|
||||||
html {
|
html {
|
||||||
border:0;
|
border:0;
|
||||||
@ -403,7 +403,7 @@ if (location.hostname.toLowerCase() == "vdo.ninja"){
|
|||||||
} else{
|
} else{
|
||||||
document.getElementById("version").innerHTML = "Elevate app privilleges to see current version";
|
document.getElementById("version").innerHTML = "Elevate app privilleges to see current version";
|
||||||
try{
|
try{
|
||||||
const ipcRenderer = require('electron').ipcRenderer;
|
const ipcRenderer = require('app/static/electron').ipcRenderer;
|
||||||
console.log("ELECTRON DETECTED");
|
console.log("ELECTRON DETECTED");
|
||||||
ipcRenderer.on('appVersion', function(event, version) {
|
ipcRenderer.on('appVersion', function(event, version) {
|
||||||
console.log("version: "+version);
|
console.log("version: "+version);
|
||||||
|
Before Width: | Height: | Size: 814 B After Width: | Height: | Size: 814 B |
@ -1,5 +1,5 @@
|
|||||||
<head>
|
<head>
|
||||||
<link rel="stylesheet" href="../main.css?ver=40" />
|
<link rel="stylesheet" href="../../main.css?ver=40" />
|
||||||
<style>
|
<style>
|
||||||
.container {
|
.container {
|
||||||
max-width: 900px;
|
max-width: 900px;
|
||||||
@ -58,7 +58,7 @@
|
|||||||
|
|
||||||
<body style='color:white'>
|
<body style='color:white'>
|
||||||
<div id="header">
|
<div id="header">
|
||||||
<a id="logoname" href="./" style="text-decoration: none; color: white; margin: 2px">
|
<a id="logoname" href="" style="text-decoration: none; color: white; margin: 2px">
|
||||||
<span data-translate="logo-header">
|
<span data-translate="logo-header">
|
||||||
<font id="qos">V</font>DO.Ninja
|
<font id="qos">V</font>DO.Ninja
|
||||||
</span>
|
</span>
|
||||||
@ -1,7 +1,7 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/webmidi"></script>
|
<script src="https://cdn.jsdelivr.net/npm/webmidi"></script>
|
||||||
<link rel="stylesheet" href="./main.css" />
|
<link rel="stylesheet" href="main.css" />
|
||||||
<style>
|
<style>
|
||||||
.container {
|
.container {
|
||||||
max-width: 80%;
|
max-width: 80%;
|
||||||
@ -92,7 +92,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="header">
|
<div id="header">
|
||||||
<a id="logoname" href="./" style="text-decoration: none; color: white; margin: 2px">
|
<a id="logoname" href="" style="text-decoration: none; color: white; margin: 2px">
|
||||||
<span data-translate="logo-header">
|
<span data-translate="logo-header">
|
||||||
<font id="qos">V</font>DO.Ninja
|
<font id="qos">V</font>DO.Ninja
|
||||||
</span>
|
</span>
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<script type="text/javascript" src="./thirdparty/obs-websocket.min.js"></script>
|
<script type="text/javascript" src="thirdparty/obs-websocket.min.js"></script>
|
||||||
<link rel="stylesheet" href="https://vdo.ninja/main.css" />
|
<link rel="stylesheet" href="https://vdo.ninja/main.css" />
|
||||||
<title>OBS Controller Demo using VDO.Ninja</title>
|
<title>OBS Controller Demo using VDO.Ninja</title>
|
||||||
<style>
|
<style>
|
||||||
@ -1,7 +1,7 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<script type="text/javascript" src="./thirdparty/obs-websocket.min.js"></script>
|
<script type="text/javascript" src="thirdparty/obs-websocket.min.js"></script>
|
||||||
<link rel="stylesheet" href="https://vdo.ninja/main.css" />
|
<link rel="stylesheet" href="https://vdo.ninja/main.css" />
|
||||||
<style>
|
<style>
|
||||||
|
|
||||||
@ -2,7 +2,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8"/>
|
||||||
<link href="https://fonts.googleapis.com/css?family=Press+Start+2P" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/css?family=Press+Start+2P" rel="stylesheet">
|
||||||
<link href="./nes.min.css" rel="stylesheet" />
|
<link href="nes.min.css" rel="stylesheet" />
|
||||||
<style>
|
<style>
|
||||||
html, body, pre, code, kbd, samp {
|
html, body, pre, code, kbd, samp {
|
||||||
font-family:"Press Start 2P";
|
font-family:"Press Start 2P";
|
||||||
@ -283,7 +283,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
location.href = './teleprompter.html';
|
location.href = 'teleprompter.html';
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
Before Width: | Height: | Size: 342 B After Width: | Height: | Size: 342 B |
|
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 158 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
@ -31,7 +31,7 @@
|
|||||||
<script src='libs/glfx.js'></script>
|
<script src='libs/glfx.js'></script>
|
||||||
|
|
||||||
<!-- INCLUDE DEMO SCRIPT -->
|
<!-- INCLUDE DEMO SCRIPT -->
|
||||||
<script src="./main.js"></script>
|
<script src="main.js"></script>
|
||||||
|
|
||||||
<!-- INCLUDE ADDDRAGEVENTLISTENER.JS -->
|
<!-- INCLUDE ADDDRAGEVENTLISTENER.JS -->
|
||||||
<script src='../../../helpers/addDragEventListener.js'></script>
|
<script src='../../../helpers/addDragEventListener.js'></script>
|
||||||
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 182 KiB After Width: | Height: | Size: 182 KiB |
|
Before Width: | Height: | Size: 378 KiB After Width: | Height: | Size: 378 KiB |
|
Before Width: | Height: | Size: 209 KiB After Width: | Height: | Size: 209 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 367 KiB After Width: | Height: | Size: 367 KiB |
|
Before Width: | Height: | Size: 196 KiB After Width: | Height: | Size: 196 KiB |
|
Before Width: | Height: | Size: 195 KiB After Width: | Height: | Size: 195 KiB |
|
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 158 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |