
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Yo是一个轻量级URL缩短器,旨在将冗长、难以记忆的URL转换为简洁、易于分享的短链接,提升链接的可用性和传播效率。支持自定义链接名称、访问统计,并可通过Auth0实现用户认证,确保链接管理的安全性。
使用docker-compose部署
shgit clone https://github.com/jonfairbanks/yo.git cd yo
创建.env文件配置环境变量(参考下方环境变量说明)
启动服务:
shdocker-compose up -d
手动运行Docker容器(前端)
shdocker run -d \ --name yo-client \ -p 3000:3000 \ -e REACT_APP_API_URL=https://yo-api.mysite.io/api/ \ -e REACT_APP_SOCKET_URL=https://yo-api.mysite.io \ -e REACT_APP_BASE_URL=https://yo.mysite.io \ docker.xuanyuan.run/jonfairbanks/yo-client
手动运行Docker容器(后端)
shdocker run -d \ --name yo-server \ -p 7000:7000 \ -e ERROR_URL=https://mysite.io/error \ -e BASE_URL=https://yo.mysite.io \ -e API_URL=https://yo-api.mysite.io/api/ \ -e MONGO_URI=mongodb://mongo:27017/yo \ --link mongo:mongo \ docker.xuanyuan.run/jonfairbanks/yo-server
客户端环境变量
| ENV | 是否必填 | 说明 | 示例 |
|---|---|---|---|
REACT_APP_API_URL | 是 | 用于连接Yo API的地址,需包含末尾斜杠 | https://yo-api.mysite.io/api/ |
REACT_APP_SOCKET_URL | 是 | 用于连接Yo API的Socket.io端点 | https://yo-api.mysite.io |
REACT_APP_BASE_URL | 是 | Yo前端部署的URL,无需包含末尾斜杠 | https://yo.mysite.io |
REACT_APP_BLOCKED_NAMES | 否 | 逗号分隔的禁止用作链接名称的词汇 | "blocked1,blocked2" |
REACT_APP_ALLOWED_NAMES | 否 | 逗号分隔的允许通过过滤的词汇(完整禁止列表见https://github.com/web-mech/badwords/blob/master/lib/lang.json%EF%BC%89 | "allowed1,allowed2" |
REACT_APP_URL_PLACEHOLDER | 否 | 覆盖提交表单中默认的URL占位符 | https://www.youtube.com/watch?v=dQw4w9WgXcQ |
REACT_APP_NAME_PLACEHOLDER | 否 | 覆盖提交表单中默认的链接名称占位符 | Rick |
REACT_APP_AUTH | 否 | 通过Auth0强制用户登录(详情见“启用API认证”部分) | true |
REACT_APP_SIGNUPS | 否 | 允许用户在首次登录时注册(不推荐) | true |
REACT_APP_AUTH0_CLIENT | 否 | Auth0认证所需的客户端ID(启用认证时必填) | Auth0设置过程中提供 |
REACT_APP_AUTH0_DOMAIN | 否 | Auth0认证所需的域名(启用认证时必填) | mysite.auth0.com |
PORT | 否 | 覆盖应用端口,默认3000 | 3001 |
服务器环境变量
| ENV | 是否必填 | 说明 | 示例 |
|---|---|---|---|
ERROR_URL | 是 | 用户访问未知链接时的重定向地址(功能开发中) | https://mysite.io/error |
BASE_URL | 是 | Yo前端部署的URL,无需包含末尾斜杠 | https://yo.mysite.io |
API_URL | 是 | Yo后端API的URL,需包含末尾斜杠 | https://yo-api.mysite.io/api/ |
MONGO_URI | 否 | MongoDB连接地址,未提供时默认使用mongodb://localhost/yo | mongodb://user:password@localhost:27018/yo |
LOG_LOCATION | 否 | 覆盖访问日志的存储路径,默认存储在应用目录 | /Logs/yo.log |
AUTH | 否 | 启用令牌认证(启用时需同时在客户端启用Auth0) | true |
AUTH0_DOMAIN | 否 | 用于验证用户令牌的Auth0域名(需与客户端的AUTH0_DOMAIN一致,启用认证时必填) | mysite.auth0.com |
PORT | 否 | 覆盖应用端口,默认7000 | 7001 |
前端Nginx配置
nginxserver { location /manifest.json { proxy_pass http://127.0.0.1:3000/manifest.json; } location / { proxy_pass http://127.0.0.1:3000/; proxy_set_header X-Real-IP $remote_addr; # 支持WebSocket proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
后端Nginx配置
nginxserver { location ~* "^/[0-9a-z!?@_-]{1,99}$" { proxy_set_header X-Real-IP $remote_addr; rewrite ^/(.*)$ https://my-api-url.com/api/link/$1 redirect; } location /socket.io { proxy_pass http://127.0.0.1:7000; proxy_set_header x-real-ip $remote_addr; # 支持WebSocket proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location / { proxy_pass http://127.0.0.1:7000; proxy_set_header X-Real-IP $remote_addr; # 支持WebSocket proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
默认情况下,Yo后端API是开放的,可能导致未授权访问。通过Auth0启用认证可提升安全性:
REACT_APP_AUTH=true、REACT_APP_AUTH0_CLIENT和REACT_APP_AUTH0_DOMAINAUTH=true和AUTH0_DOMAIN(需与客户端一致)注:默认禁用用户注册,若需开启可设置客户端环境变量
REACT_APP_SIGNUPS=true
!https://raw.githubusercontent.com/jonfairbanks/yo/master/images/architecture.png
yo-pm2.yaml配置启动和部署docker-compose.yaml可一键部署前端、后端和数据库您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务