D: 🚀 Supabase는 오픈소스 Firebase 대체제로, PostgreSQL 기반의 실시간 데이터베이스, 인증, 스토리지 등을 제공합니다. 클라우드 서비스를 사용하는 대신 직접 서버에 구축하면 비용 절감과 커스터마이징이 가능하죠! 이 가이드에서는 Docker로 Supabase 설치부터 API 도메인 연결까지 단계별로 설명합니다.
🔧 1. 준비 사항
- 서버 환경: Ubuntu 20.04 LTS 이상 (다른 Linux도 가능)
- Docker & Docker Compose 설치 완료
- 도메인 (예:
api.yourdomain.com
) - 기본적인 CLI 사용 경험
💡 TIP: Docker 설치가 안 되었다면 아래 명령어로 간단히 설치하세요!
sudo apt-get update && sudo apt-get install docker.io docker-compose
🐳 2. Supabase Docker 설치
Supabase는 공식 Docker Compose 파일을 제공합니다.
-
저장소 클론:
git clone https://github.com/supabase/supabase cd supabase/docker
-
환경 설정:
.env
파일을 수정해 주요 설정을 변경합니다.POSTGRES_PASSWORD=강력한비밀번호 JWT_SECRET=랜덤시크릿키 SITE_URL=https://yourdomain.com
-
실행:
docker-compose up -d
⏳ 약 2~3분 뒤
http://서버IP:3000
으로 접속해 Studio(관리자 페이지) 확인!
🌐 3. API 도메인 연결 (Nginx 리버스 프록시)
Supabase API(http://서버IP:8000
)를 api.yourdomain.com
으로 연결해보죠.
-
Nginx 설치:
sudo apt install nginx
-
설정 파일 생성:
/etc/nginx/sites-available/supabase-api
에 아래 내용 추가:server { listen 80; server_name api.yourdomain.com; location / { proxy_pass http://localhost:8000; proxy_set_header Host $host; } }
-
심볼릭 링크 & 재시작:
sudo ln -s /etc/nginx/sites-available/supabase-api /etc/nginx/sites-enabled/ sudo systemctl restart nginx
-
HTTPS 적용 (Certbot):
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d api.yourdomain.com
🔥 4. 필수 보안 설정
- 방화벽:
ufw
로 22, 80, 443 포트만 허용sudo ufw allow 22/tcp sudo ufw enable
- PostgreSQL 암호화:
supabase/docker/volumes/db
에서 SSL 설정 추가 - API Rate Limit: Nginx에
limit_req_zone
설정 적용
💡 5. 문제 해결 팁
- 503 에러: Docker 컨테이너가 실행 중인지 확인
docker ps
- JWT 오류:
.env
의JWT_SECRET
이 변경되지 않았는지 확인 - 도메인 연결 실패: DNS 설정이 올바른지 확인 (
dig api.yourdomain.com
)
🎯 마무리
이제 https://api.yourdomain.com
으로 Supabase API를 사용할 수 있습니다!
- 프론트엔드 연결 예시:
const supabase = createClient( "https://api.yourdomain.com", "public-anon-key" );
✨ 직접 호스팅한 Supabase로 자유도 높은 백엔드를 구축해보세요.
궁금한 점은 댓글로 남겨주시면 답변드립니다!