Files
zenfeed/docker-compose.yml
2025-04-28 23:26:09 +08:00

80 lines
1.9 KiB
YAML

services:
zenfeed-web:
image: glidea/zenfeed-web:latest
ports:
- "1400:1400"
environment:
- PUBLIC_DEFAULT_API_URL=http://zenfeed:1300
depends_on:
- zenfeed
restart: unless-stopped
zenfeed:
image: glidea/zenfeed:latest
entrypoint: >
sh -c "
if [ ! -f /app/config/config.yaml ]; then
echo 'Config file not found in volume, initializing from base config...'
cp /app/config.base.yaml /app/config/config.yaml;
else
echo 'Existing config file found in volume.'
fi &&
echo 'Starting Zenfeed...' &&
exec /app/zenfeed --config /app/config/config.yaml
"
configs:
- source: zenfeed_config_base
target: /app/config.base.yaml
volumes:
- data:/app/data
- config:/app/config
ports:
- "1300:1300"
- "1301:1301"
depends_on:
- rsshub
restart: unless-stopped
rsshub:
image: diygod/rsshub:2024-12-14
ports:
- "1200:1200"
environment:
- NODE_ENV=production
restart: unless-stopped
volumes:
data: {}
config: {}
configs:
zenfeed_config_base:
content: |
timezone: ${TZ:-Asia/Shanghai}
llms:
- name: general
default: true
provider: siliconflow
model: Qwen/Qwen2.5-7B-Instruct
api_key: ${API_KEY:-your-api-key}
- name: embed
provider: siliconflow
embedding_model: Pro/BAAI/bge-m3
api_key: ${API_KEY:-your-api-key}
scrape:
rsshub_endpoint: http://rsshub:1200
storage:
feed:
rewrites:
- transform:
to_text:
prompt: |
{{ .summary_html_snippet }} Respond in ${LANG:-Chinese}
label: summary_html_snippet
embedding_llm: embed
notify:
channels:
email:
feed_html_snippet_template: |
{{ .summary_html_snippet }}