在线协同表格SeaTable(安装篇)
什么是 SeaTable ?
SeaTable 是一款新一代的在线协同表格。它支持“文件”、“图片”、“单选项”、“多选项”、“协作人”等丰富的数据类型。它帮助你方便的记录和管理各种零散的信息,并按照你的所需进行扩展,实现数据处理的自动化和业务流程的自动化。
SeaTable 最初由 Seafile 团队 (https://github.com/haiwen/seafile) 构建,准备将在线协作表格功能添加到 Seafile ,后来成为了一个单独的项目,暂时尚未开源,但是按官方说法,源代码将在以后上传到 GitHub。
SeaTable 由以下组件组成
- dtable-web:用于管理表的网站。
- dtable-server:存储表并提供协作功能。
- dtable-events:后台任务,例如电子邮件发送等。
- seaf-server:存储附件(文件和图像)
下图显示了不同组件如何协同工作:
- MariaDB,Memcache 和 Redis 在各自的 Docker 容器中运行。
- Redis 用于将消息从 dtable-web / dtable-server 发送到 dtable-events
- 所有组件都使用 Memcache 来存储缓存,并使用 MariaDB 来存储永久信息。
- 基础数据保存在 dtable-server 中,并定期保存到文件/对象存储中以进行持久存储。
- 附件保存在文件/对象存储中
SeaTable 有三个版本
- 开发人员版:适用于希望将 SeaTable 用作数据库并大量使用 API 和脚本的用户。开发人员版对存储,行号和 API 调用没有限制,但最多可以支持 dtable-server 的 200 个并发连接。
- 云版本:适用于希望将 SeaTable 用作协作工具的用户。它对存储,行数和 API 调用有限制。
- 企业版:对存储,行数和 API 调用几乎没有限制,并具有高级权限和用户管理功能。它适用于大型团队以两种方式使用 SeaTable 。用户可以在云中使用它,也可以自行托管。
SeaTable 官方文档要求 4 核和 8GB RAM,这个要求对我的小 NUC 来说有点挑战,但是还是值得一试的。
安装
前期准备
在 docker
文件夹中,创建一个新文件夹,并将其命名为 seatable
,然后在 seatable
文件夹中再创建一个新的子文件夹命名为 mysql
。
在 mysql
文件夹上右键–>属性
,获取文件的 所在位置
MySQL 数据的卷目录将用到这个路径
在 seatable
文件夹上右键–>属性
,获取文件的 所在位置
SeaTable 数据的卷目录将用到这个路径
下载和修改 docker-compose.yml
下载 docker-compose.yml 文件到 seatable
目录,下载地址:https://docs.seatable.cn/d/2af5c4bcb8e14f1b85f7/files/?p=/docker/seatable-ce/docker-compose.yml&dl=1
然后根据您的环境修改文件, 需要修改以下字段:
- MySQL 的 root 的密码(MYSQL_ROOT_PASSWORD 和 DB_ROOT_PASSWD)【示例中设为了
aW53Tza
,请根据您的需要设置,但是注意密码中不要有%
号】 - MySQL 数据的卷目录 (volume)【示例中设为了
/volume1/docker/seatable/mysql
,这是前面建好的目录】 - SeaTable 的镜像标签【示例中设为了
latest
,目前最新的版本是1.8.0
】 - SeaTable 数据的卷目录(volume)【示例中设为了
volume1/docker/seatable
,这是前面建好的目录】 - 主机名(SEATABLE_SERVER_HOSTNAME),域名或者你的服务器的外部 IP【示例中设为了
192.168.0.199
,这是我群晖的局域网 IP,请根据您的 IP 进行修改】 - 时区(可选)【示例中设为了
Asia/Shanghai
】
下面是我修改过的样例:
1 | version: '2.0' |
初始化数据库
用 SSH 客户端连到群晖。
1 | # 进入 seatable 目录 |
然后使用以下命令初始化数据库
1 | docker-compose up |
注意:您应该在
docker-compose.yml
文件所在的目录中运行上述命令。
稍等片刻,下载镜像的时间取决于您的网络,我的网络不太好,过程中总是出现
1 | ERROR: net/http: TLS handshake timeout |
如果报错,您可以再继续执行
1 | docker-compose up |
对于已经下载完成的镜像,并不会重复下载,所以您可以当成是支持断点续传的。
当您在输出日志中看到 This is a idle script (infinite loop) to keep container running
时,数据库已初始化成功。
日志在
Docker
–>容器
–>SeaTable
–>详情
–>日志
然后按键盘的 Ctrl + C
来结束初始化命令。
启动 Docker 容器
使用以下命令启动 SeaTable 容器
1 | docker-compose up -d |
在 Docker 中你能看到 4 个相关的容器已经启动了
启动 SeaTable 服务
现在,您可以启动 SeaTable 服务并创建管理员账号
1 | # 启动 SeaTable 服务 |
注意:
第一个命令使用 -d 参数表示要在后台运行的服务;
第二个命令使用 -it 参数表示它是一个交互式命令;
接下来,您可以通过浏览器访问 SeaTable
网页了。
运行
在浏览器中输入 http://群晖IP:16080
,就可以看到登录界面了
用上一步创建的 superuser
的邮箱和密码登录,登录成功就可以看到主界面
设置中文
右上角 Avatar
–> Setting
–> Language Setting
从下拉框中选择 简体中文
会自动刷新为中文界面
系统管理
右上角 Avatar
–> 进入系统管理
在这里可以对用户进行管理,添加插件等操作
表单编辑问题
什么都正常,包括导入excel
虽然在导入时有时候会显示服务器忙
但是只要编辑就开始转圈,开始还我以为是我机器不行呢,直到朋友 Eduna
告诉我,他也一直在转圈,而我知道他的机器应该是没有性能瓶颈的
打开浏览器的调试模式,发现 dtable-server
的链接没有带端口
后来发现论坛里有人反馈了同样的问题: https://bbs.seatable.cn/t/topic/416
这需要修改 dtable_web_settings.py
文件中的 DTABLE_SERVER_URL
、DTABLE_SOCKET_URL
、DTABLE_WEB_SERVICE_URL
、FILE_SERVER_ROOT
,加上端口 16080
ccnet.conf
文件中的 SERVICE_URL
也需要加上端口 16080
这两个文件在
/docker/seatable/seatable/conf
目录中
保存后需要重启 SeaTable
服务
1 | docker exec -d seatable /shared/seatable/scripts/seatable.sh restart |
然后就可以编辑了
周五将发布『在线协同表格SeaTable(设置篇)』,讲讲怎么导入和使用模板,敬请期待~
参考文档
seatable/seatable: SeaTable: easy like a spreadsheet, powerful like a database
地址:https://github.com/seatable/seatablejimzucker/upwork-seatable: Seatable Docker Deployment
地址:https://github.com/jimzucker/upwork-seatableSeaTable - 新一代在线协同表格和信息管理系统
地址:https://seatable.cn/SeaTable 使用手册
地址:https://docs.seatable.cn/published/seatable-user-manual/home.md使用 Docker 部署 SeaTable 开发者版
地址:https://docs.seatable.cn/published/seatable-manual/docker/seatable-ce/Deploy%20SeaTable%20with%20Docker.md