Outline Wiki 知识库搭建教程
Outline 是一款美观、快速的开源团队知识库和 Wiki 平台。它提供了直观的 Markdown 编辑器、强大的搜索功能、灵活的权限管理和实时协作能力。Outline 的界面设计简洁现代,使用体验接近 Notion 和 Confluence 等商业产品。本文将介绍如何在搬瓦工 VPS 上使用 Docker 部署 Outline。部署前请确保已安装好 Docker 和 Docker Compose。
一、系统要求
- 操作系统:Ubuntu 20.04+ 或 Debian 11+。
- 内存:至少 1GB,建议 2GB 以上。
- 磁盘:至少 10GB 可用空间。
- 域名:必须绑定域名和 SSL(Outline 需要 HTTPS)。
- 认证服务:Outline 不支持本地用户密码登录,必须配置 SSO(如 OIDC)。
二、部署前准备
Outline 需要以下外部服务:
- SSO 认证:可以使用 Keycloak、Authentik 或其他 OIDC 提供者。这里使用 Docker 自带的简易方案。
- S3 兼容存储:用于存储上传的图片和附件。可以使用 MinIO 自托管。
三、Docker Compose 部署
mkdir -p /opt/outline
cd /opt/outline
cat > /opt/outline/docker-compose.yml <<'EOF'
version: '3.8'
services:
postgres:
image: postgres:15-alpine
restart: always
environment:
POSTGRES_DB: outline
POSTGRES_USER: outline
POSTGRES_PASSWORD: your_db_password
volumes:
- postgres_data:/var/lib/postgresql/data
redis:
image: redis:7-alpine
restart: always
minio:
image: minio/minio:latest
restart: always
ports:
- "9000:9000"
- "9001:9001"
environment:
MINIO_ROOT_USER: outline_minio
MINIO_ROOT_PASSWORD: your_minio_password
volumes:
- minio_data:/data
command: server /data --console-address ":9001"
outline:
image: outlinewiki/outline:latest
restart: always
depends_on:
- postgres
- redis
- minio
ports:
- "3000:3000"
environment:
NODE_ENV: production
SECRET_KEY: your_secret_key_hex_32
UTILS_SECRET: your_utils_secret_hex_32
DATABASE_URL: postgres://outline:your_db_password@postgres:5432/outline
REDIS_URL: redis://redis:6379
URL: https://wiki.yourdomain.com
PORT: 3000
FILE_STORAGE: s3
AWS_ACCESS_KEY_ID: outline_minio
AWS_SECRET_ACCESS_KEY: your_minio_password
AWS_REGION: us-east-1
AWS_S3_UPLOAD_BUCKET_NAME: outline
AWS_S3_UPLOAD_BUCKET_URL: https://minio.yourdomain.com
AWS_S3_FORCE_PATH_STYLE: "true"
AWS_S3_ACL: private
OIDC_CLIENT_ID: your_oidc_client_id
OIDC_CLIENT_SECRET: your_oidc_client_secret
OIDC_AUTH_URI: https://auth.yourdomain.com/authorize
OIDC_TOKEN_URI: https://auth.yourdomain.com/token
OIDC_USERINFO_URI: https://auth.yourdomain.com/userinfo
OIDC_DISPLAY_NAME: SSO Login
FORCE_HTTPS: "true"
DEFAULT_LANGUAGE: zh_CN
volumes:
postgres_data:
minio_data:
EOF
生成必要的密钥:
openssl rand -hex 32 # SECRET_KEY
openssl rand -hex 32 # UTILS_SECRET
四、初始化 MinIO 存储桶
启动服务后,需要在 MinIO 中创建存储桶:
docker compose up -d minio
# 使用 MinIO Client 创建存储桶
docker run --rm --network outline_default \
minio/mc alias set myminio http://minio:9000 outline_minio your_minio_password
docker run --rm --network outline_default \
minio/mc mb myminio/outline
docker run --rm --network outline_default \
minio/mc anonymous set download myminio/outline
五、启动 Outline
cd /opt/outline
docker compose up -d
首次启动会自动创建数据库表。查看日志确认启动成功:
docker compose logs -f outline
六、配置 Nginx 反向代理
cat > /etc/nginx/sites-available/outline <<'EOF'
server {
listen 80;
server_name wiki.yourdomain.com;
client_max_body_size 50M;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
EOF
ln -s /etc/nginx/sites-available/outline /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d wiki.yourdomain.com
七、使用 Outline
通过 SSO 登录后,Outline 提供以下核心功能:
- 集合:类似文件夹,用于组织相关文档。
- 文档编辑:所见即所得的 Markdown 编辑器,支持斜杠命令、图片嵌入、代码高亮等。
- 嵌套文档:文档可以有子文档,形成树形结构。
- 模板:创建文档模板,方便快速创建标准化文档。
- 全文搜索:快速搜索所有文档内容。
- 协作:支持多人同时编辑同一文档。
八、权限管理
Outline 提供灵活的权限控制:
- 团队级别:管理员、成员、访客三种角色。
- 集合级别:每个集合可以独立设置可见性和编辑权限。
- 文档级别:支持将单个文档共享给团队外部人员。
九、数据备份与导出
# 备份数据库
docker exec outline-postgres-1 pg_dump -U outline outline > /opt/outline/backup_$(date +%Y%m%d).sql
# Outline 还支持在管理面板中导出所有数据为 Markdown 文件
十、常见问题
无法登录
Outline 必须使用 SSO 登录,确保 OIDC 相关的环境变量配置正确。常见问题包括回调 URL 不匹配和证书问题。
图片上传失败
检查 MinIO 存储桶是否正确创建,以及 S3 相关的环境变量是否正确配置。确认 MinIO 的访问策略允许上传。
总结
Outline 是一款界面精美、功能强大的团队知识库平台。虽然初始配置相对复杂(需要 SSO 和 S3 存储),但一旦部署完成,使用体验非常出色。更多 Wiki 和文档管理工具部署教程请参考:Wiki.js 部署、BookStack 部署、Memos 笔记部署。选购搬瓦工 VPS 请参考全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的循环折扣。