diff --git a/tinyauth/3.6.2/data.yml b/tinyauth/3.6.2/data.yml new file mode 100644 index 000000000..2638871fa --- /dev/null +++ b/tinyauth/3.6.2/data.yml @@ -0,0 +1,210 @@ +additionalProperties: + formFields: + - default: 14389 + envKey: PANEL_APP_PORT_HTTP + labelEn: HTTP Port + labelZh: HTTP 端口 + label: + en: HTTP Port + ja: ポート + ms: Port + pt-br: Porta + ru: Порт + ko: 포트 + zh: HTTP 端口 + zh-Hant: HTTP 連接埠 + required: true + rule: paramPort + type: number + + - default: "" + envKey: PANEL_TINYAUTH_APP_URL + labelEn: App URL + labelZh: 应用地址 + label: + en: App URL + ja: アプリURL + ms: URL Aplikasi + pt-br: URL do Aplicativo + ru: URL приложения + ko: 앱 URL + zh: 应用地址 + zh-Hant: 應用地址 + required: false + type: text + + - default: "" + envKey: PANEL_TINYAUTH_SECRET + labelEn: Secret + labelZh: 密钥 + label: + en: Secret + ja: シークレット + ms: Rahsia + pt-br: Segredo + ru: Секрет + ko: 비밀 + zh: 密钥 + zh-Hant: 密鑰 + required: false + type: password + + - default: "86400" + envKey: PANEL_TINYAUTH_SESSION_EXPIRY + labelEn: Session Expiry (seconds) + labelZh: 会话过期时间(秒) + label: + en: Session Expiry (seconds) + ja: セッション有効期限(秒) + ms: Tamat Sesi (saat) + pt-br: Expiração da Sessão (segundos) + ru: Время жизни сессии (секунды) + ko: 세션 만료 (초) + zh: 会话过期时间(秒) + zh-Hant: 會話過期時間(秒) + required: false + type: number + + - default: "TinyAuth" + envKey: PANEL_TINYAUTH_APP_TITLE + labelEn: App Title + labelZh: 应用标题 + label: + en: App Title + ja: アプリタイトル + ms: Tajuk Aplikasi + pt-br: Título do Aplicativo + ru: Заголовок приложения + ko: 앱 제목 + zh: 应用标题 + zh-Hant: 應用標題 + required: false + type: text + + - default: "" + envKey: PANEL_TINYAUTH_OAUTH_AUTO_REDIRECT + labelEn: Auto Redirect Provider + labelZh: 自动跳转提供商 + label: + en: Auto Redirect Provider + ja: 自動リダイレクトプロバイダー + ms: Penyedia Pengalihan Automatik + pt-br: Provedor de Redirecionamento Automático + ru: Автоматический редирект провайдера + ko: 자동 리디렉션 제공자 + zh: 自动跳转提供商 + zh-Hant: 自動跳轉提供商 + required: false + type: select + values: + - label: None + value: "none" + - label: GitHub + value: "github" + - label: Google + value: "google" + - label: Generic + value: "generic" + + - default: "" + envKey: PANEL_TINYAUTH_BACKGROUND_IMAGE + labelEn: Background Image + labelZh: 背景图片 + label: + en: Background Image + ja: 背景画像 + ms: Imej Latar Belakang + pt-br: Imagem de Fundo + ru: Фоновое изображение + ko: 배경 이미지 + zh: 背景图片 + zh-Hant: 背景圖片 + required: false + type: text + + # GitHub + - default: "" + envKey: PANEL_TINYAUTH_GITHUB_CLIENT_ID + labelEn: GitHub Client ID + labelZh: GitHub 客户端ID + required: false + type: text + + - default: "" + envKey: PANEL_TINYAUTH_GITHUB_CLIENT_SECRET + labelEn: GitHub Client Secret + labelZh: GitHub 客户端密钥 + required: false + type: password + + - default: "" + envKey: PANEL_TINYAUTH_GITHUB_REDIRECT_URI + labelEn: GitHub Redirect URI + labelZh: GitHub 回调地址 + required: false + type: text + + # Google + - default: "" + envKey: PANEL_TINYAUTH_GOOGLE_CLIENT_ID + labelEn: Google Client ID + labelZh: Google 客户端ID + required: false + type: text + + - default: "" + envKey: PANEL_TINYAUTH_GOOGLE_CLIENT_SECRET + labelEn: Google Client Secret + labelZh: Google 客户端密钥 + required: false + type: password + + - default: "" + envKey: PANEL_TINYAUTH_GOOGLE_REDIRECT_URI + labelEn: Google Redirect URI + labelZh: Google 回调地址 + required: false + type: text + + # Generic + - default: "" + envKey: PANEL_TINYAUTH_GENERIC_NAME + labelEn: Generic Provider Name + labelZh: 通用提供商名称 + required: false + type: text + + - default: "" + envKey: PANEL_TINYAUTH_GENERIC_CLIENT_ID + labelEn: Generic Client ID + labelZh: 通用客户端ID + required: false + type: text + + - default: "" + envKey: PANEL_TINYAUTH_GENERIC_CLIENT_SECRET + labelEn: Generic Client Secret + labelZh: 通用客户端密钥 + required: false + type: password + + - default: "" + envKey: PANEL_TINYAUTH_GENERIC_AUTH_URL + labelEn: Generic Auth URL + labelZh: 通用认证地址 + required: false + type: text + + - default: "" + envKey: PANEL_TINYAUTH_GENERIC_TOKEN_URL + labelEn: Generic Token URL + labelZh: 通用令牌地址 + required: false + type: text + + - default: "" + envKey: PANEL_TINYAUTH_GENERIC_USER_URL + labelEn: Generic User Info URL + labelZh: 通用用户信息地址 + required: false + type: text diff --git a/tinyauth/3.6.2/docker-compose.yml b/tinyauth/3.6.2/docker-compose.yml new file mode 100644 index 000000000..72e888142 --- /dev/null +++ b/tinyauth/3.6.2/docker-compose.yml @@ -0,0 +1,42 @@ +services: + tinyauth: + image: ghcr.io/tinyauth/tinyauth:v3.6.2 + container_name: ${CONTAINER_NAME} + environment: + # ---- 通用配置 ---- + - APP_URL=${PANEL_TINYAUTH_APP_URL} + - SECRET=${PANEL_TINYAUTH_SECRET} + - SESSION_EXPIRY=${PANEL_TINYAUTH_SESSION_EXPIRY} + - APP_TITLE=${PANEL_TINYAUTH_APP_TITLE} + - OAUTH_AUTO_REDIRECT=${PANEL_TINYAUTH_OAUTH_AUTO_REDIRECT} + - BACKGROUND_IMAGE=${PANEL_TINYAUTH_BACKGROUND_IMAGE} + + # ---- GitHub ---- + - GITHUB_CLIENT_ID=${PANEL_TINYAUTH_GITHUB_CLIENT_ID} + - GITHUB_CLIENT_SECRET=${PANEL_TINYAUTH_GITHUB_CLIENT_SECRET} + - GITHUB_REDIRECT_URI=${PANEL_TINYAUTH_GITHUB_REDIRECT_URI} + + # ---- Google ---- + - GOOGLE_CLIENT_ID=${PANEL_TINYAUTH_GOOGLE_CLIENT_ID} + - GOOGLE_CLIENT_SECRET=${PANEL_TINYAUTH_GOOGLE_CLIENT_SECRET} + - GOOGLE_REDIRECT_URI=${PANEL_TINYAUTH_GOOGLE_REDIRECT_URI} + + # ---- Generic (示例 Linux.Do) ---- + - GENERIC_NAME=${PANEL_TINYAUTH_GENERIC_NAME} + - GENERIC_CLIENT_ID=${PANEL_TINYAUTH_GENERIC_CLIENT_ID} + - GENERIC_CLIENT_SECRET=${PANEL_TINYAUTH_GENERIC_CLIENT_SECRET} + - GENERIC_AUTH_URL=${PANEL_TINYAUTH_GENERIC_AUTH_URL} + - GENERIC_TOKEN_URL=${PANEL_TINYAUTH_GENERIC_TOKEN_URL} + - GENERIC_USER_URL=${PANEL_TINYAUTH_GENERIC_USER_URL} + + ports: + - "${PANEL_APP_PORT_HTTP}:3000" + labels: + createdBy: "Apps" + networks: + - 1panel-network + restart: always + +networks: + 1panel-network: + external: true diff --git a/tinyauth/README.md b/tinyauth/README.md new file mode 100644 index 000000000..abc31b5f0 --- /dev/null +++ b/tinyauth/README.md @@ -0,0 +1,78 @@ +# TinyAuth + +TinyAuth 是一个轻量级的 OAuth2 / OIDC 认证代理,适合为已有的 Web 应用、面板或服务添加登录保护。你可以将它部署在应用之前,通过标准的身份提供商(如 Casdoor、Keycloak、Auth0 等)实现单点登录(SSO)。 + +## 功能特性 + +* 支持 OAuth2 / OpenID Connect 协议 +* 支持多身份提供商配置 +* 可保护现有 Web 服务(无需修改应用本身) +* 简单的反向代理模式 +* 支持多种回调和重定向策略 + +## 快速开始 + +### 1. 部署 TinyAuth + +使用 Docker 运行: + +```bash +docker run -d \ + --name=tinyauth \ + -p 8080:8080 \ + -v $(pwd)/config.yml:/app/config.yml \ + ghcr.io/tinyauth/tinyauth:latest +``` + +### 2. 配置示例 + +在 `config.yml` 中配置认证提供商(例如 Casdoor): + +```yaml +server: + port: 8080 + +providers: + - id: casdoor + name: Casdoor + client_id: your-client-id + client_secret: your-client-secret + issuer: https://auth.example.com + redirect_url: https://tinyauth.example.com/callback +``` + +### 3. Nginx 反向代理示例 + +```nginx +server { + listen 80; + server_name app.example.com; + + location / { + proxy_pass http://127.0.0.1:8080; + } +} +``` + +### 4. 登录流程 + +1. 访问受保护的应用(如 `app.example.com`) +2. TinyAuth 会跳转到认证提供商(如 Casdoor)登录 +3. 登录成功后跳转回应用 + +## 配置参数 + +常见参数: + +| 参数 | 描述 | +| --------------- | ----------------- | +| `client_id` | OAuth2 客户端 ID | +| `client_secret` | OAuth2 客户端密钥 | +| `issuer` | 身份提供商地址(OIDC 发行者) | +| `redirect_url` | 登录成功后的回调地址 | + +## 参考链接 + +* [TinyAuth 文档](https://tinyauth.app/docs) +* [OAuth2 Proxy](https://oauth2-proxy.github.io/oauth2-proxy/)(类似工具) +* [Casdoor](https://casdoor.org/)(身份提供商示例) \ No newline at end of file diff --git a/tinyauth/data.yml b/tinyauth/data.yml new file mode 100644 index 000000000..6aff02759 --- /dev/null +++ b/tinyauth/data.yml @@ -0,0 +1,32 @@ +name: TinyAuth +tags: + - 开发工具 + - 安全 +title: 轻量级OAuth2/OIDC认证代理,支持多身份提供商的统一登录解决方案 +description: 一个轻量级的OAuth2和OIDC认证代理工具,常用于在现有Web服务前添加统一登录认证。 +additionalProperties: + key: tinyauth + name: TinyAuth + tags: + - DevTool + - Security + shortDescZh: 轻量级OAuth2/OIDC认证代理,支持多身份提供商的一站式登录认证 + shortDescEn: Lightweight OAuth2/OIDC authentication proxy with multi-provider SSO support + type: website + crossVersionUpdate: true + limit: 0 + website: https://tinyauth.app/ + github: https://github.com/tinyauth/tinyauth + document: https://tinyauth.app/docs/ + description: + en: A lightweight reverse proxy and authentication middleware supporting multiple OAuth2 and OpenID Connect providers, ideal for securing existing web services with SSO. + zh: 一个轻量级的反向代理与认证中间件,支持多种OAuth2和OIDC身份提供商,为现有Web服务提供统一登录保护。 + zh-Hant: 一個輕量級的反向代理與認證中介軟體,支援多種OAuth2和OIDC身份提供商,為既有Web服務提供單一登入保護。 + ja: 複数のOAuth2およびOIDCプロバイダーに対応した軽量認証プロキシで、既存のWebサービスにSSO保護を追加可能。 + ms: Proksi pengesahan ringan yang menyokong penyedia OAuth2 dan OIDC pelbagai, sesuai untuk melindungi perkhidmatan web sedia ada dengan SSO. + pt-br: Proxy de autenticação leve que suporta múltiplos provedores OAuth2 e OIDC, adequado para proteger serviços web existentes com SSO. + ru: Легковесный обратный прокси и провайдер аутентификации, поддерживающий OAuth2 и OIDC, обеспечивающий единую точку входа для существующих веб-сервисов. + ko: 다양한 OAuth2 및 OIDC 제공자를 지원하는 경량 인증 프록시로, 기존 웹 서비스에 단일 로그인 보호를 제공합니다. + architectures: + - amd64 + - arm64 diff --git a/tinyauth/logo.png b/tinyauth/logo.png new file mode 100644 index 000000000..32a0d2b26 Binary files /dev/null and b/tinyauth/logo.png differ