From ad191eba29043a49182292c9ad39f9be76a81ba2 Mon Sep 17 00:00:00 2001 From: juancarmore Date: Tue, 21 Oct 2025 10:38:38 +0200 Subject: [PATCH] meet-demo: add deployment configuration with Docker and Caddy - Create README.md for deployment instructions - Add .env file for environment variables - Add Caddyfile for reverse proxy configuration - Create docker-compose.yml for service orchestration --- meet-demo/README.md | 27 +++----------- meet-demo/deployment/.env | 8 +++++ meet-demo/deployment/Caddyfile | 3 ++ meet-demo/{ => deployment}/Dockerfile | 0 meet-demo/deployment/README.md | 47 +++++++++++++++++++++++++ meet-demo/deployment/docker-compose.yml | 29 +++++++++++++++ 6 files changed, 91 insertions(+), 23 deletions(-) create mode 100644 meet-demo/deployment/.env create mode 100644 meet-demo/deployment/Caddyfile rename meet-demo/{ => deployment}/Dockerfile (100%) create mode 100644 meet-demo/deployment/README.md create mode 100644 meet-demo/deployment/docker-compose.yml diff --git a/meet-demo/README.md b/meet-demo/README.md index 0efd445..5af8403 100644 --- a/meet-demo/README.md +++ b/meet-demo/README.md @@ -2,8 +2,8 @@ ## Prerequisites -- [Node](https://nodejs.org/en/download) (for local development) -- [Docker](https://docs.docker.com/get-docker/) (for containerized deployment) +- [Node](https://nodejs.org/en/download) (for local development) +- [Docker](https://docs.docker.com/get-docker/) and Docker Compose (for containerized deployment) ## Run Locally @@ -31,28 +31,9 @@ npm start 4. Access the application at `http://localhost:6080` -## Run with Docker +## Deploy with Docker -### Using Docker CLI - -1. Build the Docker image - -```bash -docker build -t openvidu/openvidu-meet-demo . -``` - -2. Run the container - -```bash -docker run -d \ - --name meet-demo \ - -p 6080:6080 \ - -e OV_MEET_SERVER_URL=https://meet.openvidu.io \ - -e OV_MEET_API_KEY=meet-api-key \ - openvidu/openvidu-meet-demo -``` - -3. Access the application at `http://localhost:6080` +For production deployment with Docker and HTTPS support via Caddy, see the [deployment directory](./deployment/README.md). ## Configuration diff --git a/meet-demo/deployment/.env b/meet-demo/deployment/.env new file mode 100644 index 0000000..8f52871 --- /dev/null +++ b/meet-demo/deployment/.env @@ -0,0 +1,8 @@ +# OpenVidu Meet Demo Configuration + +# Domain for the application (used by Caddy for HTTPS) +DOMAIN=meet-demo-app.openvidu.io + +# OpenVidu Meet Server Configuration +OV_MEET_SERVER_URL=https://meet-demo.openvidu.io +OV_MEET_API_KEY=meet-api-key diff --git a/meet-demo/deployment/Caddyfile b/meet-demo/deployment/Caddyfile new file mode 100644 index 0000000..5d75d2f --- /dev/null +++ b/meet-demo/deployment/Caddyfile @@ -0,0 +1,3 @@ +{$DOMAIN:meet-demo-app.openvidu.io} { + reverse_proxy meet-demo:6080 +} diff --git a/meet-demo/Dockerfile b/meet-demo/deployment/Dockerfile similarity index 100% rename from meet-demo/Dockerfile rename to meet-demo/deployment/Dockerfile diff --git a/meet-demo/deployment/README.md b/meet-demo/deployment/README.md new file mode 100644 index 0000000..a90fc69 --- /dev/null +++ b/meet-demo/deployment/README.md @@ -0,0 +1,47 @@ +# OpenVidu Meet Demo - Deployment Guide + +This directory contains all the files needed to deploy the OpenVidu Meet Demo application using Docker and Caddy as a reverse proxy with automatic HTTPS. + +## Structure + +``` +deployment/ +├── docker-compose.yml # Docker Compose configuration +├── Dockerfile # Application Docker image +├── Caddyfile # Caddy reverse proxy configuration +├── .env # Environment variables +└── README.md # This file +``` + +## Quick Start + +### Prerequisites + +- Docker and Docker Compose installed +- Domain name pointing to your server (for HTTPS with Caddy) +- Ports 80 and 443 available on your server + +### Steps + +1. **Configure environment variables**: Edit the `.env` file to set your domain and OpenVidu Meet server details. + +| Variable | Description | Default | +| -------------------- | ---------------------------------------- | ------------------------------- | +| `DOMAIN` | Domain name for HTTPS (Caddy) | `meet-demo-app.openvidu.io` | +| `OV_MEET_SERVER_URL` | URL of the OpenVidu Meet server | `https://meet-demo.openvidu.io` | +| `OV_MEET_API_KEY` | API key for OpenVidu Meet authentication | `meet-api-key` | + +2. **Build the Docker image**: Build and push the Docker image to your registry if needed. + +```bash +docker build -t openvidu/openvidu-meet-demo:{version} .. +docker push openvidu/openvidu-meet-demo:{version} +``` + +3. **Start the services** + +```bash +docker-compose up -d +``` + +4. **Access the application**: Open your web browser and navigate to `https://meet-demo-app.openvidu.io` (or your configured domain). diff --git a/meet-demo/deployment/docker-compose.yml b/meet-demo/deployment/docker-compose.yml new file mode 100644 index 0000000..bf86b7e --- /dev/null +++ b/meet-demo/deployment/docker-compose.yml @@ -0,0 +1,29 @@ +services: + meet-demo: + image: openvidu/openvidu-meet-demo:3.4.1 + container_name: meet-demo + environment: + - SERVER_PORT=6080 + - OV_MEET_SERVER_URL=${OV_MEET_SERVER_URL:-https://meet-demo.openvidu.io} + - OV_MEET_API_KEY=${OV_MEET_API_KEY:-meet-api-key} + restart: unless-stopped + + caddy: + image: caddy:2-alpine + container_name: caddy + ports: + - "80:80" + - "443:443" + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile:ro + - caddy_data:/data + - caddy_config:/config + environment: + - DOMAIN=${DOMAIN:-meet-demo-app.openvidu.io} + restart: unless-stopped + depends_on: + - meet-demo + +volumes: + caddy_data: + caddy_config: