목. 8월 14th, 2025

D: 🚀 Supabase를 직접 호스팅하고 싶으신가요?
이번 가이드에서는 Docker를 활용해 Supabase를 셀프 호스팅하는 방법을 단계별로 상세히 설명드립니다. API 도메인 설정까지 완벽하게 마스터해보세요!


🔍 왜 Supabase 셀프 호스팅을 선택해야 할까?

  1. 데이터 주권 확보 🔒
    • 클라우드 서비스 의존성 제거
    • 민감한 데이터를 내 서버에서 직접 관리
  2. 비용 효율성 💰
    • 대량 트래픽 시 유리한 가격 구조
    • 프로젝트 규모 확장 시 유연한 대응 가능
  3. 커스터마이징 🛠️
    • 인프라 환경 자유롭게 구성
    • 특정 버전 고정 가능

💡 실제 사례: 스타트업 ‘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

🔥 트러블슈팅 핵심 팁

  1. 포트 충돌 문제

    • netstat -tulnp로 사용 중인 포트 확인
    • docker-compose.yml에서 포트 변경 가능
  2. 저장소 권한 오류 📂

    sudo chown -R 1000:1000 ./volumes
  3. 성능 튜닝 🚀

    • PostgreSQL 설정 조정:
      ALTER SYSTEM SET shared_buffers = '2GB';
      ALTER SYSTEM SET effective_cache_size = '6GB';

📊 모니터링 설정

  • Prometheus + Grafana 대시보드:
    # docker-compose.yml에 추가
    prometheus:
    image: prom/prometheus
    ports:
      - "9090:9090"
    grafana:
    image: grafana/grafana
    ports:
      - "3000:3000"

🎯 최적화 추가 단계

  1. 백업 자동화

    # 매일 3AM 자동 백업 예시
    0 3 * * * docker exec supabase-db pg_dumpall -U postgres > /backups/supabase_$(date +\%Y\%m\%d).sql
  2. CDN 연동
    Cloudflare 설정으로 정적 자츠 가속화

  3. 이메일 서비스
    SMTP 설정을 통한 회원가입 인증 메일 발송 활성화


💡 성공적인 운영을 위한 조언

  • 주기적으로 supabase/cli로 업데이트 확인
  • 커뮤니티 슬랙 채널 가입으로 실시간 지원 받기
  • 스테이징 환경 구성 후 변경사항 테스트

성공 사례: B2B SaaS 기업 ‘C사’는 셀프 호스팅 후 API 응답 속도가 320ms → 89ms로 개선되었습니다.

이제 여러분의 손으로 완벽한 Supabase 인프라를 구축해보세요! 추가 질문은 댓글로 남겨주시면 신속히 답변드리겠습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다