Skip to content

Instantly share code, notes, and snippets.

@real-jiakai
Last active May 16, 2023 02:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save real-jiakai/868f3a1c0aed5493d1c4dafc27d5cff8 to your computer and use it in GitHub Desktop.
Save real-jiakai/868f3a1c0aed5493d1c4dafc27d5cff8 to your computer and use it in GitHub Desktop.
supabase selfhosted notes
  • 假设你有一个二级域名example.com托管至cloudflare。
# Get the code
git clone --depth 1 https://github.com/supabase/supabase

# Go to the docker folder
cd supabase/docker

# Copy the fake env vars
cp .env.example .env
// 可访问key generator地址,粘贴JWT Secret获得
POSTGRES_PASSWORD=xxxxxx
// 同理,刷新一下网页,粘贴新的JWT Secret
JWT_SECRET=xxxxxx
// Preconfigured Payload选择ANON_KEY,再点击Generate JWT,粘贴Generated Token
ANON_KEY=xxxxxx
// Preconfigured Payload选择SERVICE_KEY,再点击Generate JWT,粘贴Generated Token
SERVICE_ROLE_KEY=xxxxxx

// supabase api的url(不妨设置为https://api.supabase.example.com)
API_EXTERNAL_URL=xxxxxx

// studio的设置默认组织和项目
STUDIO_DEFAULT_ORGANIZATION=xxxxxx
STUDIO_DEFAULT_PROJECT=xxxxxx

// supabase studio的url(不妨设置为https://supabase.exmaple.com)
SUPABASE_PUBLIC_URL=xxxxxx
  • 设置volumes/api/kong.yml文件。
# 这边的第一处的key就是.env文件中的ANON_KEY的值
# 这边的第二处的key就是.env文件中的SERVICE_ROLE_KEY的值
consumers:
  - username: anon
    keyauth_credentials:
      - key: xxxxxx
  - username: service_role
    keyauth_credentials:
      - key: xxxxxx
  • 根据 docker-compose.yml 文件中的定义启动并运行 Docker 容器。
docker compose up -d
  • 在cloudflare中添加2条A记录。

一条记录名为supabase,记录值为运行supabase的vps的ip地址(可以开启cloudflare的小云朵)。

另一条记录名为api.supabase,记录值为运行supabase的vps的ip地址(不可以开启cloudflare的小云朵,cloudflare多级子域名保护要花钱。详情见:https://developers.cloudflare.com/ssl/edge-certificates/additional-options/total-tls/error-messages/)。

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
  • 编辑/etc/caddy/Caddyfile,添加以下内容
supabase.gujiakai.top {
    basicauth {
        username passwd
    }
    reverse_proxy localhost:3000
}

api.supabase.gujiakai.top {
	reverse_proxy localhost:8000
}

这段配置的解释:

image

注:username可替换为你心仪的用户名,passwd可在vps上输入caddy hash-password,对明文密码进行哈希处理,复制粘贴哈希处理过后的密码即可。

如以下便是明文密码12345678,经caddy哈希处理后的密码。

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment