Passwordless.dev 文档
⮐ Passwordless.dev Documentation我的博客联系我
  • 关于
  • 首页
  • 关于 Passwordless.dev
  • 发行说明
  • 开始使用
  • 后端 API 参考
  • Open API
  • 后端
    • .NET
    • Java
    • Node.js
    • PHP
    • Python 2
    • Python 3+
    • 创建 SDK
  • 前端
    • JavaScript
    • Android
      • 故障排除
    • iOS
    • ASP.NET
    • React
  • 自托管
    • 配置
    • 本地运行
    • 健康检查
    • 高级
  • 错误
  • 管理控制台
    • 应用程序
    • 计费
    • 管理员
  • 概念
由 GitBook 提供支持
在本页
  • 端口
  • 卷
  • 数据库
  • Sqlite
  • Microsoft SQL Server
  • 环境变量
  • E-mail
  • JSON
  • 环境变量
  • config.json
  1. 自托管

配置

对应的官方页面地址

端口

容器将暴露端口 5701。您可以将它映射到主机上的任何端口。

AdminConsole 和 Api 都将使用端口 5000 和 5001 进行内部通信。默认情况下,网络流量不会离开容器。

卷

您可能需要为正在运行的 Docker 容器挂载持久化存储。确保映射容器的路径 /etc/bitwarden_passwordless 非常重要。这样,您就可以确信您的设置和 Sqlite 数据库(假设您没有使用其他数据库),在更新、迁移等过程中保持持久化。

挂载持久化存储失败,将会:

  • 如果您依赖于 /etc/bitwarden_passwordless/config.json ,将会导致配置丢失。

  • 仅当使用 Sqlite 时,才会导致数据丢失。

$ docker run -d \
  --name passwordless \
  --mount source=/your/persistent/storage,target=/etc/bitwarden_passwordless \
  bitwarden/passwordless-self-host:stable

数据库

Sqlite

默认情况下,如果未指定其他数据库,容器将使用 Sqlite。数据将存储在以下位置:

  • /etc/bitwarden_passwordless/api.db

  • /etc/bitwarden_passwordless/admin.db

Microsoft SQL Server

键
默认值
必需
描述

BWP_DB_PROVIDER

Y

[sqlserver/mssql] 两个值都允许您使用 Microsoft SQL Server。

BWP_DB_SERVER

Y

主机名,例如 'localhost' 或 'db.example.com'。

BWP_DB_PORT

1433

N

[0-65536]

BWP_DB_DATABASE_API

Api

N

'Api' 应用程序在 Microsoft SQL Server 实例上的数据库名称。

BWP_DB_DATABASE_ADMIN

Admin

N

'Admin Console' 应用程序在 Microsoft SQL Server 实例上的数据库名称。

BWP_DB_USERNAME

sa

N

BWP_DB_PASSWORD

Y

环境变量

键
默认值
必需
描述

BWP_ENABLE_SSL

false

N

[true/false] 查看以下的警告。

BWP_PORT

5701

N

[0-65536] 如果您不使用反向代理,则必须设置。

BWP_DOMAIN

localhost

N

[example.com] 此将是您自托管实例可访问的域名。它必须匹配才能正确工作这个

BWP_DB_PROVIDER

N

[mssql/sqlserver/] 如果未设置默认使用 Sqlite。

BWP_DB_SERVER

N

对于任何非文件托管数据库,请输入其域名。对于 Microsoft SQL Server 是必需的。

BWP_DB_PORT

N

[0-65536] 对于任何非文件托管数据库,请输入端口号。对于 Microsoft SQL Server 是必需的。

BWP_DB_DATABASE_API

N

API 的数据库名称。对于 Microsoft SQL Server 是必需的。

BWP_DB_DATABASE_ADMIN

N

管理控制台的数据库名称。对于 Microsoft SQL Server 是必需的。

BWP_DB_USERNAME

N

连接到数据库的用户名。对于 Microsoft SQL Server 是必需的。

BWP_DB_PASSWORD

N

数据库连接用户的密码。对于 Microsoft SQL Server 是必需的。中是必需的。

在不安全的环境中,使用 BWP_ENABLE_SSL 设置 SSL 是必需的。在 'localhost' 上本地运行容器被视为是安全环境。

如果您正在使用负载均衡器或反向代理,您可以将其设置为 false,并在那里处理 SSL 终止。

在此处阅读 'WebAuthn' 规范:查看规范。

E-mail

电子邮件由无密码管理控制台用于通知管理员其组织中的更改。这特别适用于在首次注册时验证管理员。

默认情况下,所有电子邮件通信都写入以下文件:

  • /app/mail.md

使用默认配置时,以下命令将输出文件内容。

docker exec -it {name-of-container} cat /app/mail.md

JSON

参考:ASP.NET Core 中的配置

重要的是按照以下方式配置 'Mail__From'。这是为了有一个备用的电子邮件地址来发送电子邮件。在 'Mail__Providers' 中有一个数组,它是一个按顺序排列的电子邮件提供程序列表,如果它们失败,我们将按顺序尝试执行。要配置电子邮件提供程序,请参阅下面的子部分。

"Mail": {
  "From": "johndoe@example.com",
  "Providers": [
    {
      // Provider 1
    },
    {
      // Provider 2
    },
    {
      ...
    }
  ]
},

AWS

{
  "Name": "aws",
  "AccessKey": "aws_access_key_id",
  "SecretKey": "aws_secret_key",
  "Region": "us-west-2"
}

File

{
  "Name": "file",
  "Path": "/path/on/your/machine" //(optional)
}

SendGrid

{
  "Name": "sendgrid",
  "ApiKey": "sendgrid_api_key"
}

SMTP

{
  "Name": "smtp",
  "Host": "smtp.example.com",
  "Port": 123,
  "Username": "johndoe",
  "Password": "YourPassword123!",
  "StartTls": true/false,
  "Ssl": true/false,
  "SslOverride": true/false,
  "TrustServer": true/false // skips SSL certificate validation when set to `true`.
}

使用 SendGrid 的示例:

{
  "Name": "smtp",
  "Host": "smtp.sendgrid.net",
  "Port": 465,
  "Username": "apikey",
  "Password": "<your-sendgrid-api-key>",
  "StartTls": false,
  "Ssl": true,
  "SslOverride": false,
  "TrustServer": true
}

环境变量

参考:ASP.NET Core 中的配置

重要的是按照以下方式配置 'Mail__From'。这是为了有一个备用的电子邮件地址来发送电子邮件。在 'Mail__Providers' 中有一个数组,它是一个按顺序排列的电子邮件提供程序列表,如果它们失败,我们将按顺序尝试执行。要配置电子邮件提供程序,请参阅下面的子部分。

数组从零开始,因此我们配置 AWS 作为首先尝试发送电子邮件的选项,如果失败,我们将回退到 SendGrid。

-e Mail__From='johndoe@example.com'
-e Mail__FromName='John Doe'
-e Mail__Providers__0__Name='aws'
-e Mail__Providers__0__AccessKey='aws_access_key_id'
-e Mail__Providers__0__SecretKey='aws_secret_key'
-e Mail__Providers__1__Name='sendgrid'
-e Mail__Providers__1__ApiKey='sendgrid_api_key'

在下面的供应程序特定示例中,我们始终使用 '#' 作为提供程序索引。

AWS

-e Mail__Providers__#__Name='aws'
-e Mail__Providers__#__AccessKey='aws_access_key_id'
-e Mail__Providers__#__SecretKey='aws_secret_key'
-e Mail__Providers__#__Region='us-west-2'

File

-e Mail__Providers__#__Name='file'
-e Mail__Providers__#__Path='/path/on/your/machine' #(optional)

SendGrid

-e Mail__Providers__#__Name='sendgrid'
-e Mail__Providers__#__ApiKey='sendgrid_api_key'

SMTP

-e Mail__Providers__#__Name='smtp'
-e Mail__Providers__#__Host='smtp.example.com'
-e Mail__Providers__#__Port=123
-e Mail__Providers__#__Username='johndoe'
-e Mail__Providers__#__Password='YourPassword123!'
-e Mail__Providers__#__StartTls=true/false
-e Mail__Providers__#__Ssl=true/false
-e Mail__Providers__#__SslOverride=true/false
-e Mail__Providers__#__TrustServer=true/false # skips SSL certificate validation when set to `true`.

示例使用 SendGrid:

-e Mail__Providers__#__Name='smtp'
-e Mail__Providers__#__Host='smtp.sendgrid.net'
-e Mail__Providers__#__Port=465
-e Mail__Providers__#__Username='apikey'
-e Mail__Providers__#__Password='<your-sendgrid-api-key>'
-e Mail__Providers__#__StartTls=false
-e Mail__Providers__#__Ssl=true
-e Mail__Providers__#__SslOverride=false
-e Mail__Providers__#__TrustServer=true

config.json

要求:

  • 持久化存储,请参阅 “卷”。

/etc/bitwarden_passwordless/config.json 仅在您未指定以下环境变量时生成:

如果您将 /etc/bitwarden_passwordless 挂载到您的宿主机上。您可以为 config.json 指定配置。

如果以下键不存在,它们将被自动生成:

  • Passwordless::ApiKey

  • Passwordless::ApiSecret

  • PasswordlessManagement::ManagementKey

  • SALT_KEY

建议您在第一次运行 bitwarden/passwordless-self-host 时自动生成它们。

上一页自托管下一页本地运行

最后更新于2个月前