# Daily News for Markyan04 这是一个中文个人日报系统。它会每天早上生成一份报纸,归档到 `newspaper/` 目录,并通过邮件发送到: ```text markyan04@163.com ``` 生产环境目标是:**个人 Debian 服务器 + Docker Compose + DeepSeek API + SMTP 邮件发送**。 默认执行时间: ```text 每天 08:00,Asia/Shanghai 时区 ``` ## 目录说明 - `AGENTS.md`:日报编辑约束,主要给 agent / 生成器读取。 - `config/newspaper.yaml`:日报结构、栏目顺序、栏目权重。 - `config/sources.yaml`:新闻来源、来源分层、新闻质量规则。 - `config/delivery.yaml`:收件人、归档、SMTP、定时任务配置。 - `.env.example`:服务器上的 `.env` 配置模板。 - `docker-compose.yml`:一次性运行和每日定时运行的 Docker 服务。 - `docs/debian-docker-deployment.md`:完整 Debian 部署说明。 - `newspaper/`:每天生成并发送的报纸归档目录。 ## Debian 快速部署 把仓库复制到服务器,例如: ```bash sudo mkdir -p /srv/apps/newspaper sudo chown -R "$USER":"$USER" /srv/apps/newspaper rsync -av --exclude .env ./ /srv/apps/newspaper/ cd /srv/apps/newspaper ``` 创建 `.env`: ```bash cp .env.example .env nano .env ``` 填写必要配置: ```text DEEPSEEK_API_KEY= DEEPSEEK_BASE_URL=https://api.deepseek.com DEEPSEEK_MODEL=deepseek-v4-pro GITHUB_TOKEN= NEWSPAPER_SMTP_HOST=smtp.163.com NEWSPAPER_SMTP_PORT=465 NEWSPAPER_SMTP_USERNAME= NEWSPAPER_SMTP_PASSWORD= NEWSPAPER_FROM_EMAIL= NEWSPAPER_FROM_NAME=Daily News for Markyan04 NEWSPAPER_SMTP_SECURITY=ssl NEWSPAPER_SCHEDULE_TIME=08:00 TZ=Asia/Shanghai ``` 说明: - `DEEPSEEK_API_KEY` 填你的 DeepSeek API Key。 - `GITHUB_TOKEN` 可不填;填一个只读 token 可以提高 GitHub Search API 限额,让开源项目跟踪更稳定。 - 如果用 163 邮箱发件,`NEWSPAPER_SMTP_PASSWORD` 应该填邮箱授权码,不是网页登录密码。 - `.env` 里有密钥,不能提交到仓库。 ## 构建和检查 ```bash docker compose build docker compose run --rm newspaper hongyu-daily check-config ``` ## 只生成,不发送 ```bash docker compose run --rm newspaper hongyu-daily generate ``` 生成后检查: ```bash ls -lh newspaper/ ``` 应该看到类似: ```text YYYY-MM-DD-daily-news-for-markyan04.md YYYY-MM-DD-daily-news-for-markyan04.html YYYY-MM-DD-daily-news-for-markyan04.meta.json ``` ## 生成并立即发送一次 ```bash docker compose run --rm newspaper hongyu-daily run ``` ## 启动每日定时任务 ```bash docker compose up -d scheduler docker compose logs -f scheduler ``` 启动后,`scheduler` 服务会常驻运行,并在每天 08:00 生成和发送日报。 ## 停止定时任务 ```bash docker compose down ``` ## 密钥注意事项 不要提交这些内容: - `.env` - SMTP 授权码 - DeepSeek API Key - Cookie - Session token - 任何邮箱密码或平台密钥