mirror of
https://github.com/JamesTurland/JimsGarage.git
synced 2024-11-21 23:40:19 +00:00
mirotalk
This commit is contained in:
parent
e09c3da047
commit
d47e8b0165
2 changed files with 204 additions and 0 deletions
169
MiroTalk/.env
Normal file
169
MiroTalk/.env
Normal file
|
@ -0,0 +1,169 @@
|
||||||
|
# Domain
|
||||||
|
|
||||||
|
HOST=localhost
|
||||||
|
|
||||||
|
# Signaling Server listen port
|
||||||
|
|
||||||
|
PORT=3000
|
||||||
|
|
||||||
|
# Enable self-signed certs (app/ssl)
|
||||||
|
|
||||||
|
HTTPS=false # true or false
|
||||||
|
|
||||||
|
# Time Zone corresponding to timezone identifiers from the IANA Time Zone Database es Europe/Rome default UTC
|
||||||
|
|
||||||
|
TZ=Europe/London
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
|
||||||
|
LOGS_DEBUG=true # true or false
|
||||||
|
LOGS_COLORS=true # true or false
|
||||||
|
|
||||||
|
# Cors
|
||||||
|
# Origin: Allow specified origin es '["https://example.com", "https://subdomain.example.com", "http://localhost:3000"]' or
|
||||||
|
# all origins '*' if not specified as per default.
|
||||||
|
# Methods: Allow only GET and POST methods
|
||||||
|
|
||||||
|
CORS_ORIGIN='*'
|
||||||
|
CORS_METHODS='["GET", "POST"]'
|
||||||
|
|
||||||
|
# IP whitelist
|
||||||
|
# Access to the instance is restricted to only the specified IP addresses in the allowed list. This feature is disabled by default.
|
||||||
|
|
||||||
|
IP_WHITELIST_ENABLED=false # true or false
|
||||||
|
IP_WHITELIST_ALLOWED='["127.0.0.1", "::1"]'
|
||||||
|
|
||||||
|
# OIDC - OpenID Connect
|
||||||
|
# 1. Sign up for an account at https://auth0.com.
|
||||||
|
# 2. Navigate to https://manage.auth0.com/ to create a new application tailored to your specific requirements.
|
||||||
|
# For those seeking an open-source solution, check out: https://github.com/panva/node-oidc-provider
|
||||||
|
|
||||||
|
OIDC_ENABLED=true # true or false
|
||||||
|
OIDC_ISSUER_BASE_URL='https://authentik.yourdomain.com/application/o/mirotalk/'
|
||||||
|
OIDC_BASE_URL='https://mirotalk.yourdomain.com' # https://p2p.mirotalk.com
|
||||||
|
OIDC_CLIENT_ID='JQsgccwyOHsPMFiQXmCgh3tcrmdatqwJXezxx4gG'
|
||||||
|
OIDC_CLIENT_SECRET='FqXHbAxsAvCYMYTRKiKyyhuEe3M3lUrT1i9txC0powVbCebDe7NywMpH68kmZGcMlqqYZsSP8fo8BtFrebIjAW00Zp3vCNHSyAHNnTljhwx7tio0AV910y7B5MNceafh'
|
||||||
|
OIDC_AUTH_REUIRED=true # set to true if authentication is required for all routes
|
||||||
|
SESSION_SECRET='mirotalk-p2p-oidc-secret'
|
||||||
|
|
||||||
|
# Host protection
|
||||||
|
# HOST_PROTECTED:
|
||||||
|
# - When set to true, it requires a valid username and password from the HOST_USERS list to initialize or join a room.
|
||||||
|
# - When OIDC_ENABLED is utilized alongside host protection, the authenticated user will be recognized as valid.# HOST_USER_AUTH: When set to true, it also requires a valid username and password for joining the room.
|
||||||
|
# HOST_USERS: This is the list of valid users along with their credentials.
|
||||||
|
|
||||||
|
HOST_PROTECTED=false # true or false
|
||||||
|
HOST_USER_AUTH=false # true or false
|
||||||
|
HOST_USERS='[{"username": "username", "password": "password"},{"username": "username2", "password": "password2"}]'
|
||||||
|
|
||||||
|
# JWT token config
|
||||||
|
|
||||||
|
JWT_KEY=mirotalkp2p_jwt_secret
|
||||||
|
JWT_EXP=1h
|
||||||
|
|
||||||
|
# Presenters list
|
||||||
|
# In our virtual room, the first participant to join will assume the role of the presenter.
|
||||||
|
# Additionally, we have the option to include more presenters and co-presenters, each identified by their username.
|
||||||
|
|
||||||
|
PRESENTERS='["Miroslav Pejic", "miroslav.pejic.85@gmail.com"]'
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Stun
|
||||||
|
# About: https://bloggeek.me/webrtcglossary/stun/
|
||||||
|
# Check: https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
|
||||||
|
|
||||||
|
STUN_SERVER_ENABLED=true # true or false
|
||||||
|
STUN_SERVER_URL=stun:stun.l.google.com:19302
|
||||||
|
|
||||||
|
# Turn
|
||||||
|
# About: https://bloggeek.me/webrtcglossary/turn/
|
||||||
|
# Recommended: https://github.com/coturn/coturn
|
||||||
|
# Installation: https://github.com/miroslavpejic85/mirotalk/blob/master/docs/coturn.md
|
||||||
|
# Free one: https://www.metered.ca/tools/openrelay/ (Please, create your own account)
|
||||||
|
# Check: https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
|
||||||
|
|
||||||
|
TURN_SERVER_ENABLED=true # true or false
|
||||||
|
TURN_SERVER_URL=turn:a.relay.metered.ca:443
|
||||||
|
TURN_SERVER_USERNAME=e8dd65b92c62d3e36cafb807
|
||||||
|
TURN_SERVER_CREDENTIAL=uWdWNmkhvyqTEswO
|
||||||
|
|
||||||
|
# IP lookup
|
||||||
|
# Using GeoJS to get more info about peer by IP
|
||||||
|
# Doc: https://www.geojs.io/docs/v1/endpoints/geo/
|
||||||
|
|
||||||
|
IP_LOOKUP_ENABLED=false # true or false
|
||||||
|
|
||||||
|
# API
|
||||||
|
# The response will give you a entrypoint / Room URL for your meeting.
|
||||||
|
# curl -X POST "http://localhost:3000/api/v1/meeting" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json"
|
||||||
|
|
||||||
|
API_KEY_SECRET=mirotalkp2p_default_secret
|
||||||
|
API_DISABLED='["token", "meetings"]'
|
||||||
|
|
||||||
|
# Survey URL
|
||||||
|
# Using to redirect the client after close the call (feedbacks, website...)
|
||||||
|
|
||||||
|
SURVEY_ENABLED=true # true or false
|
||||||
|
SURVEY_URL=https://www.questionpro.com/t/AUs7VZq00L
|
||||||
|
|
||||||
|
# Redirect URL on leave room
|
||||||
|
# Upon leaving the room, users who either opt out of providing feedback or if the survey is disabled
|
||||||
|
# will be redirected to a specified URL. If enabled false the default '/newrcall' URL will be used.
|
||||||
|
|
||||||
|
REDIRECT_ENABLED=false # true or false
|
||||||
|
REDIRECT_URL='https://p2p.mirotalk.com'
|
||||||
|
|
||||||
|
# Sentry (optional)
|
||||||
|
# 1. Goto https://sentry.io/
|
||||||
|
# 2. Create account
|
||||||
|
# 3. Goto Settings/Projects/YourProjectName/Client Keys (DSN)
|
||||||
|
|
||||||
|
SENTRY_ENABLED=false # true or false
|
||||||
|
SENTRY_DSN=YourClientKeyDSN
|
||||||
|
SENTRY_TRACES_SAMPLE_RATE=1.0
|
||||||
|
|
||||||
|
# Slack Integration (optional)
|
||||||
|
# 1. Goto https://api.slack.com/apps/
|
||||||
|
# 2. Create your app
|
||||||
|
# 3. On Settings - Basic Information - App Credentials chose your Signing Secret
|
||||||
|
# 4. Create a Slash Commands and put as Request URL: https://your.domain.name/slack
|
||||||
|
|
||||||
|
SLACK_ENABLED=false # true or false
|
||||||
|
SLACK_SIGNING_SECRET=YourSlackSigningSecret
|
||||||
|
|
||||||
|
# ChatGPT/OpenAI
|
||||||
|
# 1. Goto https://platform.openai.com/
|
||||||
|
# 2. Create your account
|
||||||
|
# 3. Generate your APIKey https://platform.openai.com/account/api-keys
|
||||||
|
|
||||||
|
CHATGPT_ENABLED=false
|
||||||
|
CHATGPT_BASE_PATH=https://api.openai.com/v1/
|
||||||
|
CHATGPT_APIKEY=YourOpenAiApiKey
|
||||||
|
CHATGPT_MODEL=gpt-3.5-turbo
|
||||||
|
CHATGPT_MAX_TOKENS=1000
|
||||||
|
CHATGPT_TEMPERATURE=0
|
||||||
|
|
||||||
|
# Configure email settings for notifications or alerts
|
||||||
|
# Refer to the documentation for Gmail configuration: https://support.google.com/mail/answer/185833?hl=en
|
||||||
|
|
||||||
|
EMAIL_ALERT=false # true or false
|
||||||
|
EMAIL_HOST=smtp.gmail.com
|
||||||
|
EMAIL_PORT=587
|
||||||
|
EMAIL_USERNAME=your_username
|
||||||
|
EMAIL_PASSWORD=your_password
|
||||||
|
EMAIL_SEND_TO=p2p.mirotalk@gmail.com
|
||||||
|
|
||||||
|
# Stats
|
||||||
|
# Umami: https://github.com/umami-software/umami
|
||||||
|
# We use our Self-hosted Umami to track aggregated usage statistics in order to improve our service.
|
||||||
|
|
||||||
|
STATS_ENABLED=false # true or false
|
||||||
|
STATS_SCR=https://stats.mirotalk.com/script.js
|
||||||
|
STATS_ID=c7615aa7-ceec-464a-baba-54cb605d7261
|
35
MiroTalk/docker-compose.yaml
Normal file
35
MiroTalk/docker-compose.yaml
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
mirotalk:
|
||||||
|
image: mirotalk/p2p:latest
|
||||||
|
container_name: mirotalk
|
||||||
|
hostname: mirotalk
|
||||||
|
volumes:
|
||||||
|
- .env:/src/.env:ro
|
||||||
|
# These volumes are not mandatory, uncomment if you want to use it
|
||||||
|
# - ./app/:/src/app/:ro # useful for changing the UI JS
|
||||||
|
# - ./public/:/src/public/:ro
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
proxy:
|
||||||
|
# Uncomment ports and comment labels if you're not using a reverse proxy
|
||||||
|
#ports:
|
||||||
|
# - '${PORT}:${PORT}'
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.docker.network=proxy"
|
||||||
|
- "traefik.http.routers.mirotalk.entrypoints=http"
|
||||||
|
- "traefik.http.routers.mirotalk.rule=Host(`mirotalk.yourdomain.com`)"
|
||||||
|
- "traefik.http.middlewares.mirotalk-https-redirect.redirectscheme.scheme=https"
|
||||||
|
- "traefik.http.routers.mirotalk.middlewares=mirotalk-https-redirect"
|
||||||
|
- "traefik.http.routers.mirotalk-secure.entrypoints=https"
|
||||||
|
- "traefik.http.routers.mirotalk-secure.rule=Host(`mirotalk.yourdomain.com`)"
|
||||||
|
- "traefik.http.routers.mirotalk-secure.tls=true"
|
||||||
|
- "traefik.http.routers.mirotalk-secure.tls.certresolver=cloudflare"
|
||||||
|
- "traefik.http.routers.mirotalk-secure.service=mirotalk"
|
||||||
|
- "traefik.http.services.mirotalk.loadbalancer.server.port=3000" # make sure the loadbalancer is the last line!!!
|
||||||
|
|
||||||
|
networks:
|
||||||
|
proxy:
|
||||||
|
external: true
|
Loading…
Reference in a new issue