D: 🚀 Supabase를 직접 호스팅하고 싶으신가요?
이번 가이드에서는 Docker를 활용해 Supabase를 셀프 호스팅하는 방법을 단계별로 상세히 설명드립니다. API 도메인 설정까지 완벽하게 마스터해보세요!
🔍 왜 Supabase 셀프 호스팅을 선택해야 할까?
- 데이터 주권 확보 🔒
- 클라우드 서비스 의존성 제거
- 민감한 데이터를 내 서버에서 직접 관리
- 비용 효율성 💰
- 대량 트래픽 시 유리한 가격 구조
- 프로젝트 규모 확장 시 유연한 대응 가능
- 커스터마이징 🛠️
- 인프라 환경 자유롭게 구성
- 특정 버전 고정 가능
💡 실제 사례: 스타트업 ‘A사’는 월 50만 건 이상의 API 요청으로 인해 셀프 호스팅 전환 후 월 $1,200 절감 효과를 경험했습니다.
🛠️ 준비물 체크리스트
- 최소 사양 서버 (권장):
- CPU: 4코어 이상 - RAM: 8GB 이상 - 저장공간: 50GB SSD (데이터 증가율 고려)
- 필수 소프트웨어:
- Docker 20.10.0+
- Docker Compose 1.29.0+
- Git (저장소 클론용)
🐳 Docker 설치 단계별 가이드
1. 도커 설치 (Ubuntu 예시)
# 기존 버전 제거
sudo apt-get remove docker docker-engine docker.io containerd runc
# 새로 설치
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
# 공식 GPG 키 추가
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 저장소 설정
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 도커 엔진 설치
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
2. 설치 확인
docker --version # Docker 버전 확인
docker run hello-world # 테스트 컨테이너 실행
📦 Supabase 설치 과정
1. 공식 저장소 복제
git clone --depth 1 https://github.com/supabase/supabase
cd supabase/docker
2. 환경 설정 파일 편집
.env
파일 수정 (중요!):
# 주요 설정 예시
POSTGRES_PASSWORD=your_secure_password_here
JWT_SECRET=your_jwt_secret_key
SITE_URL=https://yourdomain.com
ADDITIONAL_REDIRECT_URLS=https://app.yourdomain.com
3. 서비스 시작
docker compose up -d
⚠️ 주의사항:
- 초기 실행 시 5-10분 소요될 수 있음
docker compose logs -f
명령어로 실시간 로그 확인 권장
🌐 도메인 & SSL 설정
Nginx 리버스 프록시 구성 예시
server {
listen 80;
server_name api.yourdomain.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Let’s Encrypt SSL 적용:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d api.yourdomain.com
🔥 트러블슈팅 핵심 팁
-
포트 충돌 문제 ⚡
netstat -tulnp
로 사용 중인 포트 확인docker-compose.yml
에서 포트 변경 가능
-
저장소 권한 오류 📂
sudo chown -R 1000:1000 ./volumes
-
성능 튜닝 🚀
- PostgreSQL 설정 조정:
ALTER SYSTEM SET shared_buffers = '2GB'; ALTER SYSTEM SET effective_cache_size = '6GB';
- PostgreSQL 설정 조정:
📊 모니터링 설정
- Prometheus + Grafana 대시보드:
# docker-compose.yml에 추가 prometheus: image: prom/prometheus ports: - "9090:9090" grafana: image: grafana/grafana ports: - "3000:3000"
🎯 최적화 추가 단계
-
백업 자동화
# 매일 3AM 자동 백업 예시 0 3 * * * docker exec supabase-db pg_dumpall -U postgres > /backups/supabase_$(date +\%Y\%m\%d).sql
-
CDN 연동
Cloudflare 설정으로 정적 자츠 가속화 -
이메일 서비스
SMTP 설정을 통한 회원가입 인증 메일 발송 활성화
💡 성공적인 운영을 위한 조언
- 주기적으로
supabase/cli
로 업데이트 확인 - 커뮤니티 슬랙 채널 가입으로 실시간 지원 받기
- 스테이징 환경 구성 후 변경사항 테스트
✨ 성공 사례: B2B SaaS 기업 ‘C사’는 셀프 호스팅 후 API 응답 속도가 320ms → 89ms로 개선되었습니다.
이제 여러분의 손으로 완벽한 Supabase 인프라를 구축해보세요! 추가 질문은 댓글로 남겨주시면 신속히 답변드리겠습니다.