Docker 部署 Outline 知识库详细教程
Outline 是一款开源的知识库/文档协作工具,支持私有化部署,基于 Docker Compose 部署是最便捷的方式。以下是完整的部署步骤,包含环境准备、配置修改、启动服务及访问验证。
一、环境准备
1. 基础依赖安装
确保服务器已安装 Docker 和 Docker Compose(推荐 Docker Compose V2):
bash
# 安装 Docker(以 Ubuntu 为例,其他系统参考官方文档)
curl -fsSL https://get.docker.com | sh
# 安装 Docker Compose V2
sudo apt-get install docker-compose-plugin
# 验证安装
docker --version
docker compose version
2. 克隆 Outline 官方部署仓库
bash
# 克隆仓库(包含 docker-compose.yml 和配置模板)
git clone https://github.com/outline/outline.git
cd outline/docker
二、配置修改(核心步骤)
Outline 依赖 PostgreSQL (数据库)、Redis (缓存)、S3/对象存储 (文件/图片存储)、SMTP(邮件),需修改配置文件适配自身环境。
1. 复制并编辑环境变量文件
bash
# 复制模板为 .env(关键配置文件)
cp .env.example .env
# 编辑 .env 文件(推荐用 vim/nano)
vim .env
2. 核心配置项说明(必改)
| 配置项 | 说明 | 示例值 |
|---|---|---|
SECRET_KEY |
随机密钥(生成方式:openssl rand -hex 32) |
a1b2c3d4e5f67890abcdef1234567890 |
UTILS_SECRET |
工具密钥(同上,另生成一个) | 9876543210fedcba0987654321abcdef |
URL |
Outline 访问地址(需带 http/https,公网域名/服务器 IP) | https://outline.example.com |
DATABASE_URL |
PostgreSQL 连接地址(默认无需改,Docker Compose 已内置) | postgres://user:pass@postgres:5432/outline |
REDIS_URL |
Redis 连接地址(默认无需改) | redis://redis:6379 |
SMTP_HOST |
SMTP 服务器地址(如阿里云邮箱、QQ 邮箱) | smtp.aliyun.com |
SMTP_PORT |
SMTP 端口(阿里云 465,QQ 邮箱 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(本地测试可改用 LOCAL_FILE_STORAGE) | 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,改用本地文件存储:
bash
# 在 .env 中添加以下配置,覆盖 S3 相关
LOCAL_FILE_STORAGE=true
FILE_STORAGE_ROOT=/var/lib/outline/files
三、启动服务
1. 启动 Docker Compose 服务
bash
# 后台启动所有服务(PostgreSQL/Redis/Outline)
docker compose up -d
# 查看服务状态
docker compose ps
# 查看日志(排查问题用)
docker compose logs -f outline
2. 初始化管理员账号
bash
# 进入 Outline 容器
docker compose exec outline sh
# 执行初始化命令(替换邮箱和密码)
yarn db:seed --email admin@example.com --password Admin123!
四、访问与验证
- 打开浏览器,访问
.env中配置的URL(如http://服务器IP:3000)。 - 使用上述初始化的邮箱和密码登录。
- 登录后可创建团队、文档,测试上传文件/图片功能。
五、常见问题解决
1. 端口冲突
默认 Outline 占用 3000 端口,PostgreSQL 占用 5432 端口,如需修改:
bash
# 编辑 docker-compose.yml,修改端口映射
services:
outline:
ports:
- "8080:3000" # 改为 8080 端口访问
2. 邮件发送失败
- 检查 SMTP 配置(端口、加密方式、授权码是否正确)。
- 确保服务器防火墙放行 SMTP 端口(如 465/587)。
- 查看 Outline 日志:
docker compose logs -f outline。
3. 数据持久化
默认数据存储在 Docker 卷中,如需备份:
bash
# 备份 PostgreSQL 数据
docker compose exec postgres pg_dump -U user outline > outline_backup.sql
# 备份本地文件(如配置了 LOCAL_FILE_STORAGE)
docker cp outline:/var/lib/outline/files ./outline_files_backup
六、停止/卸载
bash
# 停止服务
docker compose down
# 停止并删除数据卷(谨慎,会清空数据库)
docker compose down -v
# 删除镜像(可选)
docker rmi outlineoutline/outline postgres redis
扩展优化(可选)
- HTTPS 配置:推荐使用 Nginx 反向代理 + Let's Encrypt 配置 HTTPS。
- 数据备份:定时备份 PostgreSQL 数据卷和本地文件目录。
- 扩容:生产环境可将 PostgreSQL/Redis 改为外部独立部署,提高稳定性。