Complete TLC stack now includes: - rss-bridge: YouTube to RSS converter - feed-master: RSS feed aggregator - search: TLC Search Flask app (port 8088) Requires Elasticsearch and Qdrant backends configured in .env Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
75 lines
1.7 KiB
YAML
75 lines
1.7 KiB
YAML
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
|
|
labels:
|
|
- "com.ghost.tel/stack-type=dev-only"
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "5"
|
|
ports:
|
|
- "3001:80"
|
|
networks:
|
|
- web
|
|
|
|
# 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-data:/srv/var
|
|
- ./feed-master-images:/srv/images
|
|
ports:
|
|
- "8097:8080"
|
|
networks:
|
|
- web
|
|
|
|
# TLC Search - Flask app for searching YouTube transcripts
|
|
search:
|
|
image: gitea.ghost.tel/knight/tlc-search:latest
|
|
container_name: tlc-search
|
|
hostname: tlc-search
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- feed-master
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "5"
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
- RSS_FEED_URL=/rss/youtube-unified
|
|
- RSS_FEED_UPSTREAM=http://feed-master:8080
|
|
volumes:
|
|
- ./channels.yml:/app/python_app/channels.yml:ro
|
|
- ./data:/app/data:ro
|
|
ports:
|
|
- "8088:8080"
|
|
networks:
|
|
- web
|
|
|
|
networks:
|
|
web:
|
|
external: true
|