반응형

https://supabase.com/docs/guides/self-hosting/docker

 

Self-Hosting with Docker | Supabase Docs

Learn how to configure and deploy Supabase with Docker.

supabase.com

 

* supabase 레포지토리 다운로드

# 홈 디렉토리로 이동
cd ~

# Supabase 다운로드
git clone --depth 1 https://github.com/supabase/supabase

# Docker 폴더로 이동
cd supabase/docker
cp .env.example .env

vi .env 후에 아래 항목 수정
# 홈서버 DNS + 외부 접근 URL
SITE_URL=https://mydomain
SUPABASE_PUBLIC_URL=https://mydomain

#API URL 설정 (가장 중요 ⭐(gemini만언급):
API_EXTERNAL_URL=http://mydomain

# 보안 필수 키
POSTGRES_PASSWORD=<<openssl rand -hex 32>>
JWT_SECRET=<<openssl rand -base64 32>>
SECRET_KEY_BASE=<랜덤 64자>

# 기본 관리자 계정
DASHBOARD_USERNAME=admin
DASHBOARD_PASSWORD=<원하는 비번>

* Airplay 관련 5000번대 포트 관련 수정사항 필요없음
처음에 검토할 때에는 mac os 의 airplay가 사용하는 5000번대 포트와 s3 storeage 에서 충돌이 날 수 있어서 airplay 를 끄거나 yml 파일을 수정해야 하는 줄 알았는데 yml 파일 확인 결과 그럴 필요없었음

* POSTGRES_PASSWORD 는 특수문자가 들어가면 안됨.
처음에 특수문자를 넣었고 문제가 발생해서 나중에 특수문자 없도록 바꾸었으나 계속되는 패스워드 오류
지지고 볶고 별짓 다했지만 결국 전체 삭제하고 다시 설치해서 해결했음

*Supabase Docker 구동

docker compose pull
docker compose up -d

* 서버 컴퓨터에서 Supabase Studio 로그인 테스트 브라우저에서 http://localhost:8000 접속

* cloudflare zero trust tunnel 연결설정

1. config.yml 파일 수정

vi ~/.cloudflared/config.yml

# 아래 항목 추가
# 1. Supabase API Gateway (필수) - 외부 앱/웹 연동용
  - hostname: supabase.mydomain.com
    service: http://localhost:8000

# 2. Supabase Studio (선택/권장하지않음) - 관리자 대시보드 접속용
  - hostname: studio.mydomain.com
    service: http://localhost:3000
    
# 반드시 이 줄이 맨 마지막에 있어야 합니다!
  - service: http_status:404

2. Cloudflare DNS 라우팅 연결

# 1. API 도메인 연결
cloudflared tunnel route dns <터널이름> supabase.mydomain.net

# 2. Studio 도메인 연결 (위에서 config.yml에 추가했다면)
cloudflared tunnel route dns <터널이름> studio.mydomain.net

3. Cloudflared 재시작

#brew 설치한경우
brew services restart cloudflared

#launch daemon 사용하는 경우
sudo launchctl unload /Library/LaunchDaemons/com.cloudflare.cloudflared.plist
sudo launchctl load /Library/LaunchDaemons/com.cloudflare.cloudflared.plist

 

4. 확인

# Studio 
https://supabase.mydomain.com

# REST API
https://supabase.mydomain.com/rest/v1

# Storage API
https://supabase.mydomain.com/storage/v1

 

반응형

+ Recent posts