services: vod: build: context: . target: vod args: NGINX_VERSION: "${NGINX_VERSION:-1.30.5}" KALTURA_VOD_REF: "${KALTURA_VOD_REF:-26f06877b0f2a2336e59cda93a3de18d7b23a3e2}" image: "${IMAGE_NAME:-nginx-hls-vod}:local" environment: PLAYER_ORIGIN: "${PLAYER_ORIGIN:?Set PLAYER_ORIGIN in .env}" depends_on: catalog: condition: service_healthy ports: - "${HLS_BIND_ADDRESS:-0.0.0.0}:${HLS_PORT:-8124}:8080" volumes: - type: bind source: "${MEDIA_DIR:?Set MEDIA_DIR in .env}" target: /media read_only: true bind: create_host_path: false restart: unless-stopped read_only: true tmpfs: - /tmp:rw,nosuid,nodev,noexec,size=64m cap_drop: - ALL security_opt: - no-new-privileges:true pids_limit: 128 mem_limit: 512m cpus: 2.0 catalog: build: context: . target: catalog image: "${CATALOG_IMAGE:-nginx-hls-catalog}:local" user: "0:0" environment: MEDIA_DIR: /media CATALOG_CACHE_DIR: /cache CATALOG_REFRESH_INTERVAL_SECONDS: "${CATALOG_REFRESH_INTERVAL_SECONDS:-21600}" CATALOG_PORT: "8081" volumes: - type: bind source: "${MEDIA_DIR:?Set MEDIA_DIR in .env}" target: /media read_only: true bind: create_host_path: false - type: bind source: "${CATALOG_CACHE_DIR:?Set CATALOG_CACHE_DIR in .env}" target: /cache bind: create_host_path: false restart: unless-stopped read_only: true tmpfs: - /tmp:rw,nosuid,nodev,noexec,size=64m cap_drop: - ALL security_opt: - no-new-privileges:true pids_limit: 128 mem_limit: 512m cpus: 2.0