
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
SnapPass是一个用于安全共享密码的Web应用,被称为“密码版的SnapChat”。它解决了通过邮件、聊天工具等方式传输密码可能导致的长期留存和安全风险问题。当接收者查看密码链接后,密码即会失效,有效防止密码被未授权访问或长期存储。
Fernet对称加密算法(来自cryptography库)加密密码Fernet对称加密算法加密,确保即使Redis数据库被未授权访问,密码仍无法被解密bash$ pip install snappass $ snappass * Running on http://0.0.0.0:5000/ * Restarting with reloader
使用Docker和Docker Compose部署:
bash$ docker-compose up -d
此命令将拉取所有依赖(Redis和Python 3.7环境),启动SnapPass和Redis服务,SnapPass可通过 http://localhost:5000 访问。
通过环境变量进行配置,以下是主要配置项:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
SECRET_KEY | 无 | 用于签名密钥的唯一密钥,应保密(参考Flask文档) |
DEBUG | 未设置 | 启用Flask调试模式(参考Flask文档) |
STATIC_URL | 无 | 静态资源位置,通常无需修改 |
NO_SSL | 未设置 | 若不使用SSL,设置此变量 |
URL_PREFIX | None | 反向代理(如nginx)后的路径前缀,例如"/some/path/" |
REDIS_HOST | "localhost" | Redis主机地址 |
REDIS_PORT | 6379 | Redis端口 |
REDIS_PASSWORD | "None" | Redis认证密码 |
SNAPPASS_REDIS_DB | 0 | Redis数据库编号 |
REDIS_URL | 未设置 | 替代REDIS_HOST、REDIS_PORT和SNAPPASS_REDIS_DB的Redis连接URL,格式:redis://username:password@localhost:6379/0 |
REDIS_PREFIX | "snappass" | Redis键前缀,防止与其他客户端冲突 |
HOST_OVERRIDE | 未设置 | 覆盖应用基本URL,适用于反向代理或SSO环境,例如sub.domain.com |
SNAPPASS_BIND_ADDRESS | 0.0.0.0 | Flask应用绑定地址,例如127.0.0.1 |
SNAPPASS_PORT | 5000 | Flask应用端口,例如6000 |
SnapPass提供两种API,满足不同使用需求:
适用于快速创建密码链接,无需Web界面,适合嵌入脚本或CI/CD流程。
创建密码
发送POST请求到/api/set_password:
bash$ curl -X POST -H "Content-Type: application/json" -d '{"password": "foobar"}' http://localhost:5000/api/set_password/
响应(包含密码链接和TTL):
json{ "link": "http://127.0.0.1:5000/snappassbedf19b161794fd288faec3eba15fa41~hHnILpQ50ZfJc3nurDfHCb_22rBr5gGEya68e_cZOrY%3D", "ttl": 1209600 }
自定义TTL(默认2周,***秒)
bash$ curl -X POST -H "Content-Type: application/json" -d '{"password": "foobar", "ttl": 3600 }' http://localhost:5000/api/set_password/
提供完整的密码生命周期管理,适合程序化交互,无需解析HTML内容。
创建密码
发送POST请求到/api/v2/passwords:
bash$ curl -X POST -H "Content-Type: application/json" -d '{"password": "foobar"}' http://localhost:5000/api/v2/passwords
响应(包含token、链接和TTL):
json{ "token": "snappassbedf19b161794fd288faec3eba15fa41~hHnILpQ50ZfJc3nurDfHCb_22rBr5gGEya68e_cZOrY=", "links": [{ "rel": "self", "href": "http://127.0.0.1:5000/api/v2/passwords/snappassbedf19b161794fd288faec3eba15fa41~hHnILpQ50ZfJc3nurDfHCb_22rBr5gGEya68e_cZOrY%3D" }, { "rel": "web-view", "href": "http://127.0.0.1:5000/snappassbedf19b161794fd288faec3eba15fa41~hHnILpQ50ZfJc3nurDfHCb_22rBr5gGEya68e_cZOrY%3D" }], "ttl": 1209600 }
检查密码是否存在
发送HEAD请求到/api/v2/passwords/<token>(token需URL编码):
bash$ curl --head http://localhost:5000/api/v2/passwords/snappassbedf19b161794fd288faec3eba15fa41~hHnILpQ50ZfJc3nurDfHCb_22rBr5gGEya68e_cZOrY%3D
200 OK404 NOT FOUND读取密码
发送GET请求到/api/v2/passwords/<token>:
bash$ curl -X GET http://localhost:5000/api/v2/passwords/snappassbedf19b161794fd288faec3eba15fa41~hHnILpQ50ZfJc3nurDfHCb_22rBr5gGEya68e_cZOrY%3D
json{ "password": "foobar" }
404 NOT FOUND错误响应/api端点限制在内部网络访问,Web界面可配置认证您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



来自真实用户的反馈,见证轩辕镜像的优质服务