在线协同表格SeaTable(5.3 开发版)的安装

本文是应网友 lee yong 的要求折腾的;

距离最近一次折腾 SeaTable 都过了 3 年多,软件有一些变化,但也不算太大。整个过程还是比较顺利的

安装

在群晖上以 Docker 方式安装。

采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
services:
seatable-server:
image: seatable/seatable-developer:latest
restart: unless-stopped
container_name: seatable
ports:
- 16080:80
- 16443:443
volumes:
- "./shared:/shared"
environment:
- SEATABLE_MYSQL_DB_HOST=db
- SEATABLE_MYSQL_DB_PORT=3306
- INIT_SEATABLE_MYSQL_ROOT_PASSWORD=aW53Tza
- SEATABLE_MYSQL_DB_USER=seatable
- SEATABLE_MYSQL_DB_PASSWORD=seatable123
- SEATABLE_MYSQL_DB_DTABLE_DB_NAME=dtable_db
- SEATABLE_MYSQL_DB_CCNET_DB_NAME=ccnet_db
- SEATABLE_MYSQL_DB_SEAFILE_DB_NAME=seafile_db
- SEATABLE_SERVER_HOSTNAME=192.168.0.197
- SEATABLE_SERVER_PROTOCOL=http
- SEATABLE_SERVER_LETSENCRYPT=False
- SEATABLE_ADMIN_EMAIL=wbsu2003@gmail.com
- SEATABLE_ADMIN_PASSWORD=laosu123
- TIME_ZONE=Asia/Shanghai
- REDIS_HOST=redis
- REDIS_PORT=6379
- REDIS_PASSWORD=
- JWT_PRIVATE_KEY=xMEDziwdQELpxGJBiK5GYfexcQhFKYWY
depends_on:
db:
condition: service_healthy
redis:
condition: service_started

db:
image: mariadb:10.11
restart: unless-stopped
container_name: seatable-mysql
environment:
- MYSQL_ROOT_PASSWORD=aW53Tza
- MYSQL_LOG_CONSOLE=true
- MARIADB_MYSQL_LOCALHOST_USER=1
- MARIADB_MYSQL_LOCALHOST_GRANTS=USAGE
- MARIADB_AUTO_UPGRADE=1
volumes:
- "./data:/var/lib/mysql"
healthcheck:
test:
[
"CMD",
"/usr/local/bin/healthcheck.sh",
"--connect",
"--mariadbupgrade",
"--innodb_initialized",
]
interval: 20s
start_period: 30s
timeout: 5s
retries: 10

redis:
image: redis:5.0.7
restart: unless-stopped
container_name: seatable-redis
  • Seatable 环境变量
环境变量 说明
SEATABLE_MYSQL_DB_HOST MySQL 数据库主机,默认为 db
SEATABLE_MYSQL_DB_PORT MySQL 数据库端口,默认为 3306
INIT_SEATABLE_MYSQL_ROOT_PASSWORD MySQL 根用户密码。
SEATABLE_MYSQL_DB_USER MySQL 数据库用户名,默认为 seatable
SEATABLE_MYSQL_DB_PASSWORD MySQL 数据库密码,必填项。
SEATABLE_MYSQL_DB_DTABLE_DB_NAME Dtable 数据库名称,默认为 dtable_db
SEATABLE_MYSQL_DB_CCNET_DB_NAME CCNet 数据库名称,默认为 ccnet_db
SEATABLE_MYSQL_DB_SEAFILE_DB_NAME Seafile 数据库名称,默认为 seafile_db
SEATABLE_SERVER_HOSTNAME Seatable 服务器主机名,必填项。
SEATABLE_SERVER_PROTOCOL Seatable 服务器协议,默认为 http
SEATABLE_SERVER_LETSENCRYPT 是否启用 Let's Encrypt,默认为 False
SEATABLE_ADMIN_EMAIL Seatable 管理员邮箱。
SEATABLE_ADMIN_PASSWORD 管理员密码。
TIME_ZONE 时区设置。
REDIS_HOST Redis 主机,默认为 redis
REDIS_PORT Redis 端口,默认为 6379
REDIS_PASSWORD Redis 密码。
JWT_PRIVATE_KEY JWT 私钥,必填项。
  • MariaDB 环境变量
环境变量 说明
INIT_SEATABLE_MYSQL_ROOT_PASSWORD MySQL 根用户密码,默认为空。
MYSQL_LOG_CONSOLE 是否在控制台记录 MySQL 日志,默认为 true
MARIADB_MYSQL_LOCALHOST_USER 本地用户设置,默认为 1
MARIADB_MYSQL_LOCALHOST_GRANTS 本地用户权限设置,默认为 USAGE
MARIADB_AUTO_UPGRADE 是否启用自动升级,默认为 1

然后通过 SSH 登录到您的群晖,执行下面的命令:

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 seatable 和 子目录
mkdir -p /volume1/docker/seatable/{data,shared}

# 进入 seatable 目录
cd /volume1/docker/seatable

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

一切正常的话,会启动 3 个容器

运行

数据库的初始化会花费一些时间,可以尝试在浏览器中输入 http://群晖IP:16080 ,然后刷新,直到看到登录界面

账号和密码分别对应环境变量 SEATABLE_ADMIN_EMAILSEATABLE_ADMIN_PASSWORD 的值

登录成功后

版本信息

导入 excel 文件

尝试导入 excel 文件或者新建

会遇到错误 Network Error,而错误的原因和之前一样,还是端口缺失

找到 /docker/seatable/shared/seatable/conf/dtable_web_settings.py

打开编辑

加上了端口

需要重启服务

之后就可以正常使用了

参考文档

介绍 - seatable-manual
地址:https://docs.seatable.cn/published/seatable-manual/home.md

Seafile Server
地址:https://docs.seatable.cn/d/7c4deff43d8a4f5cb8bb/