[call-me] - add ngrok
This commit is contained in:
+9
-1
@@ -1,6 +1,6 @@
|
||||
# Server
|
||||
|
||||
HOST= # Default http://localhost:port
|
||||
HOST='' # Default http://localhost:port
|
||||
PORT=8000
|
||||
|
||||
# Host
|
||||
@@ -29,6 +29,14 @@ TURN_SERVER_URL=turn:a.relay.metered.ca:443
|
||||
TURN_SERVER_USERNAME=e8dd65b92c62d3e36cafb807
|
||||
TURN_SERVER_CREDENTIAL=uWdWNmkhvyqTEswO
|
||||
|
||||
# Ngrok
|
||||
# 1. Goto https://ngrok.com
|
||||
# 2. Get started for free
|
||||
# 3. Copy YourNgrokAuthToken: https://dashboard.ngrok.com/get-started/your-authtoken
|
||||
|
||||
NGROK_ENABLED=false # true or false
|
||||
NGROK_AUTH_TOKEN=YourNgrokAuthToken
|
||||
|
||||
# Time Zone corresponding to timezone identifiers from the IANA Time Zone Database es Europe/Rome default UTC
|
||||
|
||||
TZ=UTC
|
||||
|
||||
+32
-5
@@ -6,6 +6,7 @@ const express = require('express');
|
||||
const cors = require('cors');
|
||||
const fs = require('fs');
|
||||
const httpolyglot = require('httpolyglot');
|
||||
const ngrok = require('@ngrok/ngrok');
|
||||
const socketIO = require('socket.io');
|
||||
const axios = require('axios');
|
||||
const helmet = require('helmet');
|
||||
@@ -61,6 +62,9 @@ if (config.turnServerEnabled && config.turnServerUrl && config.turnServerUsernam
|
||||
});
|
||||
}
|
||||
|
||||
const ngrokEnabled = process.env.NGROK_ENABLED === 'true';
|
||||
const ngrokAuthToken = process.env.NGROK_AUTH_TOKEN;
|
||||
|
||||
// Handle Cors
|
||||
|
||||
const cors_origin = process.env.CORS_ORIGIN;
|
||||
@@ -114,10 +118,10 @@ const server = httpolyglot.createServer(options, app);
|
||||
// Create WebSocket server using Socket.io on top of HTTP server
|
||||
const io = socketIO(server);
|
||||
|
||||
// Start the server and listen on the specified port
|
||||
server.listen(port, () => {
|
||||
log.info('Server', {
|
||||
running_at: host,
|
||||
// Server config
|
||||
function getServerConfig(tunnelHttps = false) {
|
||||
return {
|
||||
running_at: tunnelHttps ? tunnelHttps : host,
|
||||
ice: config.iceServers,
|
||||
host: {
|
||||
password_enabled: config.hostPasswordEnabled,
|
||||
@@ -126,7 +130,30 @@ server.listen(port, () => {
|
||||
api_key_secret: config.apiKeySecret,
|
||||
api_docs: apiDocs,
|
||||
version: packageJson.version,
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
// Handle Ngrok
|
||||
async function ngrokStart() {
|
||||
try {
|
||||
await ngrok.authtoken(ngrokAuthToken);
|
||||
const listener = await ngrok.forward({ addr: port });
|
||||
const tunnelUrl = listener.url();
|
||||
log.info('Server config', getServerConfig(tunnelUrl));
|
||||
} catch (err) {
|
||||
log.warn('Ngrok Start error', err);
|
||||
await ngrok.kill();
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
// Start the server and listen on the specified port
|
||||
server.listen(port, () => {
|
||||
if (ngrokEnabled && ngrokAuthToken) {
|
||||
ngrokStart();
|
||||
} else {
|
||||
log.info('Server', getServerConfig());
|
||||
}
|
||||
});
|
||||
|
||||
// Handle WebSocket connections
|
||||
|
||||
+2
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "call-me",
|
||||
"version": "1.0.78",
|
||||
"version": "1.0.79",
|
||||
"description": "Your Go-To for Instant Video Calls",
|
||||
"author": "Miroslav Pejic - miroslav.pejic.85@gmail.com",
|
||||
"license": "AGPLv3",
|
||||
@@ -19,6 +19,7 @@
|
||||
"lint": "npx prettier --write ."
|
||||
},
|
||||
"dependencies": {
|
||||
"@ngrok/ngrok": "1.4.1",
|
||||
"axios": "^1.8.4",
|
||||
"colors": "^1.4.0",
|
||||
"cors": "^2.8.5",
|
||||
|
||||
Reference in New Issue
Block a user