AI智能摘要
可自部署的每日问候海报生成工具,每日推送一首诗词,支持自定义背景图片、画中画、农历日历、诗词搜索,适配1125×2436手机海报尺寸。提供管理员编辑、用户系统、定时推送至企业微信等功能,前后端分离(FastAPI + React),可自由配置管理。
— 此摘要由AI分析文章内容生成,仅供参考。
一款可自部署的每日问候海报生成工具。每日推送一首诗词,支持自定义背景图片、画中画、农历日历、诗词搜索,适配 1125×2436 手机海报尺寸。

项目地址【开源】:https://github.com/sunclchina/greet-poster
功能特性
- 每日诗词 — 每日自动匹配节气/季节诗词,支持手动换诗、搜索
- 诗词编辑 — 管理员双击诗词框即可编辑标题、作者、正文
- 问候语编辑 — 管理员双击问候语框即可编辑文案,也可在管理面板批量修改各时段问候语
- 自定义诗词 — 管理面板新增自定义诗词,混入随机池
- 用户系统 — 注册/登录,昵称显示,管理员权限
- 自定义背景 — 本地上传、拖拽图片、URL 加载、自动配图、渐变色
- 画中画 — 图片叠加,自由移动/缩放/旋转/滤镜(黑白、怀旧、反色等)
- 农历日历 — 公历→农历转换,节气、节日标注
- 文本框 — 问候语、诗词、日历三个独立框,自由拖拽调整位置和大小
- 导出分享 — 导出 PNG/JPG/WebP,支持 Web Share API
- 定时推送 — 每日定时推送诗词到企业微信机器人
- 系统设置 — 管理用户、配置数据源、AI 模型参数、赞赏码
项目结构
greet-poster/
├── backend/ # FastAPI 后端(Python)
│ ├── main.py # API 服务 + 用户系统 + 诗词/问候语管理 + 设置管理
│ ├── poetry_loader.py # 诗词数据加载器
│ ├── requirements.txt # Python 依赖
│ ├── .env # 本地配置(不入库)
│ └── .env.example # 配置模板
├── frontend/ # React 前端(Vite + TypeScript)
│ ├── src/
│ │ ├── App.tsx # 主应用(登录/注册/设置面板/管理面板)
│ │ ├── main.tsx # 入口
│ │ └── components/
│ │ └── GreetingPoster.tsx # 海报核心组件(含编辑器)
│ │ └── utils/
│ │ ├── greetings.ts # 问候语生成(API 优先,本地 fallback)
│ │ ├── poetry.ts # 诗词 API 客户端
│ │ └── calendar.ts # 公农历转换
│ ├── public/
│ │ └── donate-qr.jpg # 赞赏码图片
│ ├── index.html
│ ├── package.json
│ └── vite.config.ts # 端口从 .env 读取
├── start.ps1 # 一键启动脚本
└── README.md
部署指南
前置依赖
- Python >= 3.10(后端)
- Node.js >= 18(前端构建)
- 诗词数据:chinese-poetry 项目(本地克隆,约 500MB)
快速开始(Windows)
# 1. 克隆仓库 git clone https://github.com/sunclchina/greet-poster.git cd greet-poster # 2. 安装 Python 依赖 pip install -r backend/requirements.txt # 3. 安装前端依赖 cd frontend npm install cd .. # 4. 配置诗词数据源 # 编辑 backend/.env,设置 POETRY_ROOT 指向本地数据目录 # POETRY_ROOT=E:my-projectchinese-poetry # 5. 一键启动 .start.ps1
配置说明
编辑 backend/.env:
# ── 前后端端口 ── BACKEND_HOST=0.0.0.0 BACKEND_PORT=8001 FRONTEND_PORT=8082 # ── 管理员账号 ── DEFAULT_USERNAME=admin DEFAULT_PASSWORD=*** # ── 诗词数据源 ── POETRY_ROOT=E:my-projectchinese-poetry # ── AI 模型(可选) ── AI_ENABLED=false AI_API_URL=http://localhost:11434/v1 AI_MODEL=qwen2.5:7b # ── 定时推送(可选) ── PUSH_ENABLED=false PUSH_TIME=08:00 PUSH_WEBHOOK_URL=
使用说明
首次使用
- 打开 http://localhost:8082
- 注册或使用默认管理员登录
- 登录进入海报页面
默认管理员
| 用户名 | 密码 |
|---|---|
admin | admin123 |
管理员登录后可在顶部「设置」中管理用户、诗词、问候语、系统配置。
海报操作
| 操作 | 方式 |
|---|---|
| 切换日期 | 左右滑动 / − + 按钮逐日调整 |
| 换诗词 | 点击「换诗」按钮 / 搜索诗词 |
| 换问候 | 点击「换问候」按钮随机切换 |
| 编辑诗词 | 管理员双击诗词框 |
| 编辑问候语 | 管理员双击问候语框 |
| 移动文本框 | 拖拽框体 |
| 调整文本框大小 | 拖拽右下角 ◢ 拉手 |
| 背景图片 | 点击「背景」→ 本地上传 / URL / 自动配图 |
| 画中画 | 点击「画中画」→ 上传图片 / 拖拽 / URL |
| 导出 | 选择格式(PNG/JPG/WebP)→ 点击「下载」 |
| 分享 | 点击「分享」→ 系统原生分享面板 |
API 接口
| 接口 | 方法 | 说明 |
|---|---|---|
/api/auth/register | POST | 注册 |
/api/auth/login | POST | 登录 |
/api/poetry/random | GET | 随机诗词 |
/api/poetry/search | GET | 搜索诗词 |
/api/health | GET | 健康检查 |
/api/settings | GET/PUT | 系统配置(需 admin) |
/api/poems/custom | GET/POST | 自定义诗词(需 admin) |
/api/greetings | GET/POST | 问候语管理(需 admin) |
定时推送配置
支持通过 Webhook 每日定时推送早安诗词到微信。
方式一:PushPlus(推荐)
- 打开 https://www.pushplus.plus 微信扫码登录
- 获取你的 Token(个人中心 → 一对一推送 → Token)
- 在设置面板中填入:
- 启用定时推送 → 打开
- 推送时间 → 设置(默认 08:00)
- Webhook 地址 →
https://www.pushplus.plus/send?token=你的Token - 推送联系人 → 留空
- 保存后点击「测试推送」验证
方式二:企业微信群机器人
- 企业微信 → 创建群聊 → 群设置 → 群机器人 → 添加
- 复制 Webhook 地址,填到设置面板
- 推送联系人可填
@all或指定成员
方式三:Server酱
- 打开 https://sct.ftqq.com 微信扫码
- 复制 SendKey
- Webhook 地址填:
https://sct.ftqq.com/你的SendKey.send
技术栈
- 后端: FastAPI + SQLite + JWT
- 前端: React + TypeScript + Vite
- 诗词数据: chinese-poetry(15 文集,9 万余首)
- 农历: 1900-2100 公农历转换


这个每日诗词推送挺有意思的,想试试
阅览
部署起来会不会很麻烦啊,500MB的诗词数据有点大