当前位置: 首页 > article >正文

别再手动改hosts了!用Docker Compose一键部署Authelia SSO,顺便搞定Traefik反向代理

一键部署Authelia SSO与Traefik反向代理的Docker Compose实战指南在当今复杂的网络环境中管理多个Web应用的认证流程往往成为开发者的痛点。手动配置hosts文件、逐个设置访问权限不仅耗时耗力还容易出错。本文将介绍如何利用Docker Compose快速搭建Authelia单点登录系统并集成Traefik作为反向代理实现开箱即用的安全访问控制方案。1. 技术栈概述与准备工作Authelia是一款开源的单点登录(SSO)和双因素认证(2FA)系统专为自托管应用设计。它支持多种认证方式能与反向代理无缝集成为内部应用提供统一的认证入口。Traefik则是现代化的反向代理和负载均衡工具支持自动服务发现和Lets Encrypt证书管理。部署前准备已安装Docker和Docker Compose的Linux服务器推荐Ubuntu 20.04有效的域名用于SSL证书申请基础命令行操作知识提示虽然本文使用.example.com作为演示域名实际部署时请替换为您自己的域名。2. Docker Compose编排文件解析以下是经过优化的docker-compose.yml文件集成了Authelia、Redis、Traefik和演示站点version: 3.8 networks: sso-network: driver: bridge services: authelia: image: authelia/authelia:latest container_name: authelia volumes: - ./authelia/config:/config networks: - sso-network environment: - TZAsia/Shanghai labels: - traefik.enabletrue - traefik.http.routers.authelia.ruleHost(auth.yourdomain.com) - traefik.http.routers.authelia.entrypointswebsecure - traefik.http.routers.authelia.tls.certresolverletsencrypt - traefik.http.services.authelia.loadbalancer.server.port9091 redis: image: redis:alpine container_name: redis volumes: - ./redis/data:/data networks: - sso-network restart: unless-stopped traefik: image: traefik:v2.6 container_name: traefik ports: - 80:80 - 443:443 volumes: - ./traefik/config:/etc/traefik - /var/run/docker.sock:/var/run/docker.sock networks: - sso-network command: - --api.insecuretrue - --providers.dockertrue - --providers.docker.exposedbydefaultfalse - --entrypoints.web.address:80 - --entrypoints.websecure.address:443 - --certificatesresolvers.letsencrypt.acme.emailyouremail.com - --certificatesresolvers.letsencrypt.acme.storage/etc/traefik/acme.json - --certificatesresolvers.letsencrypt.acme.httpchallenge.entrypointweb whoami: image: containous/whoami container_name: whoami networks: - sso-network labels: - traefik.enabletrue - traefik.http.routers.whoami.ruleHost(app.yourdomain.com) - traefik.http.routers.whoami.entrypointswebsecure - traefik.http.routers.whoami.tls.certresolverletsencrypt - traefik.http.routers.whoami.middlewaresautheliadocker关键配置说明使用独立的Docker网络sso-network确保服务间隔离Authelia配置挂载到本地./authelia/config目录Traefik配置自动SSL证书申请Whoami服务作为演示应用受Authelia保护3. Authelia详细配置在./authelia/config目录下创建两个关键配置文件configuration.ymltheme: light jwt_secret: your_secure_jwt_secret_here default_redirection_url: https://app.yourdomain.com server: host: 0.0.0.0 port: 9091 authentication_backend: file: path: /config/users_database.yml password: algorithm: argon2id iterations: 3 memory: 65536 parallelism: 4 access_control: default_policy: deny rules: - domain: auth.yourdomain.com policy: bypass - domain: app.yourdomain.com policy: two_factor session: name: authelia_session secret: your_session_secret_here expiration: 1h inactivity: 5m domain: yourdomain.com storage: encryption_key: your_encryption_key_here local: path: /config/db.sqlite3 notifier: filesystem: filename: /config/notifications.txtusers_database.ymlusers: admin: displayname: Admin User password: $argon2id$v19$m65536,t3,p4$dGhlc2FsdHlzdHJpbmc$thehashedpassword email: adminyourdomain.com groups: - admins developer: displayname: Developer password: $argon2id$v19$m65536,t3,p4$YW5vdGhlcnNhbHQ$anotherhashedpassword email: devyourdomain.com生成密码哈希的命令docker run --rm authelia/authelia:latest authelia hash-password yourpassword4. Traefik配置优化在./traefik/config目录下创建traefik.ymlapi: dashboard: true insecure: true entryPoints: web: address: :80 http: redirections: entryPoint: to: websecure scheme: https websecure: address: :443 providers: docker: endpoint: unix:///var/run/docker.sock exposedByDefault: false certificatesResolvers: letsencrypt: acme: email: youremail.com storage: /etc/traefik/acme.json httpChallenge: entryPoint: web性能优化参数serversTransport: maxIdleConnsPerHost: 200 forwardingTimeouts: dialTimeout: 30s responseHeaderTimeout: 0s log: level: INFO format: json5. 部署与测试流程启动服务栈docker-compose up -d验证服务状态docker-compose ps测试访问流程直接访问https://app.yourdomain.com应跳转到Authelia登录页使用users_database.yml中的凭证登录成功认证后应返回Whoami服务页面管理界面Traefik仪表板:https://traefik.yourdomain.comAuthelia管理API:https://auth.yourdomain.com/api/常见问题排查# 查看Authelia日志 docker logs authelia # 检查Redis连接 docker exec -it redis redis-cli ping # 验证Traefik配置 docker exec traefik traefik check-config6. 生产环境增强建议安全加固措施替换所有示例中的密钥和密码启用数据库存储替代SQLite配置SMTP通知服务设置适当的备份策略性能扩展方案# 在docker-compose.yml中添加 authelia: deploy: resources: limits: cpus: 1 memory: 512M reservations: memory: 256M healthcheck: test: [CMD, authelia, healthcheck] interval: 30s timeout: 5s retries: 3监控集成Prometheus指标端点日志收集到ELK或Loki健康检查报警实际部署中发现合理配置会话超时和密码策略能显著提升安全性。对于团队协作场景建议结合LDAP或Active Directory进行用户管理而非文件存储方式。

相关文章:

别再手动改hosts了!用Docker Compose一键部署Authelia SSO,顺便搞定Traefik反向代理

一键部署Authelia SSO与Traefik反向代理的Docker Compose实战指南 在当今复杂的网络环境中,管理多个Web应用的认证流程往往成为开发者的痛点。手动配置hosts文件、逐个设置访问权限不仅耗时耗力,还容易出错。本文将介绍如何利用Docker Compose快速搭建Au…...

python系列【仅供参考】:mongo4.0.0 加用户认证 motor和pymongo的auth连接

mongo4.0.0 加用户认证 && motor和pymongo的auth连接 mongo4.0.0 加用户认证 摘要 一. 数据库版本 二. 为mongo 添加用户认证 1. 创建超级用户 3. 开启auth 4.重启mongo 5. 添加库用户 三.验证 四.pymongo,motor连接 摘要 正文 mongo4.0.0 加用户认证 摘要 本文介绍…...

RISC-V开发板结合Python实现B站消息监测:硬件极客的IoT实践

1. 项目概述:当硬件极客遇上日常痛点前几天在极客社区里看到一个挺有意思的分享,一位开发者朋友用一块高性能的RISC-V开发板,结合自己写的Python脚本,做了一个B站未读消息的实时监测器。这项目乍一听有点“杀鸡用牛刀”的感觉——…...

告别黑盒渲染!用Nvdiffrast手把手教你从零搭建可微渲染管线(PyTorch版)

从零构建可微渲染管线:Nvdiffrast深度实践指南 在计算机图形学与深度学习交叉领域,可微渲染技术正掀起一场革命。传统渲染管线如同黑盒,输入3D场景参数,输出2D图像,但反向路径却被阻断——这正是Nvdiffrast要解决的痛点…...

Perplexity股票信息检索失效?7类常见报错代码对照表,含官方文档未披露的Rate Limit绕行方案

更多请点击: https://kaifayun.com 第一章:Perplexity股票信息检索失效?7类常见报错代码对照表,含官方文档未披露的Rate Limit绕行方案 当调用 Perplexity API 查询实时股票信息(如 PXLY、 NVDA)时&…...

0基础装完龙虾不知道干嘛?用15分钟帮你激活造物主身份

这个 skill,由惊风制作,前后打磨了一个多月。 它解决的不是“怎么安装 OpenClaw”,而是一个更核心的问题:为什么很多人装完以后,Agent 依然像个空壳。一、为什么会有 king.skill?很多人第一次装完 OpenClaw…...

告别复杂设置!Sunshine v0.21.0 + Moonlight安卓版:5分钟搞定家庭局域网游戏串流

5分钟极简指南:用Sunshine和Moonlight打造家庭游戏串流系统 客厅的沙发上,手机屏幕突然变成了你的高性能游戏PC——这不是科幻电影,而是每个家庭都能实现的游戏串流体验。过去需要复杂网络知识才能搭建的串流系统,如今借助Sunshin…...

2025最权威的十大AI科研工具推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 学术研讨范畴正在历经深度的变动,人工智能论文工具现身,极大地提高了…...

Artisan:开源咖啡烘焙软件的终极指南,从入门到精通的完整解决方案

Artisan:开源咖啡烘焙软件的终极指南,从入门到精通的完整解决方案 【免费下载链接】artisan artisan: the worlds most trusted roasting software 项目地址: https://gitcode.com/gh_mirrors/ar/artisan 你是否曾为咖啡烘焙的不可预测性而烦恼&a…...

别再乱设了!Design Compiler里set_input_delay的10个实战避坑点(附时序报告解读)

别再乱设了!Design Compiler里set_input_delay的10个实战避坑点(附时序报告解读) 在数字IC前端设计流程中,时序约束的准确性直接影响综合结果的质量。作为Synopsys Design Compiler(DC)的核心约束命令之一&…...

Centos9安装MySQL8.0数据库

1.这次使用rpm包进行安装MySQL数据库首先下在包,我这里是使用wget进行下载的,这里是下载地址。下载好后使用ls看看rpm包是不是6个,如果不是需要重新下载。2.安装相关软件yum install -y net-tools.x86_64 libaio.x86_64 perl.x86_6…...

DragGAN交互式图像编辑:基于GAN潜空间优化的点驱动形变技术详解

1. 项目概述:交互式生成对抗网络的直观革命最近在AIGC的圈子里,一个名为“DragGAN”的研究项目火了。它实现的效果非常直观且震撼:你上传一张由生成对抗网络(GAN)生成的图片,比如一只狮子、一辆汽车或一张人…...

蓝桥杯嵌入式备赛:手把手搞定AT24C02 EEPROM读写(附CubeMX配置与常见Bug修复)

蓝桥杯嵌入式竞赛实战:AT24C02 EEPROM高效读写全攻略 1. 赛前准备:理解I2C与EEPROM的核心机制 在蓝桥杯嵌入式竞赛中,AT24C02这类EEPROM器件常被用作非易失性存储解决方案。与常见Flash存储器不同,EEPROM支持字节级擦写&#xf…...

RHCE第四次练习

第 1 步:创建脚本文件vim mem_check.sh第 2 步:写入脚本内容第3步:运行脚本...

3分钟掌握LaTeX公式转换Word的终极指南

3分钟掌握LaTeX公式转换Word的终极指南 【免费下载链接】LaTeX2Word-Equation Copy LaTeX Equations as Word Equations, a Chrome Extension 项目地址: https://gitcode.com/gh_mirrors/la/LaTeX2Word-Equation 还在为学术论文中的数学公式复制烦恼吗?LaTeX…...

AMBA系统监视器:从端口验证到SoC系统级验证的关键跃迁

1. 项目概述:从端口到系统的验证跃迁在SoC验证的战场上,我们常常陷入一种“只见树木,不见森林”的困境。作为一名验证工程师,你可能已经熟练地为每个AXI、AHB或APB接口挂上VIP(验证IP),看着端口…...

通达信缠论智能分析插件:5分钟实现专业K线结构可视化

通达信缠论智能分析插件:5分钟实现专业K线结构可视化 【免费下载链接】Indicator 通达信缠论可视化分析插件 项目地址: https://gitcode.com/gh_mirrors/ind/Indicator 你是否曾在K线图中迷失方向,看着密密麻麻的蜡烛图却不知如何判断市场趋势&am…...

Hitboxer终极指南:免费专业解决游戏按键冲突的SOCD重映射工具

Hitboxer终极指南:免费专业解决游戏按键冲突的SOCD重映射工具 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 你是否曾在激烈的格斗游戏中因为同时按下左右方向键而无法准确释放必杀技?或…...

Ultimate ASI Loader 专业指南:深入解析游戏MOD加载器的完整配置与开发

Ultimate ASI Loader 专业指南:深入解析游戏MOD加载器的完整配置与开发 【免费下载链接】Ultimate-ASI-Loader The Ultimate ASI Loader is a proxy DLL that loads custom .asi libraries into any game process. 项目地址: https://gitcode.com/gh_mirrors/ul/U…...

Claude Code用户如何通过Taotoken解决封号与Token不足的困扰

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Claude Code用户如何通过Taotoken解决封号与Token不足的困扰 1. 理解Claude Code的接入限制与Taotoken的解决方案 Claude Code作为…...

409.最长回文串(数学算法)

题目 给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的 回文串 的长度。 在构造过程中,请注意 区分大小写 。比如 "Aa" 不能当做一个回文字符串。 题目链接如下: https://leetcode.cn/problems/longe…...

ThinkPHP8.x全面升级:现代化PHP开发新标杆

好的,我们来梳理一下 ThinkPHP 8.x 版本(通常指 8.0 及后续小版本)的主要特性和改进方向。相较于之前的版本(如 5.x),8.x 版本在架构、性能、规范性和安全性上都有显著提升:核心方向与重大变更&…...

【MYSQL】 mysql库和表的操作--详解

一.库的操作1.1 创建数据库创建数据库:create database db_name; -- 本质就是在 /var/lib/mysql 创建一个目录CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] create_specification: [DEFAULT] CHARACTER SET chars…...

VK视频下载器:三步实现VKontakte视频永久保存的实用方案

VK视频下载器:三步实现VKontakte视频永久保存的实用方案 【免费下载链接】VK-Video-Downloader Скачивайте видео с сайта ВКонтакте в желаемом качестве 项目地址: https://gitcode.com/gh_mirrors/vk/VK-Video…...

透明计费如何帮助精准预测与控制AI功能月度开支

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 透明计费如何帮助精准预测与控制AI功能月度开支 1. 项目背景:深度集成AI的网站 我们负责一个内容创作辅助网站&#x…...

快速 AI 迭代仍然需要操作纪律

前言 配套资源:AI 辅助开发检查清单资源包,适合把本文的流程直接落成开发前检查表和复盘模板。 上一篇文章里,我把 AI 工作流拆成了几类任务模式:开发维护、探索学习、反馈确认。这个分类解决的是一个前置问题:在使用 …...

2025年网盘直链下载神器:LinkSwift完全使用指南与深度解析

2025年网盘直链下载神器:LinkSwift完全使用指南与深度解析 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / …...

终极免费AMD Ryzen硬件调试指南:掌握SMUDebugTool的完整使用技巧

终极免费AMD Ryzen硬件调试指南:掌握SMUDebugTool的完整使用技巧 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: …...

Windows远程桌面终极解锁指南:RDP Wrapper完整使用方案

Windows远程桌面终极解锁指南:RDP Wrapper完整使用方案 【免费下载链接】rdpwrap RDP Wrapper Library 项目地址: https://gitcode.com/gh_mirrors/rd/rdpwrap 还在为Windows家庭版无法使用远程桌面而烦恼吗?是否曾经羡慕专业版用户能够享受多用户…...

3分钟学会TV Bro浏览器:智能电视上网终极指南

3分钟学会TV Bro浏览器:智能电视上网终极指南 【免费下载链接】tv-bro Simple web browser for android optimized to use with TV remote 项目地址: https://gitcode.com/gh_mirrors/tv/tv-bro TV Bro是一款专为智能电视设计的安卓网页浏览器,通…...