
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Plant-it 是一款自托管的园艺伴侣应用,旨在帮助用户管理植物养护活动。它不提供养护建议,而是专注于记录用户的养护行为,帮助用户记住上次养护时间、管理植物收藏、存储植物照片,并提醒用户植物养护间隔。后端服务负责数据处理、API 接口和业务逻辑,需配合前端、MySQL 数据库和 Redis 缓存使用。
适合园艺爱好者、家庭植物养护者、植物收藏家等需要系统跟踪植物状态和养护历史的用户。尤其适合希望自托管数据、保护隐私的个人或小团体使用。
推荐使用 Docker Compose 部署,需同时运行后端、前端、MySQL 和 Redis 服务。仓库提供预配置的 docker-compose.yml 文件,包含所有必要服务。
yamlversion: "3" name: plant-it services: backend: image: docker.xuanyuan.run/msdeluise/plant-it-backend:latest env_file: backend.env depends_on: - db - cache restart: unless-stopped volumes: - "./upload-dir:/upload-dir" ports: - "8080:8080" db: image: docker.xuanyuan.run/mysql:8.0 restart: always env_file: backend.env cache: image: docker.xuanyuan.run/redis:7.2.1 restart: always frontend: image: docker.xuanyuan.run/msdeluise/plant-it-frontend:latest env_file: frontend.env links: - backend ports: - "3000:3000"
backend.env 和 frontend.env 配置文件(详见配置说明)bashdocker compose up -d
http://localhost:3000http://localhost:8080/apihttp://localhost:8080/api/swagger-ui/index.html若在服务器部署并从其他设备(如手机)访问,需修改:
frontend.env 中的 API_URL 为服务器 IP,如 http://192.168.1.100:8080/apihttp://服务器IP:3000,后端 API 地址变为 http://服务器IP:8080/api后端端口修改
docker-compose.yml 中修改端口映射,如 9090:8080(将主机端口 9090 映射到容器 8080)frontend.env 中的 API_URL 为新端口,如 http://localhost:9090/api前端端口修改
在 docker-compose.yml 中修改前端端口映射,如 4040:3000(将主机端口 4040 映射到容器 3000)
DNS 限制
浏览器无法解析 Docker 内部服务名(如 backend),因此需使用服务器 IP 而非 Docker 服务名配置 API_URL 和 ALLOWED_ORIGINS。例如:
http://backend:8080/api 作为 API_URL,需使用 http://服务器IP:8080/apiALLOWED_ORIGINS 需设置为客户端浏览器的 IP,而非 Docker 服务名CORS 配置
ALLOWED_ORIGINS 默认为 *(允许所有来源),可根据需求设置为具体 IP 列表(逗号分隔),以增强安全性。
| 环境变量 | 说明 | 示例值 |
|---|---|---|
| MYSQL_HOST | MySQL 主机地址 | db |
| MYSQL_PORT | MySQL 端口 | 3306 |
| MYSQL_USERNAME | MySQL 用户名 | root |
| MYSQL_PSW | MySQL 用户密码 | root |
| MYSQL_ROOT_PASSWORD | MySQL root 密码 | root |
| MYSQL_DATABASE | 数据库名称 | bootdb |
| JWT_SECRET | JWT 密钥 | putTheSecretHere |
| JWT_EXP | JWT 过期时间(天) | 1 |
| USERS_LIMIT | 用户数量限制(含管理员,≤0 为无限制) | -1 |
| UPLOAD_DIR | 图片存储目录(Docker 部署保持默认,修改卷映射即可) | /upload-dir |
| API_PORT | 后端服务端口 | 8080 |
| CACHE_TTL | 缓存过期时间(秒) | 86400 |
| CACHE_HOST | Redis 主机地址 | cache |
| CACHE_PORT | Redis 端口 | 6379 |
| TRAFLE_KEY | Trefle API 密钥(留空则仅支持用户自定义植物) | your_trefle_key |
| ALLOWED_ORIGINS | CORS 允许的来源(逗号分隔) | * |
| 环境变量 | 说明 | 示例值 |
|---|---|---|
| PORT | 前端服务端口(Docker 部署保持默认,修改端口映射即可) | 3000 |
| API_URL | 后端 API 地址 | http://localhost:8080/api |
| PAGE_SIZE | 分页大小 | 25 |
| BROWSER | 是否自动打开浏览器(Docker 部署设为 none) | none |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务