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 改为外部独立部署,提高稳定性。
相关推荐
_Minato_2 小时前
数据库知识整理——数据库设计的步骤
数据库·经验分享·笔记·软考
hssfscv3 小时前
Mysql学习笔记——事务
笔记·学习·mysql
Jelly-小丑鱼3 小时前
Linux搭建syslog日志服务器
linux·服务器·docker·日志服务器·syslog服务器
charlie1145141913 小时前
现代C++工程实践:简单的IniParser3——改进我们的split
开发语言·c++·笔记·学习
没有bug.的程序员3 小时前
高频IO服务优化实战指南
java·jvm·spring·容器
lisanmengmeng4 小时前
docker 方式安装部署禅道zentao(五)
运维·docker·容器
思成不止于此4 小时前
【MySQL 零基础入门】MySQL 函数精讲(二):日期函数与流程控制函数篇
android·数据库·笔记·sql·学习·mysql
中屹指纹浏览器5 小时前
2025技术干货:国内静态 IP 搭配指纹浏览器的加密绑定与跨区域优化方案
经验分享·笔记
程序员老赵5 小时前
AdguardHome Docker 容器化部署指南
docker·dns