前言

Outline适合团队或者个人文档工具, 对比其他文档工具, 个人观点Outline使用体验最佳, 官网有提供30天试用, 建议注册体验下
image.png
需要强调是目前Outline不具有本地认证功能, 这里采用的第三方Keycloak进行认证

部署前需要准备的环境

部署步骤

  1. DNS配置
    最基本的需要配置 auth.lhqs1314.cn 与 wiki.lhqs1314.cnimage.png
  2. Nginx Proxy Manager配置

    1. <br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/127032/1643467125908-ac6f5e7c-8c9d-4c45-8711-eb676ab3579f.png#clientId=u49d86ca7-1d9d-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=718&id=ua8da355a&margin=%5Bobject%20Object%5D&name=image.png&originHeight=718&originWidth=1408&originalType=binary&ratio=1&rotation=0&showTitle=false&size=133595&status=done&style=none&taskId=u5e3d2dc7-8e4c-4042-8d7d-908bf17427b&title=&width=1408)![image.png](https://cdn.nlark.com/yuque/0/2022/png/127032/1643467144201-82434827-96ed-42ee-abd7-b5ec5261697f.png#clientId=u49d86ca7-1d9d-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=934&id=ucd73f5e1&margin=%5Bobject%20Object%5D&name=image.png&originHeight=934&originWidth=978&originalType=binary&ratio=1&rotation=0&showTitle=false&size=144447&status=done&style=none&taskId=uc9132f24-49d5-4e5a-a8d5-93a73d2f885&title=&width=978)![image.png](https://cdn.nlark.com/yuque/0/2022/png/127032/1643467151263-7d6984f3-d452-4a0d-9459-5e6505953e02.png#clientId=u49d86ca7-1d9d-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=800&id=ucde908fd&margin=%5Bobject%20Object%5D&name=image.png&originHeight=800&originWidth=1036&originalType=binary&ratio=1&rotation=0&showTitle=false&size=110126&status=done&style=none&taskId=u721ae922-b8fc-4033-bbd7-3c61d18c2c6&title=&width=1036) <br />
  3. Keycloak设置

image.png

  • 设置access type为confidential

image.png

  1. Docker Compose
    这里提供如下配置, 如果需要一个更完整的.env, 可以在github查看配置
version: "2"
services:
  outline_redis:
    image: redis
    restart: always
    container_name: outline_redis
    networks:
      - outline-internal

  outline_postgres:
    image: postgres:13
    restart: always
    container_name: outline_postgres
    environment:
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_USER=outline
      - POSTGRES_DB=outline
    networks:
      - outline-internal
    volumes:
      - /mnt/containers/outline/container-data/db:/var/lib/postgresql/data:Z


  outline:
    image: outlinewiki/outline
    user: root
    restart: always
    container_name: outline
    command: sh -c "yarn sequelize:migrate --env=production-ssl-disabled && yarn start --env=production-ssl-disabled"
    depends_on:
      - outline_postgres
      - outline_redis

    environment:
      - PGSSLMODE=disable
      - SECRET_KEY=${SECRET_KEY}
      - UTILS_SECRET=${UTILS_SECRET}
      - DATABASE_URL=postgres://outline:${POSTGRES_PASSWORD}@outline_postgres:5432/outline
      - REDIS_URL=redis://outline_redis:6379
      - URL=${WIKI_URL}
      - PORT=443
      - AWS_ACCESS_KEY_ID=AKIAYWC6QDQZOGBLSO3
      - AWS_REGION=us-west-2
      - AWS_SECRET_ACCESS_KEY=vG5+2SUSwcHST5XJNEShVcSY+ZFZ/ydwyqQDZOt
      - AWS_S3_UPLOAD_BUCKET_URL=${WIKIDATA_URL}
      - AWS_S3_UPLOAD_BUCKET_NAME=mindcoord-hub-wiki
      - AWS_S3_UPLOAD_MAX_SIZE=26214400
      - AWS_S3_FORCE_PATH_STYLE=false
      - AWS_S3_ACL=private
      - OIDC_CLIENT_ID=outline
      - OIDC_CLIENT_SECRET=${AUTH_CLIENT_SECRET}
      - OIDC_AUTH_URI=${AUTH_URL}/auth/realms/master/protocol/openid-connect/auth
      - OIDC_TOKEN_URI=${AUTH_URL}/auth/realms/master/protocol/openid-connect/token
      - OIDC_USERINFO_URI=${AUTH_URL}/auth/realms/master/protocol/openid-connect/userinfo
      - OIDC_USERNAME_CLAIM=email
      - OIDC_DISPLAY_NAME=Keycloak
      - OIDC_SCOPES=email
    ports:
     - 5030:443

    networks:
      - outline-internal
      - reverseproxy-nw

networks:
  outline-internal:
  reverseproxy-nw:
    external: true

其中环境变量的配置如下,
image.png
提醒:
SECRET_KEY和UTILS_SECRET通过openssl rand -hex 32 生成
WIKIDATA_URL是S3的配置地址, 关于S3的配置参考: https://wiki.generaloutline.com/share/125de1cc-9ff6-424b-8415-0d58c809a40f
AUTH_CLIENT_SECRET 通过keycloak获取

image.png

  1. 点击update the stack按钮, 顺利的话就可以访问了
    note: 如果提示异常信息, 按照提示调整, eg:无法创建reverseproxy-nw
sudo docker network create reverseproxy-nw
  1. 访问

image.png

  1. 首次登录使用Keycloak登录
    note: 使用邮箱登录, 这里需要注意的如果使用自定义公司邮箱无法正常登录, 但使用gmail则不存在问题, 其他邮箱没有测试
    keyclock账户分配

image.png
其他
MINIO的协议兼容S3, 可以作为存储替代, 更多参考: https://blog.gurucomputing.com.au/doing-more-with-docker/deploying-outline-wiki/

Outline 与 Alfred集成

参考: https://www.getoutline.com/integrations/alfred
https://github.com/outline/alfred-outline/blob/main/index.js
其中关键的配置
image.png

参考
https://blog.gurucomputing.com.au/doing-more-with-docker/deploying-outline-wiki/
https://soulteary.com/2021/09/05/opensource-documentation-wiki-software-outline-part-1.html