주요 추가 기능: - bots/shorts/ 서브모듈 7개: tts_engine, script_extractor, asset_resolver, stock_fetcher, caption_renderer, video_assembler, youtube_uploader - bots/shorts_bot.py: 6단계 Shorts 파이프라인 오케스트레이터 (auto/semi_auto 두 가지 생산 모드, CLI 지원) - bots/writer_bot.py: 독립 실행형 AI 글쓰기 봇 (대시보드 연동) - bots/assist_bot.py: URL 기반 수동 어시스트 파이프라인 - config/shorts_config.json: Shorts 전체 설정 - templates/shorts/extract_prompt.txt: LLM 스크립트 추출 프롬프트 - scheduler.py에 shorts 잡(10:35/16:00) + /shorts Telegram 명령 추가 보안 개선: - .env 파일 외부 경로 참조로 변경 (load_dotenv dotenv_path, 24개 파일) - .gitignore에 민감 파일/내부 문서/런타임 데이터 항목 추가 문서: - README.md 전면 재작성 (상세 한글 설명, 설치/설정/사용법 포함) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The 4th Path — Control Panel
미디어 엔진 컨트롤 패널 (React + FastAPI)
구조
dashboard/
├── backend/
│ ├── server.py # FastAPI 메인
│ ├── api_overview.py # 개요 탭 API
│ ├── api_content.py # 콘텐츠 탭 API
│ ├── api_analytics.py # 분석 탭 API
│ ├── api_novels.py # 소설 탭 API
│ ├── api_settings.py # 설정 API
│ ├── api_connections.py# 연결 상태 API
│ ├── api_tools.py # 도구 선택 API
│ ├── api_cost.py # 비용 모니터 API
│ └── api_logs.py # 로그 API
└── frontend/
├── src/
│ ├── App.jsx
│ ├── pages/
│ │ ├── Overview.jsx
│ │ ├── Content.jsx
│ │ ├── Analytics.jsx
│ │ ├── Novel.jsx
│ │ ├── Settings.jsx
│ │ ├── Logs.jsx
│ │ └── settings/
│ │ ├── Connections.jsx
│ │ ├── ToolSelect.jsx
│ │ ├── Distribution.jsx
│ │ ├── Quality.jsx
│ │ └── CostMonitor.jsx
│ └── styles/
│ └── theme.css
├── package.json
├── vite.config.js
└── tailwind.config.js
설치 및 실행
필수 요건
- Python 3.9+
- Node.js 18+
- npm 9+
백엔드 의존성 설치
cd D:/workspace/blog-writer
venv\Scripts\python.exe -m pip install -r requirements.txt
프론트엔드 의존성 설치
cd D:/workspace/blog-writer/dashboard/frontend
npm install
실행 방법
Windows (더블클릭)
- 프로덕션:
start.bat더블클릭 - 개발 모드:
start_dev.bat더블클릭
두 스크립트 모두 프로젝트 venv\Scripts\python.exe가 없으면 즉시 중단합니다.
Linux/Mac
# 프로덕션 (프론트 빌드 후 백엔드만)
bash dashboard/start.sh
# 개발 모드 (Vite 핫리로드 + 백엔드 reload)
bash dashboard/start.sh dev
수동 실행
# 터미널 1 — 백엔드
cd D:/workspace/blog-writer
venv\Scripts\python.exe blog_runtime.py server --reload
# 터미널 2 — 프론트엔드 (개발)
cd D:/workspace/blog-writer/dashboard/frontend
npm run dev
# 또는 프론트 빌드 (프로덕션)
npm run build
접속
| 모드 | URL |
|---|---|
| 프로덕션 | http://localhost:8080 |
| 개발(프론트) | http://localhost:5173 |
| API 문서 | http://localhost:8080/docs |
탭 구성
| 탭 | 기능 |
|---|---|
| 개요 | KPI 카드 · 파이프라인 상태 · 코너별 비율 · 활동 로그 |
| 콘텐츠 | 칸반 보드 · 승인/거부 |
| 분석 | 방문자 추이 · 코너별 성과 · 인기글 |
| 소설 | 연재 관리 · 에피소드 생성 |
| 설정 | AI 연결 · 도구 선택 · 배포채널 · 품질 · 비용 |
| 로그 | 시스템 로그 필터/검색 |
Tailscale 외부 접속
# 백엔드를 0.0.0.0으로 바인딩하면 Tailscale IP로 접속 가능
venv\Scripts\python.exe blog_runtime.py server
# 접속: http://<tailscale-ip>:8080