Deploying Custom Version of OpenVidU Call Angular App

Hello all …

We have a PRO license and are customizing the angular version of openvidu-call to include recordings, room locking, and some other customizations. We are have not yet been able to determine is how / where to deploy a build of this new app?

We were thinking it would be best to have the web interface on one of our other web servers and have it pointed at the openvidu server running in AWS but this doesnt seem to be possible? Or i am missing something. I have been looking at the documentation on OpenVidu Docs but this does not say where the folder should be installed? It appears as though a version of nginx is installed with openvidu but there is no /etc/nginx folder?

If we do manage to install the customized version of openvidu-call-front into the openvidu server, do we also need to install the call-back app too?

Any help anyone can provide would be much appreciated.

Thank you.

Keith

After some additional deciphering of docs … I have ran the docker build command outlined on OpenVidu Docs and I believe we need to stop the default call app on the openvidu server at AWS … but i am unsure how to replace that with the build from the docker build process.

You just need to replace your created image in the /opt/openvidu/docker-compose.override.yml

First you need to create a docker image from your project. Just go to your openvidu-call directory and execute:

docker build -f docker/custom.dockerfile -t <YOUR_IMAGE> --build-arg BASE_HREF=/ .

<YOUR_IMAGE> is the name of your docker image. If you build the entire project in your server you will have it available over there, but if you build the docker image in other machine, you may need a repository like Dockerhub.

You just need to replace <YOUR_IMAGE> in the docker-compose.override.yml like this:

version: '3.1'

services:
    # --------------------------------------------------------------
    #
    #   Change this if your want use your own application.
    #   It's very important expose your application in port 5442
    #   and use the http protocol.
    #
    #   Default Application
    #
    #   Openvidu-Call Version: 2.19.0
    #
    # --------------------------------------------------------------
    app:
        image: <YOUR_IMAGE> <-----------
        restart: on-failure
        network_mode: host
        environment:
            - SERVER_PORT=5442
            - OPENVIDU_URL=http://localhost:5443
            - OPENVIDU_SECRET=${OPENVIDU_SECRET}
            - CALL_OPENVIDU_CERTTYPE=${CERTIFICATE_TYPE}
        logging:
            options:
                max-size: "${DOCKER_LOGS_MAX_SIZE:-100M}"

After that, go to /opt/openvidu and as sudo user execute:

./openvidu restart

This will restart the entire server and run your customized call in docker-compose.override.yml

cruizba

Thank you for the response. I have done this … but after running the ./openvidu restart I am shown a 502 Bad Gateway error when i browse to my vidu url …
I built the app using the following command:
docker build -f docker/custom.dockerfile -t bridgeinsure/kottervidu --network host --build-arg BASE_HREF=/ .
ANd it runs fine locally when I run:
docker run -p 5442:5000 -e OPENVIDU_URL=https://vid.keithgallant.com -e OPENVIDU_SECRET= bridgeinsure/kottervidu

https://vid.keithgallant.com

Any suggestions for what might be the issue?

Thank you.

Keith

I should mention that the inspector works fine …
https://vid.keithgallant.com/inspector

I suspect my issue is the “It’s very important expose your application in port 5442 and use the http protocol”? How is this done? Does that have to be part of the docker build or is it part of the angular app itself? I have seen with some of the other apps (ie the classroom demo has the server.ssl.enabled setting) … but i dont have the same thing in our customized version of the call app as far as I can tell?

This is what my docker-compose.override.yml file looks like:

version: ‘3.1’

services:
# --------------------------------------------------------------
#
# Change this if your want use your own application.
# It’s very important expose your application in port 5442
# and use the http protocol.
#
# Default Application
#
# Openvidu-Call Version: 2.19.0
#
# --------------------------------------------------------------
app:
image: bridgeinsure/kottervidu:latest
restart: on-failure
network_mode: host
environment:
- SERVER_PORT=5442
- OPENVIDU_URL=http://localhost:5443
- OPENVIDU_SECRET=${OPENVIDU_SECRET}
- CALL_OPENVIDU_CERTTYPE=${CERTIFICATE_TYPE}
logging:
options:
max-size: “${DOCKER_LOGS_MAX_SIZE:-100M}”

It depends on the technology you use to create your application.

If you want to deploy your videoconference application in the same server OpenVidu is deployed, then you have to deploy your application without https in the port 5442.

If your application is just a modification of OpenVidu Call you can follow the instructions on OpenVidu Docs