小团队协作写方案、产品文档、API 说明,用在线文档怕泄密、用本地文件又难同步。Outline 是一个开源的「现代化团队 Wiki / 文档协作」工具,界面像 Notion:支持实时协作、空间分组、全文搜索、Markdown,数据全在自己服务器。本文用一台雨云 KVM 云服务器,Docker 一把部署(Outline + PostgreSQL + 对象存储),把团队文档收归自己掌控。
一、先准备一台雨云 KVM 云服务器
Outline 比纯静态 Wiki 重一些:要 Node 后端 + PostgreSQL + 对象存储(存附件),建议 2 核 2G 起步才顺。它要 7×24 在线、有公网 IP、绑域名走 HTTPS。想低成本起一台可以看国产高性价比云服务器,比如雨云:KVM 虚拟化、Debian/Ubuntu 镜像任选,新用户用优惠码 admin01 享五折,入门版折后约 9 元/月,支持 7 天无理由退款。挑机器可参考 VPS 怎么选不踩坑 与 新手买 VPS 先看这几个配置参数。
我选 Debian 12。基础安全按 VPS 到手第一件事做什么 走一遍,本文默认你已建好普通用户、开了 ufw。Outline 走 3000,放行即可。
二、装 Docker 并拉起 Outline 全家桶
Outline 依赖 PostgreSQL、Redis、对象存储。官方推荐 docker-compose 一把拉。先建目录:
mkdir -p /opt/outline && cd /opt/outline
核心 docker-compose.yml(精简示意,密钥请换成随机串):
version: "3"
services:
outline:
image: outline/outline:latest
container_name: outline
restart: unless-stopped
ports:
- "3000:3000"
environment:
- PORT=3000
- DATABASE_URL=postgres://outline:强密码@postgres:5432/outline
- REDIS_URL=redis://redis:6379
- SECRET_KEY=换成32位随机串
- UTILS_SECRET=换成32位随机串
- URL=https://wiki.example.com
- DATABASE_CONNECTION_POOL_MIN=2
- DATABASE_CONNECTION_POOL_MAX=10
depends_on:
- postgres
- redis
postgres:
image: postgres:15
container_name: outline-db
restart: unless-stopped
environment:
- POSTGRES_USER=outline
- POSTGRES_PASSWORD=强密码
- POSTGRES_DB=outline
volumes:
- ./pgdata:/var/lib/postgresql/data
redis:
image: redis:7
container_name: outline-redis
restart: unless-stopped
volumes:
- ./redis:/data
生成随机串:openssl rand -hex 32。附件要落对象存储的话,额外配 AWS_S3_* 环境变量指向你的对象存储(见 雨云快照备份与对象存储)。启动:
docker compose up -d
首次访问 http://服务器IP:3000,按向导建管理员、邀请成员。
三、配 HTTPS 反代
团队文档走 HTTPS 是底线。Nginx 反代 3000:
server {
listen 80;
server_name wiki.example.com;
location / { return 301 https://$host$request_uri; }
}
server {
listen 443 ssl;
server_name wiki.example.com;
ssl_certificate /etc/letsencrypt/live/wiki.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wiki.example.com/privkey.pem;
client_max_body_size 50m; # 允许上传附件
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
申请证书:certbot --nginx -d wiki.example.com。放行:
ufw allow 80/tcp
ufw allow 443/tcp
ufw reload
四、怎么用出协作效率
- 空间分组:按团队/项目建 Collection,权限粒度到空间,公开与私有分开。
- 实时协作:多人同时编辑同一篇不冲突,改动实时同步,告别「最终版_final_v3」。
- 全文搜索:内置搜索秒级定位历史文档,比翻聊天记录强太多。
- 和知识库搭配:个人知识沉淀可用 雨云搭建 Wiki.js,团队协作用 Outline,两者分工;灵感速记交给 雨云搭建 Memos 轻量记录。
五、踩过的坑与经验
- 起不来先看日志:
docker compose logs outline多半是DATABASE_URL格式错或密钥长度不够(SECRET_KEY/UTILS_SECRET 必须 32 位)。 - 附件存哪:不配对象存储时附件存容器里,重启易失。生产一定接 S3/对象存储,附件才稳。
- 内存吃紧:2 核 2G 是底线,低于此容易 OOM 被杀。PG 连接池参数按内存调小。
- 后台暴露:团队文档含敏感信息,务必 HTTPS + 强密码 + 限制来源 IP,详见 VPS 安全配置实战。
- 定期备份:
./pgdata是核心库,定期pg_dump或打包;多服务统一备份见 雨云快照备份与对象存储。
小结
Outline 适合「要协作、又要数据自己握」的团队:Notion 般的体验,服务器在自己手里。部署比纯静态 Wiki 重(要 PG+Redis+对象存储),难点在环境变量和内存。常驻服务很适合雨云这类低价稳定 KVM——优惠码 admin01 五折、7 天无理由退款,跑团队文档很合适。
合规提醒:使用雨云及本文所述方案时,请遵守《网络安全法》《个人信息保护法》《数据安全法》等相关法律法规,仅用于合法合规的团队文档协作与知识沉淀,妥善保管文档内容、履行个人信息保护义务,不得存储或传播违法违规信息。






