目的

        项目上需要调研在线表格工具,最近就发现了这个Seatable 开源的在线表格,研究了几天在本地电脑上部署的方案,为啥会想起写这篇文章?最近在网上查找了很多资料,按照文章的部署步骤进行操作,结果发现部署下来一直报错无法使用,网上都是基于Linux系统进行部署,完全没有本地电脑部署的真正成功的文章,所以我发表了这篇文章。

操作系统

  1. macos系统
  2. docker桌面版(自行官网下载安装)

Seatable安装       

        本次安装使用的外部mysql和redis,目前使用的版本为mariadb:10.11和redis:5.0.7(自行下载镜像启动)

        接下来将通过Docker-compose文件进行安装。

Step 1:创建目录

        可以在电脑的目录下新建一个文件夹或者打开cmd执行下述命令创建文件夹

mkdir seatable

cd seatable

Step 2:在seatable目录下新建2个文件

  • 新建文件.env
vim .env

        .env文件内容填充如下

COMPOSE_FILE='docker-compose.yml'
COMPOSE_PATH_SEPARATOR=','


SEATABLE_IMAGE=seatable/seatable-developer:5.3.0

SEATABLE_VOLUMES=seatable-data

#Mysql地址
INIT_SEATABLE_MYSQL_ROOT_PASSWORD=123456
SEATABLE_MYSQL_DB_HOST=10.11.26.19
SEATABLE_MYSQL_DB_PORT=3306
SEATABLE_MYSQL_DB_USER=seatable
SEATABLE_MYSQL_DB_PASSWORD=123456

TIME_ZONE='Asia/Shanghai'

#JWT 私钥(JWT_PRIVATE_KEY),用于 SeaTable 组件间通信,可以通过 pwgen 命令生成(如 pwgen -s 40 1)
JWT_PRIVATE_KEY='s$d7)1&cxxe2-xuijat)x0km7&nmlguz^lfl!ldue!#ho1o1$@'

#实际ip地址
SEATABLE_SERVER_HOSTNAME=10.11.26.19 
SEATABLE_SERVER_PROTOCOL=http
SEATABLE_SERVER_LETSENCRYPT=False
SEATABLE_SSL_PORT=

INIT_SEATABLE_ADMIN_EMAIL=123456@qq.com
INIT_SEATABLE_ADMIN_PASSWORD=123456

#Redis地址
REDIS_HOST=10.11.26.19
REDIS_PORT=6379
REDIS_PASSWORD=123456

上面参数备注:
SEATABLE_IMAG:镜像资源标志,目前使用5.3.0版本,改成latest将拉取最新的seatable社区版镜像
SEATABLE_VOLUMES:seatable数据文件映射地址,此参数使用的是docker桌面版本的VOLUMES,与docker-compose.yml文件中VOLUMES对应,这样才能解决unix系统不一致无法部署成功的问题
INIT_SEATABLE_MYSQL_ROOT_PASSWORD:数据库密码,用户名默认为root
SEATABLE_SERVER_HOSTNAME:seatable所在服务器的IP地址
SEATABLE_SSL_PORT:Https访问地址
INIT_SEATABLE_ADMIN_EMAIL:seatable网站的管理员用户账号
INIT_SEATABLE_ADMIN_PASSWORD:seatable网站的管理员用户密码

  • 同级目录下新建文件docker-compose.yml
vim docker-compose.yml

        docker-compose.yml填充如下:

services:
  seatable-server:
    image: ${SEATABLE_IMAGE:-seatable/seatable-developer:latest}
    restart: unless-stopped
    container_name: seatable
    ports:
      - 80:80
      - ${SEATABLE_SSL_PORT:-}:443
    volumes:
      - "${SEATABLE_VOLUMES:-/opt/seatable/seatable-data}:/shared"
    environment:
      - SEATABLE_MYSQL_DB_HOST=${SEATABLE_MYSQL_DB_HOST:-db}
      - SEATABLE_MYSQL_DB_PORT=${SEATABLE_MYSQL_DB_PORT:-3306}
      - INIT_SEATABLE_MYSQL_ROOT_PASSWORD=${INIT_SEATABLE_MYSQL_ROOT_PASSWORD:-}
      - SEATABLE_MYSQL_DB_USER=${SEATABLE_MYSQL_DB_USER:-seatable}
      - SEATABLE_MYSQL_DB_PASSWORD=${SEATABLE_MYSQL_DB_PASSWORD:?Variable is not set or empty}
      - SEATABLE_MYSQL_DB_DTABLE_DB_NAME=${SEATABLE_MYSQL_DB_DTABLE_DB_NAME:-dtable_db}
      - SEATABLE_MYSQL_DB_CCNET_DB_NAME=${SEATABLE_MYSQL_DB_CCNET_DB_NAME:-ccnet_db}
      - SEATABLE_MYSQL_DB_SEAFILE_DB_NAME=${SEATABLE_MYSQL_DB_SEAFILE_DB_NAME:-seafile_db}
      - SEATABLE_SERVER_HOSTNAME=${SEATABLE_SERVER_HOSTNAME:?Variable is not set or empty}
      - SEATABLE_SERVER_PROTOCOL=${SEATABLE_SERVER_PROTOCOL:-http}
      - SEATABLE_SERVER_LETSENCRYPT=${SEATABLE_SERVER_LETSENCRYPT:-False}
      - SEATABLE_ADMIN_EMAIL=${INIT_SEATABLE_ADMIN_EMAIL:-}
      - SEATABLE_ADMIN_PASSWORD=${INIT_SEATABLE_ADMIN_PASSWORD:-}
      - TIME_ZONE=${TIME_ZONE}
      - REDIS_HOST=${REDIS_HOST:-redis}
      - REDIS_PORT=${REDIS_PORT:-6379}
      - REDIS_PASSWORD=${REDIS_PASSWORD:-}
      - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty}
      - ENABLE_PYTHON_SCRIPT=${ENABLE_PYTHON_SCRIPT:-false}
      - PYTHON_SCHEDULER_URL=${PYTHON_SCHEDULER_URL:-http://python-scheduler}
      - PYTHON_SCHEDULER_AUTH_TOKEN=${PYTHON_SCHEDULER_AUTH_TOKEN:-}
      - REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
      - ENABLE_SEADOC=${ENABLE_SEADOC:-false}
      - SEADOC_SERVER_URL=${SEATABLE_SERVER_PROTOCOL:-}://${SEATABLE_SERVER_HOSTNAME:-}/sdoc-server
    networks:
      - frontend-net
      - backend-seatable-net

volumes:
  seatable-data:

networks:
  frontend-net:
    name: frontend-net
  backend-seatable-net:
    name: backend-seatable-net

Step 3:运行docker-compose文件

  • 确保IP获取正确,并与.env文件的SEATABLE_SERVER_HOSTNAME值保持一致

  • 确保本地的80端口无人占用

  • 在docker-compose.yml同级目录下面,执行如下命令,创建并启动程序

docker-compose up -d

等待创建和启动成功

Step 4:验证是否安装成功

  • 查看docker运行情况看服务状态
docker ps
  • 浏览器输入服务器IP,端口80即可访问

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐