Is this reliable by running the beta version in server. Also we have tried using nginx as proxy instead of caddy. I have did some changes in the compose files, like each services I have ran one by one as per the order.
Now except egress I am able to run all other services.
egress is throwing below error
**+ rm -rf '/home/egress/tmp/*'**
**+ rm -rf /var/run/pulse /var/lib/pulse /home/egress/.config/pulse /home/egress/.cache/xdgr/pulse**
**+ pulseaudio -D --verbose --exit-idle-time=-1 --disallow-exit**
**E: [pulseaudio] main.c: Daemon startup failed.**
This is my docker-compose.yaml which is customized.
services:
mongo:
image: docker.io/mongo:7.0.11
container_name: mongo
network_mode: host
restart: always
environment:
- MONGO_INITDB_ROOT_USERNAME=mongoadmin
- MONGO_INITDB_ROOT_PASSWORD=mongoadmin
volumes:
- ./data/mongo_data/data:/data/db
command: "mongod --bind_ip_all --port 20000"
logging:
options:
max-size: "${DOCKER_LOGS_MAX_SIZE:-200M}"
labels:
- logging=true
minio:
image: docker.io/bitnami/minio:2024.6.13
container_name: minio
network_mode: host
restart: unless-stopped
environment:
- MINIO_ROOT_USER=minioadmin
- MINIO_ROOT_PASSWORD=minioadmin
- MINIO_CONSOLE_SUBPATH=/minio-console
- MINIO_BROWSER_REDIRECT_URL=https://openvidu.test.com/minio-console/
- MINIO_DEFAULT_BUCKETS=openvidu
- MINIO_API_PORT_NUMBER=9100
- MINIO_CONSOLE_PORT_NUMBER=9101
volumes:
- ./data/minio_data/data:/bitnami/minio/data
logging:
options:
max-size: "${DOCKER_LOGS_MAX_SIZE:-200M}"
labels:
- logging=true
redis:
image: docker.io/redis:7.2.5-alpine
container_name: redis
network_mode: host
restart: unless-stopped
command: >
redis-server
--bind 0.0.0.0
--port 7000
--requirepass redispassword
logging:
options:
max-size: "${DOCKER_LOGS_MAX_SIZE:-200M}"
labels:
- logging=true
egress:
image: docker.io/livekit/egress:v1.8.2
restart: unless-stopped
container_name: egress
environment:
- EGRESS_CONFIG_FILE=/etc/egress.yaml
network_mode: "host"
volumes:
- ./config/egress.yaml:/etc/egress.yaml
- ./data/egress_data/home/egress:/home/egress/
logging:
options:
max-size: "${DOCKER_LOGS_MAX_SIZE:-200M}"
labels:
- logging=true
dashboard:
image: docker.io/openvidu/openvidu-dashboard:3.0.0-beta2
container_name: dashboard
network_mode: host
restart: unless-stopped
environment:
- SERVER_PORT=5000
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=admin
- DATABASE_URL=mongodb://mongoadmin:mongoadmin@localhost:20000
logging:
options:
max-size: "${DOCKER_LOGS_MAX_SIZE:-200M}"
labels:
- logging=true
minio:
image: docker.io/bitnami/minio:2024.6.13
container_name: minio
network_mode: host
restart: unless-stopped
environment:
- MINIO_ROOT_USER=minioadmin
- MINIO_ROOT_PASSWORD=minioadmin
- MINIO_CONSOLE_SUBPATH=/minio-console
- MINIO_BROWSER_REDIRECT_URL=https://openvidu.test.com/minio-console/
- MINIO_DEFAULT_BUCKETS=openvidu
- MINIO_API_PORT_NUMBER=9100
- MINIO_CONSOLE_PORT_NUMBER=9101
volumes:
- ./data/minio_data/data:/bitnami/minio/data
logging:
options:
max-size: "${DOCKER_LOGS_MAX_SIZE:-200M}"
labels:
- logging=true
# Observability stack
prometheus:
image: docker.io/prom/prometheus:v2.50.1
profiles:
- observability
restart: unless-stopped
container_name: prometheus
command:
- --config.file=/etc/prometheus/prometheus.yaml
- --storage.tsdb.retention.time=32d
network_mode: host
volumes:
- ./config/prometheus.yaml:/etc/prometheus/prometheus.yaml
- ./data/prometheus_data/prometheus:/prometheus
promtail:
image: docker.io/grafana/promtail:2.8.9
profiles:
- observability
restart: unless-stopped
container_name: promtail
command: -config.file=/etc/promtail/promtail.yaml
network_mode: host
volumes:
- /var/lib/docker/containers:/var/lib/docker/containers:ro
- /var/run/docker.sock:/var/run/docker.sock
- ./config/promtail.yaml:/etc/promtail/promtail.yaml
loki:
image: docker.io/grafana/loki:2.8.9
profiles:
- observability
restart: unless-stopped
container_name: loki
command: -config.file=/etc/loki/loki.yaml
network_mode: host
volumes:
- ./config/loki.yaml:/etc/loki/loki.yaml
- ./data/loki_data/data:/loki
grafana:
image: docker.io/grafana/grafana:10.3.3
profiles:
- observability
restart: unless-stopped
container_name: grafana
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=password
- GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH=/etc/grafana/provisioning/dashboards/openvidu_metrics.json
- GF_SERVER_ROOT_URL=https://openvidu.test.com/grafana/
- GF_SERVER_SERVE_FROM_SUB_PATH=true
network_mode: host
volumes:
- ./data/grafana_data/data:/var/lib/grafana
- ./config/grafana_config:/etc/grafana/provisioning
ingress:
image: docker.io/livekit/ingress:v1.2.0
restart: unless-stopped
container_name: ingress
environment:
- INGRESS_CONFIG_FILE=/etc/ingress.yaml
network_mode: host
volumes:
- ./config/ingress.yaml:/etc/ingress.yaml
logging:
options:
max-size: "${DOCKER_LOGS_MAX_SIZE:-200M}"
labels:
- logging=true
openvidu:
image: docker.io/openvidu/openvidu-server:3.0.0-beta2
restart: unless-stopped
container_name: openvidu
command: --config /etc/livekit.yaml
network_mode: host
volumes:
- ./config/livekit.yaml:/etc/livekit.yaml
logging:
options:
max-size: "${DOCKER_LOGS_MAX_SIZE:-200M}"
labels:
- logging=true
nginx:
image: nginx:latest
container_name: nginx-proxy
network_mode: host
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./owncert:/etc/nginx/certs
nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
# React application server block
server {
listen 443 ssl;
server_name openvidu.test.com;
ssl_certificate /etc/nginx/certs/openvidu.test.com.cert;
ssl_certificate_key /etc/nginx/certs/openvidu.test.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
# Proxy WebSocket connections for OpenVidu
location / {
proxy_pass http://localhost:7880;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
# Minio console
location /minio-console {
proxy_pass http://localhost:9101;
proxy_set_header Host $host;
}
# Grafana
location /grafana {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
}
# WHIP service proxy
location /whip {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
}
# Dashboard
location /dashboard {
proxy_pass http://localhost:5000;
proxy_set_header Host $host;
}
# Health check
location /health/caddy {
return 200 "OK";
}
}
# RTMP Proxying
server {
listen 1935;
server_name openvidu.test.com;
location / {
proxy_pass http://localhost:1945;
proxy_set_header Host $host;
}
}
# Minio Proxy
server {
listen 9000;
server_name openvidu.test.com;
location / {
proxy_pass http://localhost:9100;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}