docker部署 outline(栗子云笔记)

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!

四、访问与验证

  1. 打开浏览器,访问 .env 中配置的 URL(如 http://服务器IP:3000)。
  2. 使用上述初始化的邮箱和密码登录。
  3. 登录后可创建团队、文档,测试上传文件/图片功能。

五、常见问题解决

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

扩展优化(可选)

  1. HTTPS 配置:推荐使用 Nginx 反向代理 + Let's Encrypt 配置 HTTPS。
  2. 数据备份:定时备份 PostgreSQL 数据卷和本地文件目录。
  3. 扩容:生产环境可将 PostgreSQL/Redis 改为外部独立部署,提高稳定性。
相关推荐
箓维36 分钟前
TCP Socket的进阶实现
网络·笔记·tcp/ip
二哈赛车手40 分钟前
新人笔记---hermes定时功能设计,具体讲解以及可优化点
java·人工智能·笔记·spring·ai·typescript
是枚小菜鸡儿吖44 分钟前
Home Assistant跨品牌智能家居教程:Docker部署、米家接入、vivo桥接与远程访问
docker·容器·智能家居
星恒随风2 小时前
Linux网络编程:应用层协议究竟是什么?从网络计算器到TCP Socket抽象基类完整实现
linux·网络·笔记·tcp/ip
智学AI3 小时前
AI博主写作素材管理方法分享:资料归集、笔记关联与文档归档
人工智能·笔记
螺蛳粉 螺蛳粉3 小时前
第 02 篇:镜像分层与 containerd 2.x 实战:SystemdCgroup 与 pause 镜像配置踩坑(底座认知 02)
docker·云原生·容器·kubernetes·etcd·containerd·kube-apiserver
叼烟扛炮4 小时前
[LangChain] 学习笔记(02):LCEL 链式调用与动态模型配置实战
服务器·开发语言·网络·笔记·学习·langchain
weixin_448119944 小时前
Datawhale Jev Cookbook 202610 笔记5
笔记
wefg14 小时前
【Docker】镜像相关指令
运维·docker·容器
一木 之林4 小时前
Dify学习笔记 04 · 检索底座:Embedding、Rerank与向量数据库(第46-54集)
笔记·学习·embedding·dify