Supabase 自托管部署实践

发布于:2024-06-29 ⋅ 阅读:(18) ⋅ 点赞:(0)

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 都能够提供可靠的支持和强大的功能。