在ubuntu22.04安装Supabase并配置自动脚本

268 阅读1分钟

JWT_SECRET ANON_KEY SERVICE_ROLE_KEY

这三个值需要从官网自己获取(也可以不改,直接使用脚本中的)

#!/bin/bash
# 检查是否安装Docker
if ! command -v docker &> /dev/null
then
    echo "Docker未安装,正在安装Docker..."
    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
else
    echo "Docker已安装,跳过Docker安装步骤。"
fi

# 克隆Supabase仓库
echo "正在克隆Supabase仓库..."
git clone --depth 1 https://gitee.com/mirrors/supabase.git

# 进入docker目录
cd supabase/docker


# 提示用户输入必要的环境变量
echo "请设置以下环境变量:"

read -p "请输入数据库密码(POSTGRES_PASSWORD): " POSTGRES_PASSWORD
echo
read -p "请输入Dashboard密码(DASHBOARD_PASSWORD): " DASHBOARD_PASSWORD
echo

# 设置静态环境变量,这里也可以从官网获取
JWT_SECRET=j0pax1l852eykhue1yffeps7uwptdrl7xk8lvndz
ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogImFub24iLAogICJpc3MiOiAic3VwYWJhc2UiLAogICJpYXQiOiAxNzE1NTI5NjAwLAogICJleHAiOiAxODczMjk2MDAwCn0.pToNS7MZdTZNlgUdYCUmZCHZNL2nr00iCN6SLnEM6j0
SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogInNlcnZpY2Vfcm9sZSIsCiAgImlzcyI6ICJzdXBhYmFzZSIsCiAgImlhdCI6IDE3MTU1Mjk2MDAsCiAgImV4cCI6IDE4NzMyOTYwMDAKfQ.mE-smIVJLao9bncSJGMMgWTU1QLSH62ZxenROG0Te6o
echo "正在检查当前目录"
echo "当前目录:"
pwd
echo "目录内容:"
ls -la

# 检查并复制.env.example文件
if [ -f .env.example ]; then
    echo "找到.env.example文件,正在创建.env文件..."
    cp .env.example .env
    echo "正在写入环境变量到.env文件..."
    sed -i "s/^POSTGRES_PASSWORD=.*$/POSTGRES_PASSWORD=$POSTGRES_PASSWORD/" .env
    sed -i "s/^DASHBOARD_PASSWORD=.*$/DASHBOARD_PASSWORD=$DASHBOARD_PASSWORD/" .env
    sed -i "s/^JWT_SECRET=.*$/JWT_SECRET=$JWT_SECRET/" .env
    sed -i "s/^ANON_KEY=.*$/ANON_KEY=$ANON_KEY/" .env
    sed -i "s/^SERVICE_ROLE_KEY=.*$/SERVICE_ROLE_KEY=$SERVICE_ROLE_KEY/" .env
    echo "环境变量写入完成。"
else
    echo ".env.example文件不存在,请检查路径和克隆状态"
fi

# 检查kong.yml文件
if [ -f ./volumes/api/kong.yml ]; then
    echo "已找到kong.yml文件,正在修改..."
    sed -i "s/\$SUPABASE_ANON_KEY/$ANON_KEY/" ./volumes/api/kong.yml
    sed -i "s/\$SUPABASE_SERVICE_KEY/$SERVICE_ROLE_KEY/" ./volumes/api/kong.yml
    echo "kong.yml文件修改完成。"
else
    echo "kong.yml文件不存在,请检查路径"
fi


# 启动Supabase
# Pull the latest images
echo "所有环境变量已设置"
echo "正在拉取镜像..."
docker compose pull
echo "镜像拉取完成。"
# Start the services 
echo "正在启动服务..."
# Start the services 
docker compose up -d