forked from eatvio/eatvio-infra
206 lines
5.4 KiB
YAML
Executable File
206 lines
5.4 KiB
YAML
Executable File
services:
|
|
soketi:
|
|
image: "quay.io/soketi/soketi:latest-16-alpine"
|
|
environment:
|
|
SOKETI_DEBUG: ${SOKETI_DEBUG}
|
|
SOKETI_METRICS_SERVER_PORT: ${SOKETI_METRICS_SERVER_PORT}
|
|
SOKETI_DEFAULT_APP_ID: ${SOKETI_DEFAULT_APP_ID}
|
|
SOKETI_DEFAULT_APP_KEY: ${SOKETI_DEFAULT_APP_KEY}
|
|
SOKETI_DEFAULT_APP_SECRET: ${SOKETI_DEFAULT_APP_SECRET}
|
|
SOKETI_DEFAULT_APP_ENABLE_CLIENT_MESSAGES: ${SOKETI_DEFAULT_APP_ENABLE_CLIENT_MESSAGES}
|
|
SOKETI_DEFAULT_APP_USER_AUTHENTICATION: ${SOKETI_DEFAULT_APP_USER_AUTHENTICATION}
|
|
ports:
|
|
- "${SOKETI_PORT:-6001}:6001"
|
|
- "${SOKETI_METRICS_SERVER_PORT:-9601}:9601"
|
|
networks:
|
|
- ns-eatvio
|
|
labels:
|
|
- "traefik.enable=false"
|
|
restart: always
|
|
|
|
memcached:
|
|
image: "memcached:alpine"
|
|
networks:
|
|
- ns-eatvio
|
|
restart: always
|
|
labels:
|
|
- "traefik.enable=false"
|
|
|
|
mysql:
|
|
image: "mysql:8.0"
|
|
working_dir: /application
|
|
networks:
|
|
- ns-eatvio
|
|
volumes:
|
|
- ".:/application"
|
|
- "./mysql_data:/var/lib/mysql"
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
|
MYSQL_DATABASE: ${MYSQL_DATABASE}
|
|
MYSQL_USER: ${MYSQL_USER}
|
|
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
|
TZ: "Evrope/Moscow"
|
|
ports:
|
|
- "1394:3306"
|
|
labels:
|
|
- "traefik.enable=false"
|
|
restart: always
|
|
|
|
php-fpm:
|
|
build: phpdocker/php-fpm
|
|
working_dir: /application
|
|
environment:
|
|
- TZ=Europe/Moscow
|
|
depends_on:
|
|
- mysql
|
|
- worker
|
|
# - frontend
|
|
- memcached
|
|
#- typesense
|
|
networks:
|
|
- ns-eatvio
|
|
volumes:
|
|
- "./app:/application"
|
|
- "./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/8.4/fpm/conf.d/99-overrides.ini"
|
|
- "./tbank_certs:/tbank_certs"
|
|
# - "./eatvio-3467b-firebase-adminsdk-fbsvc-6e149b2a5a.json:/eatvio-3467b-firebase-adminsdk-fbsvc-6e149b2a5a.json"
|
|
labels:
|
|
- "traefik.enable=false"
|
|
restart: always
|
|
|
|
# frontend:
|
|
# build: phpdocker/front-end
|
|
# command: "npm run dev"
|
|
# working_dir: /application
|
|
# environment:
|
|
# - TZ=Europe/Moscow
|
|
# #- CHOKIDAR_USEPOLLING=true
|
|
# networks:
|
|
# - ns-eatvio
|
|
# volumes:
|
|
# - "./app:/application"
|
|
# labels:
|
|
# - "traefik.enable=false"
|
|
# restart: unless-stopped
|
|
#
|
|
worker:
|
|
build: phpdocker/worker
|
|
working_dir: /application
|
|
environment:
|
|
- TZ=Europe/Moscow
|
|
command: "service supervisor start"
|
|
depends_on:
|
|
- mysql
|
|
networks:
|
|
- ns-eatvio
|
|
volumes:
|
|
- "./app:/application"
|
|
- "./phpdocker/worker/php-ini-overrides.ini:/etc/php/8.4/fpm/conf.d/99-overrides.ini"
|
|
- "./phpdocker/worker/laravel-worker.conf:/etc/supervisor/conf.d/laravel-worker.conf"
|
|
- "./tbank_certs:/tbank_certs"
|
|
# - "./eatvio-3467b-firebase-adminsdk-fbsvc-6e149b2a5a.json:/eatvio-3467b-firebase-adminsdk-fbsvc-6e149b2a5a.json"
|
|
labels:
|
|
- "traefik.enable=false"
|
|
restart: always
|
|
|
|
webserver:
|
|
image: "nginx:alpine"
|
|
working_dir: /application
|
|
restart: always
|
|
depends_on:
|
|
- php-fpm
|
|
- soketi
|
|
volumes:
|
|
- "./app:/application"
|
|
- "./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf"
|
|
#- "./phpdocker/nginx/hasan.eatvio.local+4.pem:/etc/nginx/hasan.eatvio.local+4.pem"
|
|
#- "./phpdocker/nginx/hasan.eatvio.local+4-key.pem:/etc/nginx/hasan.eatvio.local+4-key.pem"
|
|
ports:
|
|
- "12443:5000"
|
|
- "1392:80"
|
|
networks:
|
|
- web
|
|
- ns-eatvio
|
|
labels:
|
|
- "traefik.docker.network=web"
|
|
- "traefik.enable=true"
|
|
- "traefik.frontend.rule=Host:wstesting.eatv.io,testing.eatv.io"
|
|
- "traefik.port=80"
|
|
- "traefik.protocol=http"
|
|
|
|
#mailhog:
|
|
#image: "mailhog/mailhog"
|
|
#ports:
|
|
#- "8082:8025"
|
|
#networks:
|
|
#- ns-eatvio
|
|
|
|
typesense:
|
|
build: ./phpdocker/typesense
|
|
restart: always
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8108/health"]
|
|
networks:
|
|
- ns-eatvio
|
|
volumes:
|
|
- ./typesense-data:/data
|
|
command: "--data-dir /data --api-key=typesense --enable-cors"
|
|
|
|
livekit-redis:
|
|
image: redis:7-alpine
|
|
command: ["redis-server", "--appendonly", "no", "--maxmemory", "500mb", "--maxmemory-policy", "allkeys-lru"]
|
|
networks:
|
|
- ns-eatvio
|
|
volumes:
|
|
- livekit_redis_data:/data
|
|
restart: always
|
|
labels:
|
|
- "traefik.enable=false"
|
|
|
|
livekit:
|
|
image: livekit/livekit-server:latest
|
|
depends_on:
|
|
- livekit-redis
|
|
networks:
|
|
- ns-eatvio
|
|
- web
|
|
ports:
|
|
- "${LIVEKIT_PORT:-7880}:7880"
|
|
- "${LIVEKIT_RTC_TCP_PORT:-7881}:7881"
|
|
- "50000-50100:50000-50100/udp"
|
|
- "${LIVEKIT_TURN_UDP_PORT:-3478}:3478/udp"
|
|
environment:
|
|
LIVEKIT_CONFIG: |
|
|
port: 7880
|
|
log_level: info
|
|
rtc:
|
|
tcp_port: 7881
|
|
port_range_start: 50000
|
|
port_range_end: 50100
|
|
use_external_ip: true
|
|
redis:
|
|
address: livekit-redis:6379
|
|
keys:
|
|
${LIVEKIT_API_KEY}: ${LIVEKIT_API_SECRET}
|
|
turn:
|
|
enabled: true
|
|
domain: ${LIVEKIT_TURN_DOMAIN}
|
|
udp_port: 3478
|
|
# tls_port: 5349
|
|
restart: always
|
|
labels:
|
|
- "traefik.docker.network=web"
|
|
- "traefik.enable=true"
|
|
- "traefik.frontend.rule=Host:turn.eatv.io,livekit.eatv.io"
|
|
- "traefik.port=${LIVEKIT_PORT:-7880}"
|
|
- "traefik.protocol=http"
|
|
|
|
networks:
|
|
web:
|
|
external: true
|
|
ns-eatvio:
|
|
external: false
|
|
|
|
volumes:
|
|
livekit_redis_data:
|