70 lines
2.3 KiB
YAML
70 lines
2.3 KiB
YAML
version: "3.9"
|
|
|
|
# TLC Search + Feed Master - Complete YouTube content indexing & RSS aggregation
|
|
# Provide ELASTIC_URL / QDRANT_URL (and related) via environment or a .env file.
|
|
services:
|
|
# RSS Bridge - Converts YouTube channels to RSS feeds
|
|
rss-bridge:
|
|
image: rssbridge/rss-bridge:latest
|
|
container_name: tlc-rss-bridge
|
|
hostname: rss-bridge
|
|
restart: unless-stopped
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "5"
|
|
ports:
|
|
- "3001:80"
|
|
|
|
# Feed Master - Aggregates multiple RSS feeds into unified feed
|
|
feed-master:
|
|
image: umputun/feed-master:latest
|
|
container_name: tlc-feed-master
|
|
hostname: feed-master
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- rss-bridge
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "5"
|
|
environment:
|
|
- DEBUG=false
|
|
- FM_DB=/srv/var/feed-master.bdb
|
|
- FM_CONF=/srv/etc/fm.yml
|
|
volumes:
|
|
- ./feed-master-config:/srv/etc
|
|
- ./feed-master-config/var:/srv/var
|
|
- ./feed-master-config/images:/srv/images
|
|
ports:
|
|
- "8097:8080"
|
|
|
|
# TLC Search - Flask app for searching YouTube transcripts
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
ports:
|
|
- "8080:8080"
|
|
environment:
|
|
ELASTIC_URL: ${ELASTIC_URL:?set ELASTIC_URL to your remote Elasticsearch URL}
|
|
ELASTIC_INDEX: ${ELASTIC_INDEX:-this_little_corner_py}
|
|
ELASTIC_USERNAME: ${ELASTIC_USERNAME:-}
|
|
ELASTIC_PASSWORD: ${ELASTIC_PASSWORD:-}
|
|
ELASTIC_API_KEY: ${ELASTIC_API_KEY:-}
|
|
ELASTIC_VERIFY_CERTS: ${ELASTIC_VERIFY_CERTS:-0}
|
|
CHANNELS_PATH: ${CHANNELS_PATH:-/app/python_app/channels.yml}
|
|
RSS_FEED_URL: ${RSS_FEED_URL:-/rss/youtube-unified}
|
|
RSS_FEED_UPSTREAM: ${RSS_FEED_UPSTREAM:-http://feed-master:8080}
|
|
QDRANT_URL: ${QDRANT_URL:?set QDRANT_URL to your remote Qdrant URL}
|
|
QDRANT_COLLECTION: ${QDRANT_COLLECTION:-tlc-captions-full}
|
|
QDRANT_VECTOR_NAME: ${QDRANT_VECTOR_NAME:-}
|
|
QDRANT_VECTOR_SIZE: ${QDRANT_VECTOR_SIZE:-1024}
|
|
QDRANT_EMBED_MODEL: ${QDRANT_EMBED_MODEL:-BAAI/bge-large-en-v1.5}
|
|
LOCAL_DATA_DIR: ${LOCAL_DATA_DIR:-/app/data/video_metadata}
|
|
volumes:
|
|
- ./channels.yml:/app/python_app/channels.yml:ro
|
|
- ./data:/app/data:ro
|