跳到主要内容

VPS:在 Linux 上安装 Supabase

本指南是针对以下产品创建的:

(不同供应商的产品可能会有所不同,但主要概念保持不变)

介绍

Supabase 是一个开源的 Postgres 开发平台,提供完整的 Postgres 数据库加上身份验证、即时 API、实时功能和存储,是 Firebase 的开源替代方案。

img

想自己托管这个服务?我们会带你一步步完成安装和配置,同时告诉你所有需要注意的事项。

前提条件

在安装 Supabase 之前,请确保你的主机环境满足以下要求,以保证安装顺利且性能最佳。

硬件最低要求ZAP-Hosting 推荐配置
CPU1 vCPU 核心4 vCPU 核心
内存4 GB8 GB
磁盘空间25 GB25 GB

软件要求所有必要依赖已安装,并运行在支持的操作系统上。请确保你的服务器满足以下条件后再继续安装:

依赖项: GitDocker(引擎和 Compose)

操作系统: 支持 Docker 2 的最新 Ubuntu/Debian 版本

确保所有依赖已安装且操作系统版本正确,以避免安装 Supabase 时出现兼容性问题。

准备工作

在搭建 Supabase 之前,需要先准备好系统环境,包括将操作系统更新到最新版本并安装所有必需依赖。这些准备工作能保证环境稳定,避免安装过程中或之后出现问题。

更新系统

为了确保系统运行最新的软件和安全补丁,建议先执行系统更新。运行以下命令:

sudo apt update && sudo apt upgrade -y

这会确保系统拥有最新的安全更新和软件版本,方便后续操作。

安装依赖

更新完成后,就可以安装依赖了。

Git

Supabase 的代码会通过 GitHub 下载,因此需要先安装 Git。运行:

sudo apt install git-all

Docker

Supabase 会通过 Docker 容器部署和运行,因此需要先安装 Docker。运行:

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

关于 Docker 的完整安装流程和使用方法,请参考我们的 Docker 指南。

安装

满足所有要求并完成准备后,就可以开始安装 Supabase 了。

拉取 Supabase 仓库,创建专用项目目录,并复制 Docker 资源和示例环境文件到该目录。

git clone --depth 1 https://github.com/supabase/supabase
mkdir supabase-project

cp -rf supabase/docker/* supabase-project
cp supabase/docker/.env.example supabase-project/.env

进入项目目录,拉取最新容器镜像,并以后台模式启动服务。

cd supabase-project
docker compose pull
docker compose up -d

img

现在你可以通过 http://<your-ip>:8000 访问 Supabase Studio。系统会要求输入用户名和密码,默认凭据为:

  • 用户名:supabase
  • 密码:this_password_is_insecure_and_should_be_updated

img

默认凭据

你的应用目前使用默认凭据运行。请尽快按照下面的说明保护你的服务。

配置

切勿使用默认或示例值部署。请替换所有占位符为强壮且唯一的密钥,检查配置是否符合你的安全需求,并重启所有服务以应用更改。

在暴露任何服务前,先生成安全的 API 密钥。首先选择一个 40 字符的 JWT 密钥。你可以使用示例值,也可以自定义。请将此密钥安全地保存在本地,切勿泄露或提交到版本控制。使用该密钥生成 JWT,然后根据 Supabase 文档中的表单生成 anon 和 service API 密钥:https://supabase.com/docs/guides/self-hosting/docker#generate-api-keys

运行表单两次以生成两个密钥。然后更新你的 ./docker/.env 文件:

  • ANON_KEY:anon 密钥
  • SERVICE_ROLE_KEY:service 密钥

更新 ./docker/.env 中的必填密钥。以下值必须设置才能正常运行:

  • POSTGRES_PASSWORDpostgres 角色密码
  • JWT_SECRET:PostgREST 和 GoTrue 使用的密钥
  • SITE_URL:你站点的基础 URL
  • SMTP_*:邮件服务器凭据
  • POOLER_TENANT_ID:Supavisor 连接池使用的租户 ID

上线前请用新凭据保护 Dashboard。编辑 ./docker/.env

  • DASHBOARD_USERNAME:Dashboard 用户名
  • DASHBOARD_PASSWORD:Dashboard 密码

你也可以在 ./docker/volumes/api/kong.yml 中定义多个 Dashboard 用户:

basicauth_credentials:
- consumer: DASHBOARD
username: user_one
password: password_one
- consumer: DASHBOARD
username: user_two
password: password_two

如果想让 Dashboard 在非 localhost 环境下完整运行,请在 ./docker/.env 中设置 SUPABASE_PUBLIC_URL 为你访问 Dashboard 的 URL 或 IP。

修改配置后,重启服务应用更改:

docker compose down
docker compose up -d

总结及更多资源

恭喜!你已经成功在 VPS 上安装并配置了 Supabase。我们还推荐你查看以下资源,能为你的服务器配置提供更多帮助和指导:

有具体问题这里没覆盖?欢迎随时联系我们的支持团队,我们每天都在线,随时为你服务!🙂