From 3ded0f69b382d35ac688f0f86c52e1874a9b3dc7 Mon Sep 17 00:00:00 2001 From: pooneyy <85266337+pooneyy@users.noreply.github.com> Date: Mon, 5 Jan 2026 01:02:10 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(authentik):=20add=20authentik?= =?UTF-8?q?=20version=202025.10.3=20application=20package?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/authentik/2025.10.3/data.yml | 127 ++++++++++++++++++++ apps/authentik/2025.10.3/docker-compose.yml | 42 +++++++ apps/authentik/README.md | 32 +++++ apps/authentik/README_en.md | 32 +++++ apps/authentik/data.yml | 31 +++++ apps/authentik/logo.png | Bin 0 -> 3900 bytes 6 files changed, 264 insertions(+) create mode 100644 apps/authentik/2025.10.3/data.yml create mode 100644 apps/authentik/2025.10.3/docker-compose.yml create mode 100644 apps/authentik/README.md create mode 100644 apps/authentik/README_en.md create mode 100644 apps/authentik/data.yml create mode 100644 apps/authentik/logo.png diff --git a/apps/authentik/2025.10.3/data.yml b/apps/authentik/2025.10.3/data.yml new file mode 100644 index 000000000..20df3e011 --- /dev/null +++ b/apps/authentik/2025.10.3/data.yml @@ -0,0 +1,127 @@ +additionalProperties: + formFields: + - default: 8080 + envKey: PANEL_APP_PORT_HTTP + labelZh: HTTP 端口 + labelEn: HTTP Port + label: + zh: HTTP 端口 + zh-Hant: HTTP 連接埠 + en: HTTP Port + ja: HTTP ポート + ko: HTTP 포트 + ms: Port HTTP + pt-br: Porta HTTP + ru: HTTP Порт + tr: HTTP Portu + description: + zh: "设置应用的 HTTP 访问端口,有效范围: 1-65535" + zh-Hant: "設定應用程式的 HTTP 存取連接埠,有效範圍: 1-65535" + en: "Set the HTTP access port for the application, valid range: 1-65535" + ja: "アプリケーションのHTTPアクセスポートを設定します。有効範囲: 1-65535" + ko: "애플리케이션의 HTTP 접근 포트를 설정합니다. 유효 범위: 1-65535" + ms: "Tetapkan port akses HTTP untuk aplikasi, julat sah: 1-65535" + pt-br: "Defina a porta de acesso HTTP para o aplicativo, intervalo válido: 1-65535" + ru: "Установите порт доступа HTTP для приложения, допустимый диапазон: 1-65535" + tr: "Uygulama için HTTP erişim portunu ayarlayın, geçerli aralık: 1-65535" + required: true + type: number + edit: true + rule: paramPort + - default: "" + envKey: PANEL_DB_HOST + labelZh: 数据库 + labelEn: Database + label: + en: Database + ja: データベース + ko: 데이터베이스 + ms: Pangkalan Data + pt-br: Banco de Dados + ru: База данных + tr: Veritabanı + zh: 数据库 + zh-Hant: 資料庫 + required: true + type: service + key: postgresql + - default: authentik + envKey: PANEL_DB_USER + labelZh: 数据库用户名 + labelEn: Database Username + label: + en: Database Username + ja: データベースユーザー名 + ko: 데이터베이스 사용자 이름 + ms: Nama Pengguna Pangkalan Data + pt-br: Nome de Usuário do Banco de Dados + ru: Имя пользователя базы данных + tr: Veritabanı Kullanıcı Adı + zh: 数据库用户名 + zh-Hant: 資料庫使用者名稱 + required: true + type: text + rule: paramCommon + random: true + - default: authentik_pwd + envKey: PANEL_DB_USER_PASSWORD + labelZh: 数据库密码 + labelEn: Database Password + label: + en: Database Password + ja: データベースパスワード + ko: 데이터베이스 비밀번호 + ms: Kata Laluan Pangkalan Data + pt-br: Senha do Banco de Dados + ru: Пароль базы данных + tr: Veritabanı Parolası + zh: 数据库密码 + zh-Hant: 資料庫密碼 + required: true + type: password + rule: paramComplexity + random: true + - default: authentik + envKey: PANEL_DB_NAME + labelZh: 数据库名 + labelEn: Database Name + label: + en: Database Name + ja: データベース名 + ko: 데이터베이스 이름 + ms: Nama Pangkalan Data + pt-br: Nome do Banco de Dados + ru: Имя базы данных + tr: Veritabanı Adı + zh: 数据库名 + zh-Hant: 資料庫名稱 + required: true + type: text + rule: paramCommon + random: true + - default: "" + envKey: AUTHENTIK_SECRET_KEY + labelZh: Cookie 签名密钥 + labelEn: Cookie Signing Key + label: + zh: Cookie 签名密钥 + zh-Hant: Cookie 簽署金鑰 + en: Cookie Signing Key + ja: Cookie 署名キー + ko: 쿠키 서명 키 + ms: Kunci Penandatanganan Cookie + pt-br: Chave de Assinatura de Cookie + ru: Ключ подписи Cookie + tr: Çerez İmzalama Anahtarı + description: + zh: 使用 "openssl rand -base64 48" 创建密钥 + zh-Hant: 使用 "openssl rand -base64 48" 建立金鑰 + en: Use "openssl rand -base64 48" to create the key + ja: '"openssl rand -base64 48" を使用してキーを作成' + ko: '"openssl rand -base64 48"를 사용하여 키 생성' + ms: Gunakan "openssl rand -base64 48" untuk mencipta kunci + pt-br: Use "openssl rand -base64 48" para criar a chave + ru: Используйте "openssl rand -base64 48" для создания ключа + tr: Anahtarı oluşturmak için "openssl rand -base64 48" kullanın + required: true + type: text diff --git a/apps/authentik/2025.10.3/docker-compose.yml b/apps/authentik/2025.10.3/docker-compose.yml new file mode 100644 index 000000000..49b17a81a --- /dev/null +++ b/apps/authentik/2025.10.3/docker-compose.yml @@ -0,0 +1,42 @@ +x-authentik-envs: &a1 + AUTHENTIK_POSTGRESQL__HOST: ${PANEL_DB_HOST} + AUTHENTIK_POSTGRESQL__PORT: ${PANEL_DB_PORT} + AUTHENTIK_POSTGRESQL__NAME: ${PANEL_DB_NAME} + AUTHENTIK_POSTGRESQL__PASSWORD: ${PANEL_DB_USER_PASSWORD} + AUTHENTIK_POSTGRESQL__USER: ${PANEL_DB_USER} + AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY} +services: + server: + image: ghcr.io/goauthentik/server:2025.10.3 + command: server + environment: *a1 + ports: + - ${PANEL_APP_PORT_HTTP}:9000 + volumes: + - ./geoip:/geoip + - ./media:/media + - ./custom-templates:/templates + container_name: ${CONTAINER_NAME} + networks: + - 1panel-network + labels: + createdBy: Apps + worker: + image: ghcr.io/goauthentik/server:2025.10.3 + command: worker + user: root + environment: *a1 + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./geoip:/geoip + - ./media:/media + - ./certs:/certs + - ./custom-templates:/templates + container_name: ${CONTAINER_NAME}-worker + networks: + - 1panel-network + labels: + createdBy: Apps +networks: + 1panel-network: + external: true diff --git a/apps/authentik/README.md b/apps/authentik/README.md new file mode 100644 index 000000000..f36878535 --- /dev/null +++ b/apps/authentik/README.md @@ -0,0 +1,32 @@ +## 产品介绍 + +authentik 是一款面向现代单点登录 (SSO) 的开源身份提供商 (IdP)。 + +## 配置和使用说明 + +1. 要开始初始设置,请导航到 `http://:port/if/flow/initial-setup/` 。 + + > 您如果在初始设置 URL 中不包括末尾的反斜杠 Not Found ,将会收到一个 / 错误。请确保您使用包括末尾反斜杠的完整 URL `http://:port/if/flow/initial-setup/` 。 + +2. 安装应用后,可以编辑 `docker-compose.yml` 添加其它环境变量。环境变量参考[文档](https://docs.goauthentik.io/install-config/configuration/)。 + + 示例 + ```yaml + x-authentik-envs: &a1 + # Reference https://docs.goauthentik.io/install-config/configuration/ + # SMTP Host Emails are sent to + AUTHENTIK_EMAIL__HOST: localhost + AUTHENTIK_EMAIL__PORT: 25 + # Optionally authenticate (don't add quotation marks to your password) + AUTHENTIK_EMAIL__USERNAME: + AUTHENTIK_EMAIL__PASSWORD: + # Use StartTLS + AUTHENTIK_EMAIL__USE_TLS: false + # Use SSL + AUTHENTIK_EMAIL__USE_SSL: false + AUTHENTIK_EMAIL__TIMEOUT: 10 + # Email address authentik will send from, should have a correct @domain + AUTHENTIK_EMAIL__FROM: authentik@localhost + ``` + +3. 安装应用后,可将 `GeoLite2-City.mmdb` 与 `GeoLite2-ASN.mmdb` 拷贝到 `geoip` 目录下以启用[GeoIP](https://support.maxmind.com/knowledge-base/articles/create-a-maxmind-account) 支持。 \ No newline at end of file diff --git a/apps/authentik/README_en.md b/apps/authentik/README_en.md new file mode 100644 index 000000000..f46c21cdd --- /dev/null +++ b/apps/authentik/README_en.md @@ -0,0 +1,32 @@ +## Introduction + +authentik is an open-source Identity Provider (IdP) for modern SSO. + +## Configuration and Usage Instructions + +1. To start the initial setup, navigate to `http://:port/if/flow/initial-setup/` + + > You will get a Not Found error if initial setup URL doesn't include the trailing forward slash /. Make sure you use the complete url (http://:port/if/flow/initial-setup/) including the trailing forward slash. + +2. After installing the application, you can edit `docker-compose.yml` to add other environment variables. Refer to the [documentation](https://docs.goauthentik.io/install-config/configuration/) for environment variables. + + For example + ```yaml + x-authentik-envs: &a1 + # Reference https://docs.goauthentik.io/install-config/configuration/ + # SMTP Host Emails are sent to + AUTHENTIK_EMAIL__HOST: localhost + AUTHENTIK_EMAIL__PORT: 25 + # Optionally authenticate (don't add quotation marks to your password) + AUTHENTIK_EMAIL__USERNAME: + AUTHENTIK_EMAIL__PASSWORD: + # Use StartTLS + AUTHENTIK_EMAIL__USE_TLS: false + # Use SSL + AUTHENTIK_EMAIL__USE_SSL: false + AUTHENTIK_EMAIL__TIMEOUT: 10 + # Email address authentik will send from, should have a correct @domain + AUTHENTIK_EMAIL__FROM: authentik@localhost + ``` + +3. After installing the application, copy `GeoLite2-City.mmdb` and `GeoLite2-ASN.mmdb` to the `geoip` directory to enable [GeoIP](https://support.maxmind.com/knowledge-base/articles/create-a-maxmind-account) support. \ No newline at end of file diff --git a/apps/authentik/data.yml b/apps/authentik/data.yml new file mode 100644 index 000000000..3348d86b0 --- /dev/null +++ b/apps/authentik/data.yml @@ -0,0 +1,31 @@ +name: authentik +tags: + - 实用工具 +title: 单点登录开源身份提供商 +description: 单点登录开源身份提供商 +additionalProperties: + key: authentik + name: authentik + tags: + - Tool + shortDescZh: 单点登录开源身份提供商 + shortDescEn: Open-source Identity Provider for modern SSO + description: + en: Open-source Identity Provider for modern SSO + zh: 单点登录开源身份提供商 + zh-Hant: 單點登入開源身份提供者 + ja: モダンなシングルサインオンのためのオープンソース Identity Provider + ms: Penyedia Identiti Sumber Terbuka untuk SSO moden + pt-br: Provedor de Identidade de Código Aberto para SSO moderno + ru: Провайдер идентификации с открытым исходным кодом для современного единого входа + ko: 현대식 SSO를 위한 오픈소스 Identity Provider + type: website + crossVersionUpdate: true + limit: 0 + website: https://goauthentik.io + github: https://github.com/goauthentik/authentik + document: https://docs.goauthentik.io + memoryRequired: 2048 + architectures: + - amd64 + - arm64 diff --git a/apps/authentik/logo.png b/apps/authentik/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..acaf9071f6b06af10e035dda5e54c12bf2e27caa GIT binary patch literal 3900 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