使用 Docker 部署 SeaTable 开发者版

从 4.3 版本开始,我们建议您使用更方便的 Docker 部署方法 使用 Docker 部署 SeaTable (新)

服务器配置要求

最低要求

推荐配置

快速开始

下载 SeaTable 镜像

拉取 SeaTable 镜像

docker pull seatable/seatable-developer:{tag}

您可以在官方 docker仓库 中找到 SeaTable 开发者版的所有版本 。

下载和修改 docker-compose.yml

我们建议您在 /opt/seatable中安装 SeaTable ,先创建目录

mkdir /opt/seatable

docker-compose.yml 示例文件下载到 /opt/seatable, 然后根据您的环境修改文件, 需要修改以下字段

初始化数据库

使用以下命令初始化数据库

docker compose up

注意:您应该在 docker-compose.yml 文件所在的目录中运行上述命令。

稍等片刻,当您在输出日志中看到 This is a idle script (infinite loop) to keep container running 时,数据库已初始化成功。

然后按键盘的 Ctrl + C来结束初始化命令。

启动 Docker 容器

使用以下命令启动 SeaTable 容器

docker compose up -d

启动 SeaTable 服务器

现在,您可以启动 SeaTable 服务并创建管理员账号

# 启动 SeaTable 服务
docker exec -d seatable /shared/seatable/scripts/seatable.sh start
# 创建一个管理员帐户
docker exec -it seatable /shared/seatable/scripts/seatable.sh superuser  

注意,第一个命令使用 -d 参数表示要在后台运行的服务, 第二个命令使用 -it 参数表示它是一个交互式命令。

接下来,您可以通过网站访问 SeaTable。

注意!!!如果表格加载的时候显示 Network error

用 Chrome 的 debug 模式看看哪个网络请求出错。一般是配置文件 (dtable_web_settings.py) 中的 URL 相关的配置项没有写对。这是因为 SeaTable 服务器是由多个组件构成的。必须通过配置文件来告诉不同的组件它服务的外部 URL 是什么。配置文件中的配置只在首次启动的时候从 docker-compose 中读取和写入。如果你之后修改了地址,需要手工修改配置文件。

主要是下面四个地址:

DTABLE_SERVER_URL = 'https://seatable.yourdomain.com/dtable-server/'
DTABLE_SOCKET_URL = 'https://seatable.yourdomain.com/'

# 供用户访问SeaTable服务器的 dtable web的URL
DTABLE_WEB_SERVICE_URL = 'https://seatable.yourdomain.com/'

# 文件服务器URL
FILE_SERVER_ROOT = 'https://seatable.yourdomain.com/seafhttp/'

修改后别忘了重启服务

docker exec -d seatable /shared/seatable/scripts/seatable.sh stop
docker exec -d seatable /shared/seatable/scripts/seatable.sh start

更多配置选项

部署 Https

使用 LetsEncrypt SSL 证书

如果您在 “ docker-compose.yml” 中将 SEATABLE_SERVER_LETSENCRYPT 设置为 True,则容器将自动为您请求一个 Letsencrypt 签名的 SSL 证书。

例如

  seatable:
    ...
    ports:
      - "80:80"
      - "443:443"
      ...
    environment:
      ...
      - SEATABLE_SERVER_LETSENCRYPT=True   # 默认值为 False。 是否使用加密证书
      - SEATABLE_SERVER_HOSTNAME=example.seatable.com  # 指定启用 https 时的主机名

注意:由于 Nginx 配置文件仅在首次运行容器时自动生成,因此最好在首次执行 docker compose up -d 命令之前将 SEATABLE_SERVER_LETSENCRYPT 设置为 True。

使用自己的 SSL 证书

添加您自己的 SSL 证书

  1. 将 SSL 证书文件上传到 SeaTable 数据目录:/您的 SeaTable 数据卷目录/ssl/
  2. 将 ccnet.conf,dtable_web_settings.py 和 dtable_server_config.json 中每个 SERVER_URL 的 “ http” 更改为 “ https”。
  3. 重新启动 SeaTable 服务:docker exec -it seatable /shared/seatable/scripts/seatable.sh restart
  4. 重启 Memcached 服务:docker restart seatable-memcached
  5. 修改 Nginx 配置文件:/您的 SeaTable 数据卷目录/seatable/conf/nginx.conf
  6. 重新加载 Nginx 配置文件:docker exec -it seatable /usr/sbin/nginx -s reload

例如

server {
    if ($host = example.seatable.com) {
        return 301 https://$host$request_uri;
    }
    listen 80;
    server_name example.seatable.com;
    return 404;
}

server {
    server_name example.seatable.com;

    listen 443 ssl;
    ssl_certificate /shared/ssl/<your-ssl.cer>;
    ssl_certificate_key /shared/ssl/<your-ssl.key>;

    proxy_set_header X-Forwarded-For $remote_addr;
    ......


高级设置

所有配置文件都在 /您的 SeaTable 数据卷目录/seatable/conf/ 下。

修改后,您需要重新启动 SeaTable 服务器。

docker exec -d seatable /shared/seatable/scripts/seatable.sh restart

SeaTable 目录结构

与宿主机共享的 Volume

容器中的 /shared 目录是和宿主机共享的卷,这里存放需要持久化的数据

日志

SeaTable 日志位于 docker 容器中的 /shared/seatable/logs 下,或者位于运行 docker 的服务器中的 /您的 SeaTable 数据卷目录/seatable/logs下。

Nginx 日志位于运行 docker 容器中的 /shared/nginx-logs 或者位于运行 docker 的服务器中的 /您的 SeaTable 数据卷目录 /nginx-logs下。

常见问题

如果由于某种原因安装失败,如何从干净状态重新开始?

只需删除目录 /opt/seatable,然后重新开始即可。

LetsEncrypt SSL 证书将要过期

如果证书没有自动更新,需要执行命令 /templates/renew_cert.sh 以手动更新证书。

更多问题见:

https://cloud.seatable.cn/dtable/external-links/3e6dc8e259be427ebee3/?tid=lxct&vid=0000

忘记账号密码

重新创建一个管理员账号,然后进入系统把原来的账号的密码重置即可。

SEATABLE_SERVER_LETSENCRYPT=false 改为 true

在使用 http 一段时间后,想改为 https,需要移走并备份 nginx.conf

mv /opt/seatable/shared/seatable/conf/nginx.conf /opt/seatable/shared/seatable/conf/nginx.conf.bak

执行以下命令申请证书

docker exec seatable /templates/seatable.sh init

您还需要手动将其他陪配置文件中的 http 改为 https,并重启 SeaTable。

docker compose down
docker compose up -d
docker exec -d seatable /shared/seatable/scripts/seatable.sh start

如果曾经改动过旧的 nginx.conf,现在可以按照您想要的内容修改新的 nginx.conf,然后执行以下命令使 nginx 配置生效。

docker exec seatable nginx -s reload

Last modified by seatable, 2023-12-29

服务器配置要求
快速开始
下载 SeaTable 镜像
下载和修改 docker-compose.yml
初始化数据库
启动 Docker 容器
启动 SeaTable 服务器
注意!!!如果表格加载的时候显示 Network error
更多配置选项
部署 Https
高级设置
SeaTable 目录结构
与宿主机共享的 Volume
日志
常见问题