惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Jina AI
Jina AI
博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
J
Java Code Geeks
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
爱范儿
爱范儿
美团技术团队
腾讯CDC
博客园 - Franky
MyScale Blog
MyScale Blog
人人都是产品经理
人人都是产品经理
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
aimingoo的专栏
aimingoo的专栏
博客园_首页
V
V2EX
Martin Fowler
Martin Fowler
T
The Blog of Author Tim Ferriss

清心语轩

避坑雷柏机械键盘-V500PRO IPTV折腾记录-用OpenWRT拨号IPTV多终端观看直播 修复宝塔修改www目录到挂载盘的权限问题 0day之后的一些安全防范措施 1Panel搭建NextCloud私有云盘及同步盘 绿联NAS底层部署宝塔遇到的问题 做了个不大不小的鼻中隔矫正手术 优化RSS更新的微信通知功能 使用RSS订阅功能添加博友圈,并增加微信通知 国庆出游之自驾游广西东兴-万尾-北海 - 清心语轩
Docker部署Outline开源文档
上善若水 · 2026-03-25 · via 清心语轩

试用了多款开源笔记应用,Joplin、Notion、Outline、思源笔记,从中选中了Outline,主要是他的界面甚得我心。

Outline是一款团队知识库和文档工具,支持Markdown编辑器、团队协作、权限管理等功能,使用React和Node.js构建。

Outline官网:https://www.getoutline.com

项目地址:https://github.com/outline/outline

安装指南

Sep1:选择合适的数据库程序,推荐使用PostgreSQL,可以直接使用docker安装,也可以使用面板安装,方便管理,我是在1Panel应用商店安装的。

Sep2:创建数据表,数据表名和用户名都可以使用outline,密码可以使用自动生成的。

Sep3:安装Redis,可以Docker安装,也可以1Panel应用商店安装。

Sep4:Docker安装Outline

services:
  outline:
    image: outlinewiki/outline:latest
    container_name: Outline
    restart: unless-stopped
    ports:
      - "3000:3000"
    networks:
      - 1panel-network
    environment:
      # 基础配置
      NODE_ENV=production
      # 安全密钥
      SECRET_KEY=${SECRET_KEY} # 通过命令行(openssl rand -hex 32)生成
      UTILS_SECRET=${UTILS_SECRET} # 通过命令行(openssl rand -hex 32)生成
      # 数据库连接 - 容器间通信使用容器内端口 5432
      DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME}?sslmode=disable
      # Redis 连接 - 注意容器名是 Redis
      REDIS_URL=redis://Redis:6379
      # 设置 Redlock 重试次数为 0
      REDLOCK_RETRY_COUNT=0
      REDLOCK_RETRY_DELAY=0
      # 禁用协作功能
      ENABLE_COLLABORATION=false
      # 文件存储
      FILE_STORAGE=local
      FILE_STORAGE_LOCAL_ROOT_DIR=/var/lib/outline/data
      # 文件上传大小限制(单位:字节)
      # 50MB = 50 * 1024 * 1024 = 52428800
      FILE_STORAGE_UPLOAD_MAX_SIZE=1073741824
      # 邮件配置
      SMTP_HOST=smtp.qq.com
      SMTP_PORT=587
      SMTP_USERNAME=***@qq.com
      SMTP_PASSWORD=***
      SMTP_FROM_EMAIL=***@qq.com
      SMTP_SECURE=false
      SMTP_TLS=true
      # 访问 URL
      URL=http://服务器地址:3000
      # 禁用 HTTPS 强制跳转
      FORCE_HTTPS=false
      SECURE_COOKIES=false
      # 中文界面
      DEFAULT_LANGUAGE=zh_CN
      # 禁用遥测
      TELEMETRY=false

    volumes:
      - /vol1/1000/Docker/Outline:/var/lib/outline/data
    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/api/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 60s

networks:
  1panel-network:
    external: true

避坑指南(暂时只遇到2个问题)

坑1:使用MySQL数据库,报错Could not connect to database

原因:Outline只支持PostgreSQL,不支持MySQL/MariaDB。

解决方案:部署PostgreSQL

坑2:无法上传图片,报错Upload failed

原因:因为本地文件挂载到/var/lib/outline/data文件夹,而docker内运行outline的用户是node.js,容易造成docker内的进程没有权限向data内写入。

解决方案:执行以下命令,再重启Outline容器就可以上传了。

docker exec -u 0 -it Outline sh
chown -R nodejs:nodejs /var/lib/outline/data