引言:为什么需要 Tinyauth?
你是否在自建家庭服务器时,为保护 Docker 应用而头疼?想给 Jellyfin、Homer 等应用加个登录屏,却发现 Authelia、Keycloak 这些工具配置复杂、资源占用大?
别急,今天我们要聊的 Tinyauth,就是那个简单到 “让人想尖叫” 的开源神器!它轻量、易用,能在 5 分钟内为你的 Docker 应用加上一层安全防护。
准备好了吗?让我们一起解锁 Tinyauth 的魅力!
Tinyauth 是什么?核心功能一览
Tinyauth 是由 GitHub 用户 steveiliop56 开发的一个开源认证中间件,专为 Docker 应用设计。
它的目标简单粗暴:用最少的配置,为你的应用加上一个登录屏。无论是家庭服务器还是小型项目,Tinyauth 都能让你快速上手。
GitHub 仓库地址:https://github.com/steveiliop56/tinyauth
核心功能:简单就是它的超能力
-
一键式登录屏:Tinyauth 提供简洁的用户名/密码登录界面,无需复杂配置。输入用户名和密码,保护你的应用就是这么简单!
-
OAuth 集成:支持 Google、GitHub 和任何通用 OAuth 提供商登录。想用 Google 账号一键登录?Tinyauth 安排得明明白白!
-
兼容主流代理:完美支持 Traefik、Nginx、Caddy 等反向代理,适配你的现有环境。
-
轻量高效:基于 Go 语言开发,仅需 20MB 空间,启动快如闪电,资源占用低到你几乎感觉不到它的存在。
-
灵活的访问控制:通过环境变量设置白名单,控制谁能访问你的应用。想限制某些用户?Tinyauth 轻松搞定!
-
HTTP Basic Auth 支持:无需 cookie,直接通过命令行或代码访问应用,开发者的福音!
Tinyauth 的设计哲学是 “极简”。没有数据库,没有繁琐的 YAML 文件,只需几个环境变量,就能让你的应用安全又优雅。
为什么选择 Tinyauth?
想象一下,你花了一整个周末折腾 Authelia,结果还是被复杂的配置文件搞得晕头转向。或者你只是想保护家里的 Plex 服务器,却发现 Keycloak 的设置比你的服务器本身还复杂!
Tinyauth 就是为这样的场景而生。它就像一个贴心的朋友,帮你快速解决问题,让你有更多时间享受自建服务的乐趣。
Reddit 上的自托管爱好者对 Tinyauth 赞不绝口:“花了 20 分钟,Tinyauth 就跑起来了,简单到爆!”还有人说:“终于有个工具不逼我读 500 页文档!”
这些评价是不是让你也心动了?Tinyauth 不仅能满足 IT 从业者的需求,连科技爱好者都能轻松上手。
安装 Tinyauth:5 分钟上手
Tinyauth 的安装过程简单到让人想给它点个赞。下面我们一步步教你如何部署。
环境准备
- Docker:确保你的系统已安装 Docker 和 Docker Compose。
- 反向代理:Tinyauth 支持 Traefik、Nginx 或 Caddy,推荐使用 Traefik。
- 域名:准备一个域名(如 tinyauth.example.com),所有应用需在此域名下。
安装步骤
-
拉取 Tinyauth 镜像
打开终端,运行以下命令拉取最新版本的 Tinyauth 镜像:
1
$ docker pull ghcr.io/steveiliop56/tinyauth:v3
-
生成密钥
Tinyauth 需要一个 32 位密钥用于加密。运行以下命令生成:
1
$ openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | head -c 32 && echo
记下生成的密钥,后面会用到。
-
创建用户
Tinyauth 使用 bcrypt 哈希存储用户密码。运行以下命令创建用户:
1
$ docker run -i -t --rm ghcr.io/steveiliop56/tinyauth:v3 user create --interactive
按照提示输入用户名和密码,生成类似
user:$2a$10$UdLYoJ5lgPsC0RKqYH/jMua7zIn0g9kPqWmhYayJYLaZQ/FTmH2/u
的哈希值。 -
配置 Docker Compose
创建一个 docker-compose.yml 文件,添加以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27services:
traefik:
image: traefik:v3.3
container_name: traefik
command: --api.insecure=true --providers.docker
ports:
- 80:80
volumes:
- /var/run/docker.sock:/var/run/docker.sock
whoami:
image: traefik/whoami:latest
container_name: whoami
labels:
traefik.enable: true
traefik.http.routers.nginx.rule: Host(`whoami.example.com`)
traefik.http.routers.nginx.middlewares: tinyauth
tinyauth:
image: ghcr.io/steveiliop56/tinyauth:v3
container_name: tinyauth
environment:
- SECRET=你的密钥
- APP_URL=https://tinyauth.example.com
- USERS=你的用户名:密码哈希
labels:
traefik.enable: true
traefik.http.routers.tinyauth.rule: Host(`tinyauth.example.com`)
traefik.http.middlewares.tinyauth.forwardauth.address: http://tinyauth:3000/api/auth/traefik将 SECRET 替换为生成的密钥,USERS 替换为用户名和密码哈希,
APP_URL
替换为你的域名。 -
启动服务
在 docker-compose.yml 所在目录运行:
1
$ docker-compose up -d
-
验证安装
访问
whoami.example.com
,你应该被重定向到 Tinyauth 登录页面。输入用户名和密码,登录后即可访问应用。默认用户为user
,密码为password
(仅用于测试,记得更换!)。
使用 Tinyauth:让安全更简单
安装完成后,Tinyauth 的使用就像喝水一样简单。以下是几种常见场景的用法。
- 保护单个应用
想保护某个 Docker 应用?只需在应用的 Docker Compose 配置中添加 Traefik 标签:
1 | labels: |
保存并重启服务,访问应用时就会弹出 Tinyauth 登录屏。
- 配置 OAuth 登录
想用 Google 或 GitHub 登录?Tinyauth 支持 OAuth,配置也超简单:
-
获取 OAuth 凭证:在 Google 或 GitHub 开发者控制台创建应用,获取
CLIENT_ID
和CLIENT_SECRET
。 -
更新环境变量:在 docker-compose.yml 中添加:
1
2
3environment:
- GOOGLE_CLIENT_ID=你的 Google 客户端 ID
- GOOGLE_CLIENT_SECRET=你的 Google 客户端密钥 -
重启服务:运行
docker-compose up -d
,访问登录页面,选择 Google 登录即可。
- 设置访问控制
想限制某些用户访问特定应用?在应用的标签中添加白名单:
1 | labels: |
未在白名单中的用户将被重定向到 “未授权” 页面。
- 使用 HTTP Basic Auth
开发者福利!Tinyauth 支持 HTTP Basic Auth,无需登录页面即可通过命令行访问:
1 | $ curl -u user:password https://whoami.example.com |
这对脚本和 API 调用特别友好。
进阶技巧:让 Tinyauth 更强大
-
自定义标题:通过环境变量
APP_TITLE
设置登录页面标题,如APP_TITLE=我的超级登录屏
。 -
调整会话时间:通过
SESSION_EXPIRY
设置 cookie 有效期,单位为秒,默认 7200 秒(2 小时)。 -
调试日志:设置
LOG_LEVEL=1
启用详细日志,排查问题更轻松。 -
加入社区:Tinyauth 有一个 Discord 服务器,加入后可以与开发者和其他用户交流,获取最新动态。
Tinyauth 适合谁?
Tinyauth 专为家庭服务器和小型项目设计。如果你需要企业级功能(如复杂权限管理),可能需要 Authelia 或 Keycloak。但对于个人用户或自托管爱好者,Tinyauth 的简单性和高效性无人能敌。
小贴士:在 Docker Compose 中,bcrypt 哈希中的
$
需要写成$$
,否则 Docker 会误认为是变量。
总结:Tinyauth,简单安全的代名词
Tinyauth 就像一个轻量级 “门卫”,为你的 Docker 应用提供简单而可靠的保护。
无需繁琐配置,几分钟就能搞定登录屏,支持 OAuth、兼容主流代理,简直是自托管爱好者的梦中情人!
无论你是 IT 从业者还是科技爱好者,Tinyauth 都能让你轻松上手,省下时间去享受自建服务的乐趣。
快去试试吧!访问 Tinyauth 官网 查看完整文档,或者加入 Discord 社区 与大家分享你的经验。你的服务器安全,从 Tinyauth 开始!
想让更多人知道这个神器?分享这篇文章到你的朋友圈,或者在 Reddit、X 上晒晒你的 Tinyauth 搭建心得吧!