Outline 是一款开源的知识库和文档协作工具,支持私有化部署。使用 Docker Compose 进行部署是最便捷的方式之一,能够快速搭建包含数据库、缓存和存储的完整环境。本文将逐步引导您完成从环境准备到访问验证的全过程。

一、环境准备
1. 基础依赖安装
确保服务器已安装 Docker 和 Docker Compose(推荐使用 Docker Compose V2)。以下以 Ubuntu 系统为例:
# 安装 Docker
curl -fsSL https://get.docker.com | sh
# 安装 Docker Compose V2
sudo apt-get install docker-compose-plugin
# 验证安装
docker --version
docker compose version
2. 克隆 Outline 官方部署仓库
Outline 提供了官方 Docker 部署仓库,包含必要的配置模板:
# 克隆仓库
git clone https://github.com/outline/outline.git
cd outline/docker
二、配置修改(核心步骤)
Outline 依赖多个外部服务:PostgreSQL 作为数据库、Redis 作为缓存、S3 兼容对象存储用于文件存储、以及 SMTP 服务用于邮件通知。您需要根据自身环境调整配置。
1. 复制并编辑环境变量文件
# 复制配置模板
cp .env.example .env
# 编辑 .env 文件
vim .env
2. 核心配置项说明(必改)
以下为关键配置项及其说明:
| 配置项 |
说明 |
示例值 |
SECRET_KEY |
随机密钥,用于应用加密(生成命令:openssl rand -hex 32) |
a1b2c3d4e5f67890abcdef1234567890 |
UTILS_SECRET |
工具密钥,需另外生成一个随机字符串 |
9876543210fedcba0987654321abcdef |
URL |
Outline 访问地址,需包含协议(http/https) |
https://outline.example.com |
DATABASE_URL |
PostgreSQL 连接地址,默认使用 Docker Compose 内置服务 |
postgres://user:pass@postgres:5432/outline |
REDIS_URL |
Redis 连接地址,默认使用内置服务 |
redis://redis:6379 |
SMTP_HOST |
SMTP 服务器地址 |
smtp.aliyun.com |
SMTP_PORT |
SMTP 端口(如 465 或 587) |
465 |
SMTP_USERNAME |
SMTP 账号 |
admin@example.com |
SMTP_PASSWORD |
SMTP 密码或授权码 |
your_smtp_password |
SMTP_FROM_EMAIL |
发件人邮箱,应与 SMTP 账号一致 |
admin@example.com |
SMTP_FROM_NAME |
发件人名称 |
Outline |
SMTP_SECURE |
是否启用加密(465 端口设为 true,587 设为 false) |
true |
AWS_ACCESS_KEY_ID |
S3 兼容存储的 AccessKey |
your_access_key |
AWS_SECRET_ACCESS_KEY |
S3 兼容存储的 SecretKey |
your_secret_key |
AWS_REGION |
S3 地域 |
us-east-1 |
AWS_S3_BUCKET |
S3 存储桶名称 |
outline-bucket |
3. 简化配置(本地测试/无 S3 时)
如果仅用于测试或没有 S3 存储,可以改用本地文件存储。在 .env 文件中添加以下配置:
LOCAL_FILE_STORAGE=true
FILE_STORAGE_ROOT=/var/lib/outline/files
三、启动服务
1. 启动 Docker Compose 服务
# 后台启动所有服务(包括 PostgreSQL、Redis 和 Outline)
docker compose up -d
# 查看服务状态
docker compose ps
# 查看 Outline 容器日志(用于排查问题)
docker compose logs -f outline
2. 初始化管理员账号
# 进入 Outline 容器
docker compose exec outline sh
# 执行初始化命令,替换为您的邮箱和密码
yarn db:seed --email admin@example.com --password Admin123!
四、访问与验证
- 打开浏览器,访问
.env 文件中配置的 URL(例如 http://服务器IP:3000)。
- 使用上一步初始化的邮箱和密码登录。
- 登录后即可创建团队、编写文档,并测试文件上传功能。
五、常见问题解决
1. 端口冲突
默认 Outline 服务映射到主机的 3000 端口。如果需要修改,编辑 docker-compose.yml 文件:
services:
outline:
ports:
- "8080:3000" # 将主机端口改为 8080
2. 邮件发送失败
- 检查 SMTP 配置是否正确,包括端口、加密方式及授权码。
- 确保服务器防火墙放行了 SMTP 端口(如 465 或 587)。
- 查看 Outline 容器日志以获取详细错误信息:
docker compose logs -f outline。
3. 数据持久化
默认数据存储在 Docker 卷中。如需备份:
# 备份 PostgreSQL 数据库
docker compose exec postgres pg_dump -U user outline > outline_backup.sql
# 如果使用了本地文件存储,备份文件目录
docker cp outline:/var/lib/outline/files ./outline_files_backup
六、停止与卸载
# 停止服务但保留数据卷
docker compose down
# 停止服务并删除数据卷(谨慎操作,会清空数据库)
docker compose down -v
# 可选:删除相关镜像
docker rmi outlineoutline/outline postgres redis
扩展优化(可选)
- HTTPS 配置:生产环境建议使用 Nginx 反向代理配合 Let's Encrypt 配置 HTTPS,提升安全性。
- 数据备份:设置定时任务,定期备份 PostgreSQL 数据和本地文件目录。
- 服务扩容:对于生产环境,可以考虑将 PostgreSQL 和 Redis 改为外部独立部署,以提高稳定性和性能。
通过以上步骤,您可以快速完成 Outline 知识库的 Docker 化部署,并根据需求灵活调整配置。