基于PostgreSQL的无代码数据库Teable

在这里插入图片描述

什么是 Teable ?

Teable 是一个基于 Postgres 构建的超快速、实时、专业、开发人员友好的无代码数据库。它使用简单的、类似电子表格的界面来创建复杂的企业级数据库应用程序。通过无代码解锁高效的应用程序开发,摆脱数据安全性和可扩展性的障碍。

在这里插入图片描述

下面👇是官方提供的演示视频,有助于我们理解软件的用途

Teable 功能演示

安装

ghcr.io 镜像下载

官方的镜像没有发布在 docker hub,而是在 ghcr.io,所以直接用命令行来安装。

镜像 teable

软件的更新相当频繁,基本上几个小时就会更新一版,老苏最后折腾的版本为 sha-7e222cb,完整的版本号可能是 1.0.0-alpha+build.268.sha-7e222cb

在这里插入图片描述

SSH 客户端中依次执行下面的命令

# 下载镜像
docker ghcr.io/teableio/teable:latest

如果没有科学上网,很可能会拉不动,可以试试 docker 代理网站:https://dockerproxy.com/,但是会多几个步骤

# 如果拉不动的话加个代理
docker pull ghcr.dockerproxy.com/teableio/teable:latest

# 重命名镜像(如果是通过代理下载的)
docker tag ghcr.dockerproxy.com/teableio/teable:latest ghcr.io/teableio/teable:latest

# 删除代理镜像(如果是通过代理下载的)
docker rmi ghcr.dockerproxy.com/teableio/teable:latest

镜像 teable-db-migrate

版本和 teable 是一样的

在这里插入图片描述

从名字看,应该是初始化数据库中数据的,在任务完成后,会自动停止

在这里插入图片描述

下载过程是一样的,这里就不赘述了

当然代理网站也不是什么时候都好使,有时候也会报错,例如下面👇这样的

Error response from daemon: received unexpected HTTP status: 500 Internal Server Error

所以有一个稳定的科学上网环境还是很重要的

在这里插入图片描述

环境变量文件

316 号开始折腾。一开始官方 standalone 部署方式的 .env 是下面这样

TIMEZONE=UTC

POSTGRES_DB=example
POSTGRES_USER=example
POSTGRES_PASSWORD=standalone_replace_password

PUBLIC_ORIGIN=http://localhost:3000

318 号发现已经变成下面这样了

TIMEZONE=UTC

# Postgres
POSTGRES_HOST=teable-db
POSTGRES_PORT=5432
POSTGRES_DB=example
POSTGRES_USER=example
POSTGRES_PASSWORD=example-password

# App
PUBLIC_ORIGIN=http://127.0.0.1
PRISMA_DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
PUBLIC_DATABASE_PROXY=127.0.0.1:42345

# Need to support sending emails to enable the following configurations
# You need to modify the configuration according to the actual situation, otherwise it will not be able to send emails correctly.
#BACKEND_MAIL_HOST=smtp.teable.io
#BACKEND_MAIL_PORT=465
#BACKEND_MAIL_SECURE=true
#BACKEND_MAIL_SENDER=noreply.teable.io
#BACKEND_MAIL_SENDER_NAME=Teable
#BACKEND_MAIL_AUTH_USER=username
#BACKEND_MAIL_AUTH_PASS=password

所以如果你下决心折腾,需要仔细阅读最新的官方文档。https://github.com/teableio/teable/tree/develop/dockers/examples/standalone

老苏折腾时, env.txt 内容如下

TIMEZONE=Asia/Shanghai

# Postgres
POSTGRES_HOST=teable-db
POSTGRES_PORT=5432
POSTGRES_DB=example
POSTGRES_USER=example
POSTGRES_PASSWORD=standalone_replace_password

# App
PUBLIC_ORIGIN=http://192.168.0.197:3091
PRISMA_DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}
PUBLIC_DATABASE_PROXY=192.168.0.197:42345

# Need to support sending emails to enable the following configurations
# You need to modify the configuration according to the actual situation, otherwise it will not be able to send emails correctly.
#BACKEND_MAIL_HOST=smtp.teable.io
#BACKEND_MAIL_PORT=465
#BACKEND_MAIL_SECURE=true
#BACKEND_MAIL_SENDER=noreply.teable.io
#BACKEND_MAIL_SENDER_NAME=Teable
#BACKEND_MAIL_AUTH_USER=username
#BACKEND_MAIL_AUTH_PASS=password

其中 192.168.0.197 为群晖主机的 IP

docker compose 安装

安装涉及到 3 个容器,所以采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3.9'

services:
  teable:
    image: ghcr.io/teableio/teable:latest
    container_name: teable-app
    restart: always
    ports:
      - '3091:3000'
    volumes:
      - ./data:/app/.assets:rw
    env_file:
      - env.txt
    environment:
      - TZ=${TIMEZONE}
      - NEXT_ENV_IMAGES_ALL_REMOTE=true
    depends_on:
      - teable_db_migrate

  teable_db:
    image: postgres:15
    container_name: teable-db
    restart: always
    ports:
      - '42345:5432'
    volumes:
      - ./db:/var/lib/postgresql/data:rw
    environment:
      - TZ=${TIMEZONE}
      - POSTGRES_DB=${POSTGRES_DB}
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
    healthcheck:
      test: ['CMD-SHELL', "sh -c 'pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}'"]
      interval: 10s
      timeout: 3s
      retries: 3

  teable_db_migrate:
    image: ghcr.io/teableio/teable-db-migrate:latest
    container_name: teable-db-migrate
    environment:
      - TZ=${TIMEZONE}
      - PRISMA_DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@teable_db:5432/${POSTGRES_DB}
    depends_on:
      - teable_db

然后执行下面的命令

# 新建文件夹 teable 和 子目录
mkdir -p /volume1/docker/teable/{data,db}

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

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

# 一键启动
docker-compose --env-file env.txt up -d

在这里插入图片描述

https 协议

必须使用 https 协议访问,否则注册账号时会报 500 Internal Server Error 错误

老苏因为没有 vps 主机,所以目前采用的映射公网的方案主要有 2 种:

  • tailscale + npm 方案

文章传送门:用自定义域名访问tailscale节点

  • cloudflared tunnel + npm 方案

文章传送门:免费的Cloudflared实现外网访问群晖(续)

这两个方案都没有带端口,所以如果你遇到带端口的问题,就不要问老苏了,因为没有环境验证

域名局域网地址备注
teable.laosu.techhttp://192.168.0.197:3091Teable 的访问地址

运行

启动后要稍等一段时间,第一次需要注册账号,所以在浏览器中输入 https://teable.laosu.tech,当然你需要输入自己的域名

在这里插入图片描述

如果使用 http://群晖IP:3091 注册账号,浏览器的开发者工具中,除了会看到 500 Internal Server Error 错误,还会显示 The Cross-Origin-Opener-Policy header has been ignored, because the URL's origin was untrustworthy. It was defined either in the final response or a redirect. Please deliver the response using the HTTPS protocol. You can also use the 'localhost' origin instead.,但是注册成功后,还是可以使用 http://群晖IP:3091 访问的

登录成功后,默认已经有了一个工作空间

会有一个向导,介绍各按钮的功能

在这里插入图片描述

创建数据库

在这里插入图片描述

目前似乎只能建空白数据库

在这里插入图片描述

第一次还是有向导

在这里插入图片描述

单击左侧边栏上的+号以创建一个表

在这里插入图片描述

选择导入 excel

在这里插入图片描述

老苏用金山文档的向导建了一个带数据的文档,《人员信息统计表.xlsx》,下载地址:https://github.com/wbsu2003/synology/raw/main/Teable/人员信息统计表.xlsxx

在这里插入图片描述

开始上传

在这里插入图片描述

选择导入的列

在这里插入图片描述

导入成功之后,就可以操作表单了

在这里插入图片描述

软件默认支持中文,所以入门应该还是比较容易的

参考文档

teableio/teable: ✨ A Super fast, Real-time, Professional, Developer friendly, No code database
地址:https://github.com/teableio/teable

Teable - Postgres-Airtable Fusion
地址:https://teable.io/

teable/dockers/examples/standalone at develop · teableio/teable
地址:https://github.com/teableio/teable/tree/develop/dockers/examples/standalone

  • 13
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨浦老苏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值