基于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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/471084.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JAVA EE (计算机是如何工作的)

学前注意事项 出去面试的时候java岗位不需要懂前端(会少量讲解) 但是我们做项目的时候多少回用到一些前端的东西 1.什么是计算机 1.1前情提要 不仅仅只有电脑是计算机 计算机还不仅仅是电脑手机和平板 路由器 智能洗衣机 刷脸打卡机都可以说是计算…

【机器学习-06】线性回归(LinearRegression)的手动建模实验

在此前的两节课程中,我们已经介绍了关于线性回归模型的基本概念,并且介绍了一个多元线性回归的损失函数求解方法——最小二乘法。在有了这一些列理论推导之后,本节我们将结合【机器学习-01】机器学习一般建模流程,并首先尝试在一个…

2024.3.9|第十五届蓝桥杯模拟赛(第三期)

2024.3.9|十五届蓝桥杯模拟赛(第三期) 第一题 第二题 第三题 第四题 第五题 第六题 第七题 第八题 第九题 第十题 心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C学习笔记,常言道,不积跬步无以至千里&…

ubuntu20.04_PX4_1.13

说在前面:(最好找一个干净的Ubuntu系统)如果配置环境的过程中出现很多编译的错误或者依赖冲突,还是建议新建一个虚拟机,或者重装Ubuntu系统,这样会避免很多麻烦💐 , 安装PX4 1.13.2 …

SpringCloud Gateway工作流程

Spring Cloud Gateway的工作流程 具体的流程: 用户发送请求到网关 请求断言,用户请求到达网关后,由Gateway Handler Mapping(网关处理器映射)进行Predicates(断言),看一下哪一个符合…

室友打团太吵?一条命令断掉它的WiFi

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:更多干货,请关注专栏《网络安全自学教程》 ARP欺骗原理 1、arpspoof实现ARP欺骗1.1、主机探测1.2、欺骗…

深入理解Java并发工具包中的CyclicBarrier

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 在Java的并发编程世界中,协调和管理多个线程的执行是一项复杂而关键的任务。为了简化这一挑战,Java并发包…

GPT模型支持下的Python-GEE遥感云大数据分析、管理与可视化技术及多领域案例应用

随着航空、航天、近地空间等多个遥感平台的不断发展,近年来遥感技术突飞猛进。由此,遥感数据的空间、时间、光谱分辨率不断提高,数据量也大幅增长,使其越来越具有大数据特征。对于相关研究而言,遥感大数据的出现为其提…

ubuntu 如何使用阿里云盘

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…

算法---二分查找练习-2(寻找旋转排序数组中的最小值)

寻找旋转排序数组中的最小值 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址:点这里 2. 讲解算法原理 首先,检查数组的最后一个元素是否大于第一个元素。如果是,说明数组没有进行旋转,直接返回第一个元素作为最小值…

yolo中RANK、LOACL_RANK以及WORLD_SIZE的介绍

在YOLO系列算法的分布式训练中,"rank"、"local-rank" 和 "world_size" 是三个相关的概念,它们在协调和管理分布式训练过程中起着关键作用。 1. 名词解释 Rank(排名):在分布式训练中&…

Django单表数据库操作

单表操作 测试脚本 当你只想测试django某一个py文件的内容,可以不用书写前后端的交互,直接写一个测试脚本即可 单表删除 数据库操作方法: 1.all():查询所有的数据 2.filter():带有过滤条件的查询 3.get():直接拿数据对象,不存在则报错 4.first():拿queryset里面的第一个元素…

个人商城系统开源(配置支付宝支付2)

原文地址:个人商城系统开源(配置支付宝支付2) - Pleasure的博客 下面是正文内容: 前言 在上一篇文章中我曾提到过关于网站支付宝支付的方法,接下来我们来介绍第二种。 个人博客地址:个人商城系统开源&…

xinference - 大模型分布式推理框架

文章目录 关于 xinference使用1、启动 xinference设置其他参数 2、加载模型3、模型交互 其它报错处理 - transformer.wte.weight 关于 xinference Xorbits Inference(Xinference)是一个性能强大且功能全面的分布式推理框架。 可用于大语言模型&#xff…

【Flask开发实战】配置python虚拟环境

python 虚拟环境是一种管理 Python 项目依赖的工具,它可以帮助你在不同的项目中使用不同的 Python 版本和库,避免了不同项目之间依赖冲突的问题。虚拟环境相当于一个抽屉,在这个抽屉中安装的任何软件包都不会影响到其他抽屉。并且在项目中&am…

线上教学平台|基于Spring Boot+ Mysql+Java+ B/S结构的线上教学平台设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java,ssm,springboot的平台设计与实现项目系统开发资源(可…

MapReduce框架原理

目录 前言一、InputFormat数据输入1.1 切片与MapTask并行度决定机制1.1.1 问题引出1.1.2 MapTask并行度决定机制1.1.3 数据切片与MapTask并行度决定机制 1.2 FileInputFormat切片机制1.2.1 切片大小参数配置1.2.2 切片机制 1.3 TextInputFormat1.3.1 FileInputFormat实现类1.3.…

ASPICE规范之系统追溯矩阵

系统追溯矩阵的需求来自 ISO26262 举例在描述系统追溯矩阵时:客户需求->系统需求;系统需求->客户需求;系统需求->软件需求;系统需求->硬件需求

Ollama 运行 Cohere 的 command-r 模型

Ollama 运行 Cohere 的 command-r 模型 0. 引言1. 安装 MSYS22. 安装 Golang3. Build Ollama4. 运行 command-r 0. 引言 Command-R Command-R 是一种大型语言模型,针对对话交互和长上下文任务进行了优化。它针对的是“可扩展”类别的模型,这些模型在高…

(简单成功)Mac:命令设置别名

案例:给"ls -l"命令,设置别名通过”ll“快速访问 1、在项目根目录底下查看有无.bash_profile文件,注意这个是个隐藏文件,需要使用ls -a命令查看: 没有.bash_profile新建一个文件, 在最后添加一行…