
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
一个轻量级的转发认证服务,为Traefik反向代理/负载均衡器提供登录和认证功能,使用Apache基本认证(https://httpd.apache.org/docs/current/programs/htpasswd.html%EF%BC%89%E6%96%87%E4%BB%B6%E3%80%82%E5%9F%BA%E4%BA%8Ehttps://github.com/thomseddon/traefik-forward-auth%E7%9A%84%E6%A6%82%E5%BF%B5%EF%BC%8C%E4%BD%86%E4%BD%BF%E7%94%A8%E6%96%87%E4%BB%B6%E5%9E%8B%E8%AE%A4%E8%AF%81%E6%8F%90%E4%BE%9B%E8%80%85%E6%9B%BF%E4%BB%A3%E4%BA%86Google/OIDC%E3%80%82
适用于需要为Traefik代理的服务添加简单认证保护的场景,特别是:
以下是使用docker-compose部署authentik与Traefik的示例配置:
yamlversion: '3' services: traefik: image: traefik:1.7 command: [ "--web", "--docker", "--docker.domain=docker.localhost" ] depends_on: - "authentik" ports: - "80:80" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro networks: traefik-net: public-net: labels: - "traefik.port=8080" - "traefik.frontend.rule=Host:traefik.docker.localhost" - "traefik.frontend.auth.forward.address=http://authentik:4567/auth" - "traefik.frontend.auth.forward.trustForwardHeader=true" - "traefik.frontend.auth.forward.authResponseHeaders=X-Forwarded-User" authentik: image: hermanosgecko/authentik:latest environment: - INSECURE_COOKIE=true # 示例未使用HTTPS,生产环境请勿使用 - COOKIE_DOMAIN=docker.localhost - AUTH_HOST=auth.docker.localhost - SECRET=THIS_IS_A_SECRET networks: traefik-net: aliases: - "authentik" volumes: - ${PWD}/htpasswd:/htpasswd:ro labels: - "traefik.port=4567" - "traefik.frontend.rule=Host:auth.docker.localhost" - "traefik.frontend.auth.forward.address=http://authentik:4567/auth" - "traefik.frontend.auth.forward.trustForwardHeader=true" - "traefik.frontend.auth.forward.authResponseHeaders=X-Forwarded-User" whoami: image: stefanscherer/whoami:latest networks: traefik-net: labels: - "traefik.port=8080" - "traefik.frontend.rule=Host:whoami.docker.localhost" - "traefik.frontend.auth.forward.address=http://authentik:4567/auth" - "traefik.frontend.auth.forward.trustForwardHeader=true" - "traefik.frontend.auth.forward.authResponseHeaders=X-Forwarded-User" networks: traefik-net: internal: true public-net:
容器镜像通过运行时参数进行配置,格式为<外部>:<内部>。例如,-p 8080:80表示将容器内的80端口映射到主机的8080端口。
| 参数 | 功能 |
|---|---|
-p 4567 | authentik Web界面的端口 |
-e COOKIE_DOMAIN=mydomain.com | Cookie的作用域域名(必填) |
-e AUTH_HOST=auth.mydomain.com | 登录页面的子域名,必须是COOKIE_DOMAIN的子域,无需包含协议或路径(必填) |
-e SECRET=THIS_IS_A_SECRET | 用于签名认证Cookie的密钥,建议使用随机值(如openssl rand -hex 16生成)(必填) |
-e COOKIE_NAME=tokenname | Cookie名称,默认为authentik.token |
-e INSECURE_COOKIE=true | 当客户端与Traefik之间不使用HTTPS时启用,此时Cookie将不设置Secure属性,默认为False |
-e LIFETIME=86400 | 认证会话有效期(秒),默认为86400(24小时) |
-v /htpasswd | htpasswd文件的挂载路径 |
用户文件
通过htpasswd文件限制可登录用户。支持的密码格式包括Apache MD5、SHA1、libc crypt或纯文本,同一文件中可混合使用不同加密类型的密码。
转发头
认证后的用户信息通过X-Forwarded-User头传递,需在Traefik配置中添加authResponseHeaders=X-Forwarded-User(如示例中的labels配置)。
操作流程
app10.test.com/home/pagetest.com域下设置认证Cookieapp10.test.com/home/page注意:必须确保
AUTH_HOST是COOKIE_DOMAIN的子域,且指向authentik容器的请求已正确路由(如示例中通过Traefik labels配置)。
https://github.com/hermanosgecko/authentik/blob/master/LICENSE
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务