SeaDoc 集成

SeaDoc 是一个在线协同文档,并有文档的流程管理功能

SeaDoc 围绕以下的关键想法进行设计

SeaDoc 的使用场景包括

SeaDoc 设置

只有 Seafile 11.0 版本或者更高版本,才支持集成 SeaDoc 。

部署方法

SeaDoc 有三种部署方法

方式1:在新服务器上部署 SeaDoc

下载并修改 docker-compsoe.yml

根据您需要的版本,下载 docker-compose.yml 文件,然后根据您的环境修改文件,需要修改以下字段:

手动创建 SeaDoc 数据库

SeaDoc 和 Seafile 共享 MySQL 服务。

在 Seafile MySQL 中创建数据库 sdoc_db 并授权用户:

create database if not exists sdoc_db charset utf8mb4;
GRANT ALL PRIVILEGES ON `sdoc_db`.* to `seafile`@`%.%.%.%`;

请注意:SeaDoc 只会创建一个用来存储操作日志的数据库表

方式2:SeaDoc 和 Seafile (非docker 版本)部署在同一主机上

根据您需要的版本,下载 docker-compose.yml 文件,然后根据您的环境修改文件,需要修改以下字段:

额外修改:prots

sdoc-server:
    ...
    ports:
        # - "80:80"
        # - "443:443"
        - "7070:7070" 
        - "8888:8888"

     ......
手动创建 SeaDoc 数据库

SeaDoc 和 Seafile 共享 MySQL 服务。

在 Seafile MySQL 中创建数据库sdoc_db并授权用户。

create database if not exists sdoc_db charset utf8mb4;
GRANT ALL PRIVILEGES ON `sdoc_db`.* to `seafile`@`%.%.%.%`;
修改 seafile 服务器的 nginx.conf 文件

将以下内容添加到 :seafile.nginx.conf

location /sdoc-server/ {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
        add_header Access-Control-Allow-Headers "deviceType,token, authorization, content-type";
        if ($request_method = 'OPTIONS') {
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
            add_header Access-Control-Allow-Headers "deviceType,token, authorization, content-type";
            return 204;
        }
        proxy_pass         http://sdoc-server:7070/;
        proxy_redirect     off;
        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-Host  $server_name;
        proxy_set_header   X-Forwarded-Proto $scheme;
        client_max_body_size 100m;
    }
    location /socket.io {
        proxy_pass http://sdoc-server:7070;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_redirect off;
        proxy_buffers 8 32k;
        proxy_buffer_size 64k;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
    }
重新加载 nginx
nginx -s reload

然后按照下面的操作 启动 SeaDoc

方式3:SeaDoc 和 Seafile docker 部署在同一主机上

将 SeaDoc docker-compose.yml 内容添加到 Seafile docker-compose.yml 中:

services:
  ...
  seafile:
    ...
  sdoc-server:
    image: seafileltd/sdoc-server:latest
    container_name: sdoc-server
    ports:
      # - 80:80
      # - 443:443
      - 7070:7070
      - 8888:8888
    volumes:
      - /opt/seadoc-data/:/shared
    environment:
      - DB_HOST=db
      - DB_PORT=3306
      - DB_USER=seafile
      - DB_PASSWD=password # Requested, password of MySQL service.
      - DB_NAME=sdoc_db      
      - TIME_ZONE=Etc/UTC # Optional, default is UTC. Should be uncomment and set to your local time zone.
      - SDOC_SERVER_LETSENCRYPT=false # Whether to use https or not.
      - SDOC_SERVER_HOSTNAME=sdoc-server.example.com # Specifies your host name if https is enabled.
      - SEAHUB_SERVICE_URL=http://seafile.example.com
    networks:
      - seafile-net
手动创建 SeaDoc 数据库

SeaDoc 和 Seafile 共享 MySQL 服务。

在 Seafile MySQL 中创建数据库sdoc_db。

create database if not exists sdoc_db charset utf8mb4;
GRANT ALL PRIVILEGES ON `sdoc_db`.* to `seafile`@`%.%.%.%`;
修改 seafile 服务器的 nginx.conf 文件

将以下内容添加到 :seafile.nginx.conf

location /sdoc-server/ {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
        add_header Access-Control-Allow-Headers "deviceType,token, authorization, content-type";
        if ($request_method = 'OPTIONS') {
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
            add_header Access-Control-Allow-Headers "deviceType,token, authorization, content-type";
            return 204;
        }
        proxy_pass         http://sdoc-server:7070/;
        proxy_redirect     off;
        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-Host  $server_name;
        proxy_set_header   X-Forwarded-Proto $scheme;
        client_max_body_size 100m;
    }
    location /socket.io {
        proxy_pass http://sdoc-server:7070;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_redirect off;
        proxy_buffers 8 32k;
        proxy_buffer_size 64k;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
    }
重新加载 Nginx
nginx -s reload

然后按照下面的操作 启动 SeaDoc

启动 SeaDoc

使用以下命令启动 SeaDoc 服务

docker-compose up -d

等待几分钟程序初始化完成后,查看配置文件 /opt/seadoc-server/sdoc-server/conf/sdoc_server_config.json,记录下 private_key 的内容,稍后用于编辑 Seafile 配置文件。

Seafile 配置

修改seahub_settings.py:

ENABLE_SEADOC = True
SEADOC_PRIVATE_KEY = '***'  # 必须和SeaDoc的conf/sdoc_server_config.json里一致
SEADOC_SERVER_URL = 'http://sdoc-server.example.com'  # sdoc-server service url
# 当 SeaDoc 和 Seafile/Seafile docker 部署在同一主机上时,SEADOC_SERVER_URL 应为http://seafile.example.com/sdoc-server
FILE_CONVERTER_SERVER_URL = 'https://sdoc-server.example.com/seadoc-converter' #转换器服务器ur
#当SeaDoc和Seafile部署在同一主机上时,FILE_CONVERTER_SERVER_URL= 'http://127.0.0.1:8888'
#当SeaDoc和Seafile docker部署在同一主机上时,FILE_CONVERTER_SERVER_URL= 'http://sdoc-server:8888'

重启 seafile 服务

cd  seafile-server-latest/
./seafile.sh  restart 
./seahub.sh restart

然后您可以开始使用 SeaDoc 了

更多配置选项

配置 ssl 加密证书

如果使用自动 letsencrypt 签名的 SSL 证书 :

sdoc-server:
    ...
    ports:
        - "80:80"
        - "443:443"
    ...
    environment:
        ...
        - SDOC_SERVER_LETSENCRYPT=true      ## 开启  letsencrypt 自动签名 ssl证书
        - SDOC_SERVER_HOSTNAME=sdoc-server.seafile.com

如果您想使用自己的SSL证书

SeaDoc数据的卷目录是:/opt/seadoc-data

server {
    listen 80;
    server_name example.seafile.com default_server;

    location / {
        rewrite ^ https://$host$request_uri? permanent;
    }
}
server {
    listen 443;
    ssl on;
    ssl_certificate      /shared/ssl/your-ssl-crt.crt;
    ssl_certificate_key  /shared/ssl/your-ssl-key.key;

    ........

重新加载 Nginx 的配置文件:docker exec -it sdoc-server /usr/sbin/nginx -s reload

SeaDoc 目录结构

/opt/seadoc-data

共享卷的占位符位置,您可以选择将某些持久性信息存储在容器之外,在我们的例子中,我们将各种日志文件和上传目录保留在容器之外。这使您可以轻松重建容器,而不会丢失重要信息。

升级 SeaDoc 服务器

docker pull seafileltd/sdoc-server:latest
docker-compose down
docker-compose up -d

从 0.8 升级到 1.0(正在进行)

从 SeaDoc 1.0 开始,我们建议您使用 .env 和 docker-compose.yml 进行配置。

根据您需要的版本,下载 .env 和 docker-compose.yml 文件。然后修改 .env 文件(文件名包括符号'.')。

由于 1.0 版本与旧数据库表不兼容,因此需要将 DB_NAME 更改为 seahub_db。

.env

SEADOC_MYSQL_DB_NAME=seahub_db

conf/sdoc_server_config.json

"database": "seahub_db"

最后重启 SeaDoc。

Last modified by 马宇航, 2024-08-23

SeaDoc 设置
部署方法
方式1:在新服务器上部署 SeaDoc
方式2:SeaDoc 和 Seafile (非docker 版本)部署在同一主机上
方式3:SeaDoc 和 Seafile docker 部署在同一主机上
启动 SeaDoc
Seafile 配置
重启 seafile 服务
更多配置选项
配置 ssl 加密证书
SeaDoc 目录结构
升级 SeaDoc 服务器
从 0.8 升级到 1.0(正在进行)