在群晖上体验维格表社区版APITable

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

什么是 APITable ?

APITablevika 维格表的社区版,是一个面向 API 且易于使用的可视化数据库,适合所有人,使其成为 Airtable 的最佳开源替代品。最重要的是,APITable 拥有更酷的 UI 和更多的功能,可以将您的工作和生活优化到一个神奇的水平。

按官方的说法,APITable 目前正在 积极开发中,并将在 20232 月下旬公布第一份发行版本。

前言

一开始老苏是打算安装多容器版本的,但在运行中发现老苏的小机器根本抗不住,大约有 12 个容器,启动过程中服务器 CPU、内存都在满负荷运作,很容易失联、重启,所以日志中会看到超时、失败等,总之没成功。老苏也会把折腾过程写出来,放在文末供参考,但这不是本文的重点

官方发布了一个 All In One 的版本,里面包含了所需要的 mysql/redis/minio/rabbitmq,安装过程、使用中也比较耗资源,但是比多容器的要好得多。这是给大家体验的,不要用在生产环境

1
We also provide an all-in-one image based on pm2 for demo or testing purpose (not recommended for enterprise or production usage)

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 apitable ,选择第一个 apitable/all-in-one,版本选择 v0.18.0-alpha_888

目前在测试阶段,更新非常频繁,一天都能出几个版本,老苏周三下午安装还是 887,晚上就出了 888,本文发布时,已经是 902

docker 文件夹中,创建一个新文件夹 vika,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/vika/data /apitable 存放数据库等

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
7088 80

默认对外暴露了一堆端口,其中

  • 3306:是 MySQL 服务;
  • 5672:是 RabbitMQ 服务;
  • 6379:是 Redis 服务;
  • 9000:是 MinIO 服务;
  • 80:是 Nginx 服务;

如果你不打算从外部直接访问这些服务的话,只要保留 80 就可以了

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
# 新建文件夹 vika 和 子目录
mkdir -p /volume2/docker/vika/data

# 进入 vika 目录
cd /volume2/docker/vika

# 运行容器
docker run -d \
--restart unless-stopped \
--name apitable \
-p 7088:80 \
-v $(pwd)/data:/apitable \
apitable/all-in-one:v0.18.0-alpha_888

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

1
2
3
4
5
6
7
8
9
10
11
version: '3'

services:
cherry:
image: apitable/all-in-one:v0.18.0-alpha_888
container_name: apitable
restart: unless-stopped
ports:
- 7088:80
volumes:
- ./data:/apitable

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 vika 和 子目录
mkdir -p /volume2/docker/vika/data

# 进入 vika 目录
cd /volume2/docker/vika

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

# 一键启动
docker-compose up -d

内存占用还是比较高的

运行

在浏览器中输入 http://群晖IP:7088 就能看到主界面

根据机器的性能不同,您可能需要等待几分钟才能启动所有服务,老苏差不多等了有 5 分钟

缺省用户名为 admin@apitable.com ,密码为 Apitable2022

接下来创建空间,创建表单

不能自动识别系统语言版本,需要自己设置,在左下角找到 My Settings

Preferences –> Language 中选择 简体中文

界面会自动刷新,刷新之后就是中文了

随便点了点,总能看到这样的页面,毕竟还是阿尔法版

功能大家慢慢摸索吧,老苏没找到中文的使用手册,也许再等等就有了

多容器折腾记录

升级 docker-compose

因为是多容器,所以全程使用命令行安装,但是在安装前,需要确认下你群晖上 docker-compose 的版本

1
2
3
4
5
# 检测 docker 版本
docker -v

# 检测 docker-compose 版本
docker-compose -v

docker-compose 如果低于 1.29.0,启动后日志中会出现 depends_on condition "service_completed_successfully" is invalid. 错误

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Creating network "vika_apitable" with driver "bridge"
Traceback (most recent call last):
File "docker-compose", line 3, in <module>
File "compose/cli/main.py", line 80, in main
File "compose/cli/main.py", line 192, in perform_command
File "compose/metrics/decorator.py", line 18, in wrapper
File "compose/cli/main.py", line 1165, in up
File "compose/cli/main.py", line 1161, in up
File "compose/project.py", line 702, in up
File "compose/parallel.py", line 99, in parallel_execute
File "compose/parallel.py", line 48, in parallel_execute_watch
File "compose/parallel.py", line 173, in parallel_execute_iter
File "compose/parallel.py", line 222, in feed_queue
File "compose/project.py", line 694, in get_deps
File "compose/service.py", line 761, in get_dependency_configs
ValueError: depends_on condition "service_completed_successfully" is invalid.
[31897] Failed to execute script docker-compose

原因很简单, service_completed_successfullydocker-compose1.29.0 之后才引入的,显然老苏的 DSM6 上不行,要继续只能想办法对 docker-compose 升级,但群晖的官方套件找不到可升级的版本

下面的操作是不是有风险老苏并不太清楚,但是建议你在升级前先备份 /var/packages/Docker/target/usr/bin/docker-compose,不管放到哪里,给自己一个后悔的机会总是没错的

1
2
# 老苏给随便丢到了 vika 目录
cp /var/packages/Docker/target/usr/bin/docker-compose /volume2/docker/vika

然后老苏尝试着用下面的命令对 docker-compose 升级

可以升级到最新的 v2.16.0 版,但下面的命令只升级到了 v2.7.0

1
2
3
4
5
# 独立下载和安装 Compose
curl -sSL https://github.com/docker/compose/releases/download/v2.7.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

# 下不动价加个代理
curl -sSL https://ghproxy.com/github.com/docker/compose/releases/download/v2.7.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

安装之后,再次检查 docker-compose 版本

开始安装

官方提供了所需要的文件,只需按部就班就可以了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 新建文件夹 vika 和 子目录
mkdir -p /volume2/docker/vika/.data/{minio/{data,config},mysql,rabbitmq,redis}

# 进入 vika 目录
cd /volume2/docker/vika

# 下载安装文件包
curl -sSL https://github.com/apitable/apitable.github.io/releases/latest/download/docker-compose.tar.gz -o docker-compose.tar.gz

# 下不动就加个代理试试
curl -sSL https://ghproxy.com/github.com/apitable/apitable.github.io/releases/latest/download/docker-compose.tar.gz -o docker-compose.tar.gz

# 解压缩
tar -xvzf docker-compose.tar.gz

现在的目录结构

修改 .env 中的端口

为了方便修改先重命名为 txt,改完后记得改回去

老苏改成下面的端口

1
2
NGINX_HTTP_PORT=7088
NGINX_HTTPS_PORT=7443

接下来就可以直接一键启动了,但是在你启动前建议三思而行,尤其是白裙,性能应该都比较一般

1
2
# 一键启动
docker-compose up -d

第一次建议用 docker-compose up 启动,这样能看到详细的日志

CPU 就没低过 80%

基本上都是一直处于满负荷状态

有可能会遇到错误退出

更大的可能性就是直接失联,折腾了几天愣是连首页面都没跑出来

小结

这是老苏写文章专用的小机器,方便你对比一下

老苏觉得在群晖上用用 All In One 的版本就行了,多容器版本就算了吧,用三体的话说,就是不要安装、不要安装!

参考文档

apitable/apitable: 🚀🎉📚 APITable, an API-oriented low-code platform for building collaborative apps and better than all other Airtable open-source alternatives.
地址:https://github.com/apitable/apitable

APITable: vika.cn维格表社区版,地表至强的开源低代码、多维表格工具,Airtable的开源免费替代。
地址:https://gitee.com/apitable/APITable

APITable | Open source no-code database and Airtable alternative
地址:https://apitable.com/

feat: all-in-one Docker image - like Budibase · Issue #230 · apitable/apitable
地址:https://github.com/apitable/apitable/issues/230

群晖安装 Docker Compose
地址:https://www.zbaiquan.cn/archives/qun-hui-an-zhuang-dockercompose