Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions pmoves/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,7 @@ services:
context: docker/ultimate-tts-studio
dockerfile: Dockerfile
restart: unless-stopped
env_file: [ env.shared.generated, env.shared, .env.generated, .env.local ]
<<: *env-tier-media
environment:
- GRADIO_SERVER_NAME=0.0.0.0
- GRADIO_SERVER_PORT=7861
Expand Down Expand Up @@ -446,7 +446,7 @@ services:
context: .
dockerfile: services/flute-gateway/Dockerfile
restart: unless-stopped
env_file: [ env.shared.generated, env.shared, .env.generated, .env.local ]
<<: *env-tier-media
environment:
- NATS_URL=${NATS_URL:-nats://nats:4222}
# Use internal Docker network hostname for Supabase Kong (on supabase_net/pmoves-net)
Expand Down Expand Up @@ -524,7 +524,7 @@ services:
context: ..
dockerfile: pmoves/services/ffmpeg-whisper/Dockerfile
restart: unless-stopped
env_file: [ env.shared.generated, env.shared, .env.generated, .env.local ]
<<: *env-tier-media
environment:
- MINIO_ENDPOINT=${MINIO_ENDPOINT:-minio:9000}
- MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY}
Expand All @@ -550,7 +550,7 @@ services:
context: .
dockerfile: services/media-video/Dockerfile
restart: unless-stopped
env_file: [ env.shared.generated, env.shared, .env.generated, .env.local ]
<<: *env-tier-media
environment:
- MINIO_ENDPOINT=${MINIO_ENDPOINT:-minio:9000}
- MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY}
Expand All @@ -575,7 +575,7 @@ services:
context: .
dockerfile: services/media-audio/Dockerfile
restart: unless-stopped
env_file: [ env.shared.generated, env.shared, .env.generated, .env.local ]
<<: *env-tier-media
environment:
- MINIO_ENDPOINT=${MINIO_ENDPOINT:-minio:9000}
- MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY}
Expand Down Expand Up @@ -637,7 +637,7 @@ services:
channel-monitor:
build: ./services/channel-monitor
restart: unless-stopped
env_file: [ env.shared.generated, env.shared, .env.generated, .env.local ]
<<: *env-tier-media
environment:
- CHANNEL_MONITOR_CONFIG_PATH=${CHANNEL_MONITOR_CONFIG_PATH:-/app/config/channel_monitor.json}
- CHANNEL_MONITOR_QUEUE_URL=${CHANNEL_MONITOR_QUEUE_URL:-http://pmoves-yt:8077/yt/ingest}
Expand Down Expand Up @@ -1321,7 +1321,7 @@ services:
invidious-companion:
image: quay.io/invidious/invidious-companion:latest
restart: unless-stopped
env_file: [ env.shared.generated, env.shared, .env.generated, .env.local ]
<<: *env-tier-media
environment:
PORT: 8282
HOST: 0.0.0.0
Expand All @@ -1345,7 +1345,7 @@ services:
invidious:
image: quay.io/invidious/invidious:latest
restart: unless-stopped
env_file: [ env.shared.generated, env.shared, .env.generated, .env.local ]
<<: *env-tier-media
environment:
INVIDIOUS_CONFIG: |
db:
Expand Down Expand Up @@ -1388,7 +1388,7 @@ services:
grayjay-plugin-host:
build: ./services/grayjay-plugin-host
restart: unless-stopped
env_file: [ env.shared.generated, env.shared, .env.generated, .env.local ]
<<: *env-tier-media
environment:
- JELLYFIN_PUBLIC_URL=${JELLYFIN_PUBLIC_BASE_URL:-http://localhost:8096}
- GRAYJAY_PLUGIN_HOST_PUBLIC_URL=${GRAYJAY_PLUGIN_HOST_PUBLIC_URL:-http://localhost:9096}
Expand All @@ -1403,7 +1403,7 @@ services:
grayjay-server:
image: registry.gitlab.futo.org/videostreaming/grayjay/grayjay:latest
restart: unless-stopped
env_file: [ env.shared.generated, env.shared, .env.generated, .env.local ]
<<: *env-tier-media
environment:
- GRAYJAY_PLUGIN_REGISTRY_URL=${GRAYJAY_PLUGIN_REGISTRY_URL:-http://grayjay-plugin-host:8080/plugins}
- GRAYJAY_SERVER_BIND=${GRAYJAY_SERVER_BIND:-0.0.0.0}
Expand Down
68 changes: 68 additions & 0 deletions pmoves/env.tier-media.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# =============================================================================
# PMOVES Media Tier Environment Variables
# Services: pmoves-yt, channel-monitor, ffmpeg-whisper, media-video, media-audio,
# ultimate-tts-studio, flute-gateway, invidious, invidious-companion,
# grayjay-plugin-host, grayjay-server
# =============================================================================

# Media tier services handle audio/video processing and streaming
# They connect to internal storage (MinIO) and message bus (NATS)
# NO direct access to external LLM API keys

# ---------------------------------------------------------------------------
# MinIO Object Storage (internal)
# ---------------------------------------------------------------------------
MINIO_ENDPOINT=minio:9000
MINIO_ACCESS_KEY= # REQUIRED: Set from env.tier-data
MINIO_SECRET_KEY= # REQUIRED: Set from env.tier-data
MINIO_SECURE=false

# ---------------------------------------------------------------------------
# NATS Message Bus (internal)
# ---------------------------------------------------------------------------
NATS_URL=nats://nats:4222

# ---------------------------------------------------------------------------
# Whisper Transcription
# ---------------------------------------------------------------------------
WHISPER_MODEL=small
FFW_PROVIDER=faster-whisper
USE_CUDA=true

# ---------------------------------------------------------------------------
# Media Analysis (YOLO)
# ---------------------------------------------------------------------------
YOLO_MODEL=yolov8n.pt
FRAME_EVERY=5
SCORE_THRES=0.25

# ---------------------------------------------------------------------------
# TTS Settings
# ---------------------------------------------------------------------------
ULTIMATE_TTS_URL=http://ultimate-tts-studio:7861
DEFAULT_VOICE_PROVIDER=vibevoice

# ---------------------------------------------------------------------------
# Supabase (internal)
# ---------------------------------------------------------------------------
SUPABASE_URL=http://supabase_kong_PMOVES.AI:8000
SUPABASE_SERVICE_ROLE_KEY=
Comment on lines +45 to +49

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Mark SUPABASE_SERVICE_ROLE_KEY as REQUIRED.

Line 49 defines SUPABASE_SERVICE_ROLE_KEY but doesn't mark it as REQUIRED, unlike MinIO credentials (lines 16-17) and Invidious keys (lines 61-62). Services like flute-gateway reference this variable, so it should be marked to prevent runtime failures.

🔎 Proposed fix
 SUPABASE_URL=http://supabase_kong_PMOVES.AI:8000
-SUPABASE_SERVICE_ROLE_KEY=
+SUPABASE_SERVICE_ROLE_KEY=  # REQUIRED: Set from env.tier-data or env.tier-api
🤖 Prompt for AI Agents
In pmoves/env.tier-media.example around lines 45 to 49,
SUPABASE_SERVICE_ROLE_KEY is declared but not marked as REQUIRED; update the
file so SUPABASE_SERVICE_ROLE_KEY is explicitly labeled REQUIRED (consistent
with the MinIO and Invidious entries) — add a comment or suffix "REQUIRED" on
the SUPABASE_SERVICE_ROLE_KEY line and/or include a placeholder value comment to
indicate it must be provided by deployers.


# ---------------------------------------------------------------------------
# Channel Monitor (YouTube ingestion)
# ---------------------------------------------------------------------------
CHANNEL_MONITOR_CONFIG_PATH=/app/config/channel_monitor.json
CHANNEL_MONITOR_QUEUE_URL=http://pmoves-yt:8077/yt/ingest
CHANNEL_MONITOR_NAMESPACE=pmoves

# ---------------------------------------------------------------------------
# Invidious (YouTube proxy)
# ---------------------------------------------------------------------------
INVIDIOUS_COMPANION_KEY= # REQUIRED: Generate with `openssl rand -hex 32`
INVIDIOUS_HMAC_KEY= # REQUIRED: Generate with `openssl rand -hex 32`

# ---------------------------------------------------------------------------
# Grayjay (streaming)
# ---------------------------------------------------------------------------
JELLYFIN_PUBLIC_URL=http://localhost:8096
GRAYJAY_PLUGIN_HOST_PUBLIC_URL=http://localhost:9096
Loading