- upstream sinmb79/blog-writer v3.2.1 코드 베이스 적용 - config_resolver, CLI, writer_bot, shorts pipeline 등 신규 기능 포함 - load_dotenv Windows 경로 → Docker 호환 load_dotenv() 변경 (25개 파일) - runtime_guard.py Docker 환경 bypass 추가 - config/blogs.json: eli-ai 블로그 정체성 (8개 카테고리) - config/sources.json: 38개 RSS 소스 유지 - config/engine.json: writing provider → gemini (2.5-flash) - config/safety_keywords.json: 모든 글 수동 승인 (score 101) - bots/scheduler.py: 시스템 프롬프트 eli 블로그 기준으로 업데이트 - bots/publisher_bot.py: .env refresh token OAuth 폴백 로직 추가 - requirements.txt: google-generativeai, groq 활성화 - Dockerfile + docker-compose.yml: NAS Docker 배포 설정 - CLAUDE.md: 프로젝트 메타데이터 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
36 lines
973 B
YAML
36 lines
973 B
YAML
x-common: &common
|
|
image: blog-writer:latest
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
env_file: .env
|
|
environment:
|
|
- PYTHONPATH=/app
|
|
volumes:
|
|
- ./bots:/app/bots
|
|
- ./config:/app/config
|
|
- ./templates:/app/templates
|
|
- ./dashboard/backend:/app/dashboard/backend
|
|
- ./dashboard/__init__.py:/app/dashboard/__init__.py
|
|
- ./data:/app/data
|
|
- ./logs:/app/logs
|
|
- ./assets:/app/assets
|
|
- ./runtime_guard.py:/app/runtime_guard.py
|
|
- ./blog_engine_cli.py:/app/blog_engine_cli.py
|
|
- ./blog_runtime.py:/app/blog_runtime.py
|
|
- ./credentials.json:/app/credentials.json:ro
|
|
restart: unless-stopped
|
|
|
|
services:
|
|
scheduler:
|
|
<<: *common
|
|
container_name: blog-scheduler
|
|
command: ["python3", "bots/scheduler.py"]
|
|
|
|
dashboard:
|
|
<<: *common
|
|
container_name: blog-dashboard
|
|
command: ["python3", "-m", "uvicorn", "dashboard.backend.server:app", "--host", "0.0.0.0", "--port", "8080"]
|
|
ports:
|
|
- "8080:8080"
|