Supabase 自托管部署实践

Supabase 是 Firebase 的开源替代品。使用 Postgres 数据库、身份验证、即时 API、边缘函数、实时订阅、存储和向量嵌入来启动您的项目。

Supabase介绍

Supabase 是一个开源的后端即服务(BaaS)平台,提供了一系列工具和服务,帮助开发者快速构建和部署应用程序。以下是 Supabase 的一些典型应用场景:

  1. 实时数据同步和协作应用
    Supabase 提供了实时功能,可以让开发者轻松实现数据同步和实时更新,这对于需要协作和同步功能的应用程序非常有用。例如:

聊天应用:用户之间的消息可以实时同步。
协作编辑器:多个用户可以同时编辑文档,并实时看到对方的修改。
实时仪表盘:数据变化可以即时反映在用户界面上。
2. Web 和移动应用的后端
Supabase 提供了全面的数据库管理、身份验证和存储解决方案,适合构建各种类型的 Web 和移动应用后端。例如:

电商平台:管理用户、商品、订单等数据。
社交网络:处理用户资料、帖子、评论、点赞等功能。
内容管理系统 (CMS):存储和管理文章、媒体文件、用户权限等。
3. 数据分析和可视化
Supabase 的 PostgreSQL 数据库具有强大的数据分析功能,适合需要处理和分析大量数据的应用。例如:

业务分析工具:收集和分析用户行为数据,生成报表和图表。
数据可视化应用:展示复杂的数据集,通过图表和仪表盘提供洞察。
4. 物联网 (IoT) 应用
Supabase 的实时功能和高效的数据处理能力使其适合物联网应用,这些应用需要处理大量传感器数据并提供实时反馈。例如:

智能家居系统:管理和监控各种家庭设备的状态和数据。
工业监控系统:收集和分析设备的运行数据,实时监控设备状态。
5. 开发和测试环境
Supabase 的易用性和快速部署能力使其成为开发和测试环境的理想选择。例如:

快速原型设计:开发者可以快速搭建后端,验证想法和功能。
测试环境:为不同的应用版本或功能提供独立的测试后端。
6. 教育和培训
Supabase 的开源特性和全面功能使其适合作为教育和培训工具。例如:

编程课程:教授学生如何构建全栈应用。
技术培训:企业可以使用 Supabase 为员工提供后端开发培训。

一、安装环境准备与安装包准备

如果服务器能连接国外网络,可以安装官网进行部署,参考:https://supabase.com/docs/guides/self-hosting/docker
本文是通过本地代理远程制作私有镜像部署。

1.环境准备:

Docker 版本:Docker version 24.0.7(注意:Docker 版本过低可能导致服务不能正常启动,建议升级Docker版本)。
操作系统:Linux x86_64 x86_64 GNU/Linux。

2.安装包

github 源码地址:https://github.com/supabase/supabase
安装的时候需要连接国外镜像仓库,所以需要能科学上网连到国外仓库下载好镜像,打包上传到服务器,一共12个镜像,总共4G左右的大小。
在这里插入图片描述
镜像制作命令:

导出镜像:
docker save -o kong.tar 镜像名称
导入镜像
docker load -i supabase.tar

二、安装步骤

1.解压安装包

unzip supabase-master.zip

2.修改配置并运行

进入docker目录

cd supabase-master/docker

拷贝配置文件

cp .env.example .env

从本地导入镜像

docker-compose pull

启动服务

docker-compose up -d

3.验证服务

web 地址登录:安装服务的ip:8000
默认用户名:supabase
密码:this_password_is_insecure_and_should_be_updated

4.修改安全设置

参考官网进行修改:https://supabase.com/docs/guides/self-hosting/docker#update-secrets
4.1 生成key,
替换:JWT_SECRET、ANON_KEY、SERVICE_ROLE_KEY、DASHBOARD_USERNAME、DASHBOARD_PASSWORD
在这里插入图片描述
在这里插入图片描述
4.2 修改配置文件.env

cd supabase-master/docker/
按照官网文档,生成key,修改.evn 配置文件
停止服务:docker-compose down
注意:web ui密码、数据库密码修改成强密码
重启服务
docker-compose down
docker-compose up -d

5.pgsql远程登录配置
进入安装目录的/docker/volumes/db/data目录下,修改 postgresql.conf和pg_hba.conf 文件,如下:
++++++++++++++远程登录配置++++++++++++++++++
远程连接postgresql问题.连接不上 
 
默认下,POSTGRESQL只接受本地服务,要接受远程服务,需改2个地方 
1. vim /opt/module/supabase-master/docker/volumes/db/data/postgresql.conf中的listen_address改为‘*’
2. vim /opt/module/supabase-master/docker/volumes/db/data/pg_hba.conf 增加 1行远程的规则:

host all all 0.0.0.0/0 md5
3.重启服务
docker-compose down
docker-compose up -d

4.修改postgres默认密码
4.1# 超级管理员登录命令:
docker exec -it $(docker ps | grep supabase-db | awk '{print $1}') psql  -U supabase_admin -d postgres;
4.2 # 修改默认postgres密码
ALTER USER postgres WITH PASSWORD 'xxddfssffada';
4.3 # 修改密码之后验证登录
docker exec -it $(docker ps | grep supabase-db | awk '{print $1}') psql  -U postgres -d postgres -W; 
4.4 重启服务
docker-compose down
docker-compose up -d
4.5 远程连接工具登录验证
使用postgres数据库,使用postgres用户登录,页面创建表默认在public下面,如下图

在这里插入图片描述

三、Supabase 基本使用

创建表:
在这里插入图片描述
表编辑:
在这里插入图片描述
SQL查询:
在这里插入图片描述

四、总结

Supabase 作为一个功能强大且易用的 BaaS 平台,适用于广泛的应用场景。它提供的实时数据同步、全面的数据库管理、身份验证和存储解决方案,使开发者能够快速构建和部署高质量的应用程序。不论是实时协作应用、Web 和移动应用后端、数据分析、物联网应用,还是开发测试环境和教育培训,Supabase 都能够提供可靠的支持和强大的功能。

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

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

相关文章

刷代码随想录有感(122):动态规划——最长子序列

题干&#xff1a; 代码&#xff1a; class Solution { public:int lengthOfLIS(vector<int>& nums) {if(nums.size() < 1)return nums.size();vector<int>dp(nums.size(), 1);int res 0;for(int i 1; i < nums.size(); i){for(int j 0; j < i; j)…

Windows 10,11 Server 2022 Install Docker-Desktop

docker 前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 docker-compose Compose 是用于定义和运行…

14-10 AIGC 项目生命周期——第一阶段

生成式 AI 项目生命周期的整个过程类似于从范围、选择、调整和对齐/协调模型以及应用程序集成开始的顺序依赖过程。流程表明每个步骤都建立在前一步的基础上。有必要了解每个阶段对于项目的成功都至关重要。 下面的流程图重点介绍了生成式 AI 项目生命周期的第一阶段 1 — “范…

[数据集][目标检测]水面垃圾水面漂浮物检测数据集VOC+YOLO格式3749张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;3749 标注数量(xml文件个数)&#xff1a;3749 标注数量(txt文件个数)&#xff1a;3749 标注…

问题-小技巧-专业版Win11怎么启动电脑的休眠模式?

专业版Win11怎么启动电脑的休眠模式&#xff1f; powercfg -a powercfg -hibernate on 启用管理员面板依次输入上述命令就可以了。

Vue基础用法

Vue 定义&#xff1a; 是一套前端框架&#xff0c;免除原生JS中的DOM操作&#xff0c;简化书写&#xff0c;基于MVVM&#xff08;Model-View-ViewModel&#xff09;思想&#xff0c;实现数据的双向绑定&#xff0c;将编程的关注点放在数据上。 图来自黑马程序员网课 常用指令&…

性能测试中的场景设计和测试执行

假设一个内部系统要求响应时间在 3s 以内&#xff0c;支持最大用户数为4万。根据二八原则&#xff0c;80%用户在20%时间使用系统(4w80%)/(24h20%)≈1.9点击/秒。并发数TPS&#xff08;运行时间思考时间&#xff09;1.9&#xff08;30.50.330.50.30.53&#xff09;21。 注意&am…

大数据学习之Clickhouse

Clickhouse-23.2.1.2537 学习 一、Clickhouse概述 clickhouse 官网网址&#xff1a;https://clickhouse.com/ ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。 OLTP(联机事务处理系统)例如mysql等关系型数据库&#xff0c;在对于存储小数据量的时候&#xff…

【论文复现|智能算法改进】基于自适应动态鲸鱼优化算法的路径规划研究

目录 1.算法原理2.改进点3.结果展示4.参考文献5.代码获取 1.算法原理 SCI二区|鲸鱼优化算法&#xff08;WOA&#xff09;原理及实现【附完整Matlab代码】 2.改进点 非线性收敛因子 WOA 主要通过控制系数向量 A 来决定鲸鱼是搜索猎物还是捕获猎物&#xff0c;即系数向量 A 可…

C语言部分复习笔记

1. 指针和数组 数组指针 和 指针数组 int* p1[10]; // 指针数组int (*p2)[10]; // 数组指针 因为 [] 的优先级比 * 高&#xff0c;p先和 [] 结合说明p是一个数组&#xff0c;p先和*结合说明p是一个指针 括号保证p先和*结合&#xff0c;说明p是一个指针变量&#xff0c;然后指…

适用于高海拔地区的工业路由器产品

1、西藏背景 西藏&#xff0c;这个位于中国西南部的神秘之地&#xff0c;以其雄伟壮观、神奇瑰丽的自然风光和深厚的文化底蕴&#xff0c;被无数人视为心中的圣地。这里属于高原性气候&#xff0c;具有气温低、气压低&#xff0c;降水少&#xff0c;生态环境十分恶劣。西藏被誉…

Coze搭建《测测你的本命宠物》

前言 本文讲解如何从零开始&#xff0c;使用扣子平台去搭建《测测你的本命宠物》 《测测你的本命宠物》&#xff1a;测测你的本命宠物 - 扣子 AI Bot (coze.cn) 欢迎大家去体验一下&#xff01;&#xff01;&#xff01; 正文 接下来我们开始讲解制作这个bot的流程吧&#…

【后端面试题】【中间件】【NoSQL】MongoDB的优点和分片机制

为什么要用MongoDB 两个关键&#xff1a;灵活性和横向扩展能力 MongoDB是灵活的文档模型&#xff0c;也就是说&#xff0c;如果预计我的数据可以被一个稳定的模型来描述&#xff0c;会倾向于使用MySQL等关系型数据库。而一旦我认为我的数据模型会经常变动&#xff0c;比如我很…

Jenkins接口自动化项目的工程创建

jenkins的下载安装 jenkins下载的官网地址 https://www.jenkins.io/download/ java环境变量的配置下载 jenkins是用java语言编写的所以要配置java环境 需要安装java的JDK 推荐安装JDK17(https://blog.csdn.net/wochunyang/article/details/138520209) JDK17的下载地址 ht…

CS144 Lab3 TCPSender复盘

一.基础概念 1.TCPSender在TCPSocket中的地位与作用 Lab0中实现了基于内存模拟的流控制-字节流&#xff08;ByteStream&#xff09;&#xff0c;底层使用std::deque实现&#xff0c;根据最大容量Capacity进行容量控制。个人理解它相当于应用层的输入输出缓存区&#xff0c;用户…

什么是电航空插头插座连接器有什么作用

航空插头概述 定义与功能 航空插头&#xff0c;又称航空连接器&#xff0c;是一种专门用于航空领域的电连接器&#xff0c;因其最初在航空领域得到广泛应用而得名。航空插头的主要功能是实现电源或信号的连接&#xff0c;尤其适用于芯数较多、结构复杂的线束连接&#xff0c;…

QT在VS环境中使用,控件显示中文乱码解决方法

首先来看乱码显示的效果如下&#xff1a; 上图左侧显示内容为中文&#xff0c;控件对应代码如下&#xff1a; QLabel* UserNameLabel new QLabel(QString("用户名&#xff1a;")); QLabel* NameLabel new QLabel(tr("姓名&#xff1a;"));下面我们对QL…

实现高效全自动印刷:直线模组的智能化应用

目前&#xff0c;直线模组被广泛应用于移载、定位、喷涂、夹取、搬运、点胶、涂胶、封胶、移载、装配、检测测量、切割、上下料、钻孔、焊接、等自动化行业中&#xff0c;尤其是自动印刷行业&#xff0c;跟直线模组也是息息相关的。那么&#xff0c;如何利用直线模组实现全自动…

C++进阶 | [4.3] 红黑树

摘要&#xff1a;什么是红黑树&#xff0c;模拟实现红黑树 红黑树 &#xff0c;是一种 二叉搜索树 &#xff0c;但 在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是 Red 或 Black 。 通过对 任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树…

Web端登录页和注册页源码

前言&#xff1a;登录页面是前端开发中最常见的页面&#xff0c;下面是登录页面效果图和源代码&#xff0c;CV大法直接拿走。 1、登录页面 源代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title>登录</ti…