openEuler 搭建 SeaTable 小记(1)
众所周知的 Seafile 老用户了,家里的私有云盘一直在使用 Seafile。有时候收集或分享文件时也会直接甩 Seafile 链接,Seafile 可以很好的存储和分享文件。
最近一直再找一个笔记软件(要求是啥都能存),有事没事打算记录点啥东西,试过 Typora,试过 OneNote,试过 MyBase,甚至是为知笔记(私有部署版),总觉得差点什么。
突然发现 Seafile 团队搞的一个新产品叫 SeaTable,按照官方的说法:
SeaTable 是一款新型的在线协同表格和信息管理工具。它支持“文件”、“图片”、“单选项”、“协作人”、“计算公式”等丰富的数据类型。它帮助你用表格的形式来方便的组织和管理各类信息,同时又和专门的软件系统一样强大。它还可以按照你的需要进行扩展,实现数据处理的自动化和业务流程的自动化。
咦,这不就是我要找的可以啥都能存的小工具么,好像还能写脚本自动化的搞一些事情。看起来不错哦~ 于是花了点时间上了一台 SeaTable 打算使用一下。CentOS 更新策略变了,是时候选择一个“下一代”的服务器操作系统了,不打算再新装 CentOS7 了,一直关注 OpenEuler 社区,正好搞一波 OpenEuler。本文主要是在 OpenEuler 平台下 Docker 部署 SeaTable 的小记。
大坑警告
建议先避开如下的坑,有助于提高部署效率。
- 如果你之前有了 Seafile 环境,千万不要将 SeaTable 和 Seafile 部署在同一台机器上。可能会出现很多莫名其妙的问题,虽然后续可以解决,但是 debug 起来非常麻烦。。
- docker 起来之后还要起一下 seatable 服务。。否则就一直 502。。
- 如果需要跑 Python 脚本去处理复杂业务,需要额外部署脚本节点。。
部署
本节大概分安装 OpenEuler 系统,安装 Docker,启动 SeaTable,最后的配置几部分。
安装 OpenEuler
按照 SeaTable 官方文档要求,推荐配置是 4C8G,先搞个虚拟机,然后正常最小化安装系统,建议搞个 LVM 分区,安装系统的部分略过。。。
安装 Docker
暂时没用 iSula,还是装 Docker。先搞一个 DockerCE 源。
1 | sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo |
简单修改一下 docker-ce.repo。
1 | sudo vi docker-ce.repo |
开始安装 Docker。
1 | sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose --nobest -y |
关闭防火墙,配置 Docker 开启自启。
1 | systemctl stop firewalld |
启动 SeaTable
Docker 的好处就是即开即用。所以到了这一步已经完成一大半了。
建立一个数据存储目录,这个目录是要映射给 Docker 容器做数据持久化存储的。我就放在 /data 下了。/data/docker 放 compose 文件,/data/seatable 放 SeaTable 的持久化数据文件。
拉取一份 docker-compose,改一下。
1 | wget https://docs.seatable.cn/d/2af5c4bcb8e14f1b85f7/files/?p=/docker/seatable-ce/docker-compose.yml&dl=1 |
你也可以直接用我改好的。
1 | version: '2.0' |
在 docker-compose.yml 同目录下建立.env,用于存放 MySQL 密码。
1 | vim .env |
开始拉起容器。
1 | docker-compose up |
这时候会打印出一些日志,当看到 This is a idle script (infinite loop) to keep container running 时,数据库已初始化成功。可以先 Ctrl+C 杀掉容器,转为后台运行。
1 | docker-compose up -d |
最后的配置
docker ps
,应该能看到正在运行的容器,这表示 SeaTable 容器已经起来了,这时候还需要我们手动配置一下。
- 启动 SeaTable 服务:
docker exec -d seatable /shared/seatable/scripts/seatable.sh start
- 创建管理员用户:
docker exec -it seatable /shared/seatable/scripts/seatable.sh superuser
- 配置 SeaTable URL:
1 | 编辑dtable配置文件,默认是在/映射的数据卷/seatable-data/seatable/conf/里 |
- 配置 HTTPS:
首先 Docker 得先把 HTTPS 端口映射出来。有证书,或者申请让老子加密(LetsEncrypt)证书。
上传证书:证书路径是/映射的数据卷/seatable-data/ssl/
修改 Nginx 配置,默认路径:/映射的数据卷/seatable-data/,下面是一个 Demo 配置。
1 | server { |
- 如果你是特殊端口,即从特殊端口的 HTTP 跳转到 HTTPS,避免 497 错误。
1 | server { |
- 如果你是标准端口,即从 80 跳转 443。
1 | # 官方写法,example.seatable.com为你的域名 |
坐和放宽,改完配置需要重启 Nginx 和 SeaTable 服务。
1 | #重启SeaTable |
功能体验
用户登录页:
用户工作区:
表格:
高级插件:
统计:
表单收集:
管理面板:
插件市场:
TODO
- 对接企业微信
- 搭建脚本节点
- 对接 Seafile
- ….