Docker 环境变量安装 Outline 并连接 PostgreSQL 数据库
编辑Outline 是一个开源的知识库和团队协作工具,功能强大且易于部署。本文将介绍通过 Docker 环境变量安装 Outline 并连接到 PostgreSQL 数据库的完整方法。
Outline 官网教程中建议通过 Docker Compose 部署,但这种方法对于部分系统不够友好。而使用 环境变量 配置数据库信息,则可在容器启动后灵活调整,方便运维管理。
前置条件
-
安装 Docker :请确保您的服务器上已经安装了 Docker。
-
准备 PostgreSQL 数据库:
-
数据库主机(
dbhost
) -
数据库端口(
dbport
,默认为5432
) -
数据库名称(
dbname
) -
数据库用户名(
dbusername
) -
数据库密码(
dbpassword
)
-
如果你还没有安装 PostgreSQL 数据库,那么试下:
使用 Docker 启动 Outline
运行以下命令以部署 Outline(修改其中必要的参数)
docker run -d \
--name outline \
-p 3000:3000 \
-e TZ=Asia/Shanghai \
-e NODE_ENV=production \
-e SECRET_KEY=$(openssl rand -hex 32) \
-e UTILS_SECRET=$(openssl rand -hex 32) \
-e DATABASE_URL=postgres://dbusername:dbpassword@dbhost:dbport/dbname \
-e DATABASE_CONNECTION_POOL_MIN=2 \
-e DATABASE_CONNECTION_POOL_MAX=10 \
-e REDIS_URL=redis://localhost:6379 \
-e URL=https://your.domain \
-e PORT=3000 \
-e FILE_STORAGE=s3 \
-e AWS_ACCESS_KEY_ID=your_aws_key \
-e AWS_SECRET_ACCESS_KEY=your_aws_secret \
-e AWS_REGION=your_aws_region \
-e AWS_S3_ACCELERATE_URL=https://s3.domain \
-e AWS_S3_UPLOAD_BUCKET_URL=https://s3.domain \
-e AWS_S3_UPLOAD_BUCKET_NAME=bucket_name_here \
-e AWS_S3_FORCE_PATH_STYLE=true \
-e AWS_S3_ACL=private \
-e OIDC_CLIENT_ID=your_google_client_id \
-e OIDC_CLIENT_SECRET=your_google_client_secret \
-e OIDC_AUTH_URI=https://accounts.google.com/o/oauth2/v2/auth \
-e OIDC_TOKEN_URI=https://oauth2.googleapis.com/token \
-e OIDC_USERINFO_URI=https://openidconnect.googleapis.com/v1/userinfo \
-e ENABLE_UPDATES=true \
-e SMTP_HOST=smtp.host \
-e SMTP_PORT=587 \
-e SMTP_USERNAME=smtp@username \
-e SMTP_PASSWORD=smtppassword \
-e SMTP_FROM_EMAIL=smtp@username \
-e SMTP_REPLY_EMAIL=your@mail \
-e SMTP_SECURE=true \
-e PUID=0 \
-e PGID=0 \
-e DEFAULT_LANGUAGE=zh_CN \
-v /opt/docker/outline/data:/var/lib/outline/data \
--restart unless-stopped \
outlinewiki/outline:latest
环境变量参数说明
基础配置
数据库配置
存储配置
Redis 配置
邮件配置
配置支持的认证方式
Outline 支持多种第三方认证方式,至少需要配置一种以下方式以实现用户登录。您可以根据需求选择合适的认证方式:
1. Google OAuth
需要在 Google Cloud Console 中创建 OAuth 客户端 ID。
-
创建地址:Google Cloud Console
-
配置重定向 URI:
https://<YOUR_DOMAIN>/auth/google.callback
环境变量(使用 OCID 形式):
-e OIDC_CLIENT_ID=your_google_client_id \
-e OIDC_CLIENT_SECRET=your_google_client_secret \
-e OIDC_AUTH_URI=https://accounts.google.com/o/oauth2/v2/auth \
-e OIDC_TOKEN_URI=https://oauth2.googleapis.com/token \
-e OIDC_USERINFO_URI=https://openidconnect.googleapis.com/v1/userinfo \
2. Slack
需要在 Slack API 中创建一个应用。
-
创建地址:Slack App Management
-
配置重定向 URI:
https://<YOUR_DOMAIN>/auth/slack.callback
环境变量:
-e SLACK_CLIENT_ID=your_slack_client_id \
-e SLACK_CLIENT_SECRET=your_slack_client_secret \
3. Microsoft Azure AD
需要在 Azure AD 中创建一个 OAuth 客户端。
-
配置指南:Azure AD 配置指南
环境变量:
-e AZURE_CLIENT_ID=your_azure_client_id \
-e AZURE_CLIENT_SECRET=your_azure_client_secret \
-e AZURE_RESOURCE_APP_ID=your_azure_resource_app_id \
4. OpenID Connect (OIDC)
支持通用 OIDC 身份提供商。
-
配置重定向 URI:
https://<YOUR_DOMAIN>/auth/oidc.callback
环境变量:
-e OIDC_CLIENT_ID=your_oidc_client_id \
-e OIDC_CLIENT_SECRET=your_oidc_client_secret \
-e OIDC_AUTH_URI=https://idp.example.com/auth \
-e OIDC_TOKEN_URI=https://idp.example.com/token \
-e OIDC_USERINFO_URI=https://idp.example.com/userinfo \
-e OIDC_LOGOUT_URI=https://idp.example.com/logout \
-e OIDC_USERNAME_CLAIM=preferred_username \
-e OIDC_DISPLAY_NAME=OpenID Connect \
-e OIDC_SCOPES="openid profile email" \
5. GitHub
需要在 GitHub 中创建一个 GitHub App。
-
配置重定向 URI:
https://<YOUR_DOMAIN>/api/github.callback
环境变量:
-e GITHUB_CLIENT_ID=your_github_client_id \
-e GITHUB_CLIENT_SECRET=your_github_client_secret \
-e GITHUB_APP_NAME=your_github_app_name \
-e GITHUB_APP_ID=your_github_app_id \
-e GITHUB_APP_PRIVATE_KEY=your_github_app_private_key \
6. Discord
需要在 Discord 开发者平台中创建应用。
-
配置重定向 URI:
https://<YOUR_DOMAIN>/auth/discord.callback
环境变量:
-e DISCORD_CLIENT_ID=your_discord_client_id \
-e DISCORD_CLIENT_SECRET=your_discord_client_secret \
-e DISCORD_SERVER_ID=your_discord_server_id \
-e DISCORD_SERVER_ROLES=comma_separated_role_ids \
小结
使用上述方法,您可以快速通过 Docker 部署 Outline,并通过环境变量灵活管理配置,创建一个强大、可扩展的知识管理平台。
- 0
- 0
-
分享