설치 가이드 · 6 min read · Sep 13, 2025
우분투 24.04에서 Docker로 Supabase(파이어베이스 대안) 설치하는 방법

Supabase는 세계에서 가장 신뢰받는 관계형 데이터베이스인 PostgreSQL 데이터베이스 위에 구축된 오픈 소스 Firebase 대안입니다. 개발자는 이를 통해 완전한 웹, 모바일 및 AI 애플리케이션을 구축할 수 있습니다. Supabase는 PostgreSQL 데이터베이스, 인증, API, 스토리지, 실시간 구독 및 벡터 임베딩을 제공합니다. 간단한 설정과 사용자 인터페이스를 통해 개발자는 Supabase 위에 애플리케이션을 신속하게 구축할 수 있습니다.
이 튜토리얼에서는 우분투 24.04 서버에 Supabase를 설치하는 방법을 배웁니다. Docker를 사용하여 Supabase를 컨테이너로 실행하고, 비밀번호 인증 및 JWT 토큰으로 Supabase를 보호합니다. 마지막으로, Supabase를 위한 리버스 프록시로 Nginx를 설정하는 방법도 배웁니다.
전제 조건
이 가이드를 시작하기 전에 다음 사항을 확인하십시오:
- 우분투 24.04 서버
- 관리자 권한이 있는 비루트 사용자
- 서버 IP 주소를 가리키는 도메인 이름
Docker 엔진 설치
서버에 Supabase를 배포하려면 머신에 Docker 엔진을 설치해야 합니다. Supabase 애플리케이션은 서버에서 컨테이너로 실행됩니다.
이 섹션에서는 공식 Docker 리포지토리를 통해 Docker 엔진을 설치합니다.
먼저 아래 명령어를 실행하여 우분투 패키지 인덱스를 업데이트하고 ‘ ca-certificates ‘, ‘ curl ‘, ‘ git ‘와 같은 패키지를 설치합니다.
sudo apt update
sudo apt install -y ca-certificates curl git
이제 Docker 엔진 리포지토리의 GPG 키를 추가하기 위해 아래 명령어를 실행합니다.
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc아래 명령어를 실행하여 우분투 서버에 Docker 엔진 리포지토리를 추가합니다.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Docker GPG 키와 리포지토리가 추가되었으므로 아래 ‘ apt ‘ 명령어를 실행하여 패키지 인덱스를 새로 고치고 Docker 엔진을 설치합니다. 이와 함께 Docker Compose 및 buildx 플러그인도 설치됩니다.
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin설치를 확인하려면 ‘ Y ‘를 입력합니다.

Docker 그룹에 사용자 추가
이 가이드에서는 Supabase를 비루트 사용자로 실행하므로 전용 사용자가 생성되어야 합니다. 그런 다음 사용자를 ‘docker’ 그룹에 추가해야 하며, 이를 통해 사용자가 컨테이너를 실행할 수 있습니다.
아래 명령어로 사용자를 ‘ docker ‘ 그룹에 추가합니다. 이렇게 하면 사용자가 컨테이너를 실행하고 실행할 수 있습니다.
sudo usermod -aG sudo username아래 ‘ su ‘ 명령어로 사용자로 로그인합니다.
su - username마지막으로 아래 ‘ docker ‘ 명령어를 실행하여 ‘ hello-world ‘ 컨테이너를 실행합니다.
docker run hello-world모든 것이 잘 진행되면 Docker에서 ‘ Hello World ‘ 메시지를 볼 수 있습니다.

Supabase 다운로드 및 설치
이제 Docker를 설치했으므로 다음 단계는 Supabase를 다운로드하고 컨테이너로 실행하는 것입니다. 이 섹션에서는 Supabase를 설정하고 실행하는 방법을 배우고, 나중에 이를 보호하는 방법도 배웁니다.
아래 ‘ git ‘ 명령어로 ‘ supabase ‘ 소스 코드를 다운로드합니다.
git clone --depth 1 https://github.com/supabase/supabase‘supabase/docker’ 디렉토리로 이동하고 ‘ .env.example ‘ 파일을 ‘. env ‘로 복사합니다. 이 파일은 Supabase 설치를 구성하는 데 사용됩니다.
cd supbase/docker
cp .env.example .env다음으로 아래 ‘ docker compose ‘ 명령어를 실행하여 Docker 리포지토리에서 Supabase 이미지를 다운로드합니다. 이는 Supabase에 대한 여러 이미지를 다운로드합니다.
docker compose pull아래에서 Supabase Docker 이미지의 다운로드 과정을 볼 수 있습니다.

프로세스가 완료되면 다음 명령어를 실행하여 Supabase 컨테이너를 시작합니다. ‘ -d ‘ 옵션을 사용하면 컨테이너가 백그라운드에서 실행되므로 Supabase 컨테이너의 로그는 표시되지 않습니다.
docker compose up -d
마지막으로 아래 ‘ docker compose ‘ 명령어를 실행하여 Supabase 컨테이너의 상태를 확인합니다.
docker compose ps아래 출력에서 ‘ supabase-auth ‘, ‘ supabase-kong ‘, ‘ supabase-rest ‘, ‘ supabase-studio ‘와 같은 Supabase 컨테이너가 실행되고 있는 것을 볼 수 있습니다.

Supabase 보호하기
현재 Supabase가 시스템에서 실행되고 있지만 적절한 비밀번호와 인증이 없습니다. 따라서 지금은 ‘.env’ 파일 내에서 자격 증명을 변경하여 Supabase 설치를 보호합니다.
시작하기 전에 PostgreSQL 서버와 Supabase 대시보드에 대한 비밀번호를 생성하고 JWT 비밀 및 토큰을 생성합니다.
아래 명령어를 두 번 실행하여 Supabase 대시보드와 PostgreSQL 서버에 대한 안전한 비밀번호를 생성합니다.
openssl rand -hex 16
이제 Supabase 웹사이트로 가서 Supabase에 대한 두 개의 JWT 토큰을 생성합니다. 다음 사항을 기록해 두십시오:
- JWT 비밀
- ANON_KEY 및 SERVICE_KEY의 키
- 두 개의 JWT 토큰

이제 Supabase에 대한 비밀번호와 토큰을 생성했으므로 ‘.env’ 파일을 편집하여 이를 적용합시다.
‘ .env ‘ 파일을 ‘ vim ‘ 편집기로 엽니다.
vim .env생성한 OpenSSL 비밀번호를 ‘ POSTGRES_PASSWORD ‘ 옵션에 붙여넣습니다.
POSTGRES_PASSWORD=f489d6f61514eb90fbf57fb574c3d367JWT 비밀 키를 ‘ JWT_SECRET ‘ 옵션에 입력합니다.
JWT_SECRET=PUaiJLm1PKAebJJRIdXylVJrfgGbRWdWvzN0EUgh‘ ANON_KEY ‘ 값을 ‘ anon ‘ 사용자에 대한 생성된 JWT 토큰으로 바꿉니다.
ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogImFub24iLAogICJpc3MiOiAic3VwYWJhc2UiLAogICJpYXQiOiAxNzM2MzU1NjAwLAogICJleHAiOiAxODk0MTIyMDAwCn0.f8_wST3WX1bmvsHttRokJPCz7-rpyjU8HMNnYH7kSd4‘ SERVICE_ROLE_KEY ‘ 값을 ‘ service_role ‘ 사용자에 대한 생성된 JWT 토큰으로 바꿉니다.
SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogInNlcnZpY2Vfcm9sZSIsCiAgImlzcyI6ICJzdXBhYmFzZSIsCiAgImlhdCI6IDE3MzYzNTU2MDAsCiAgImV4cCI6IDE4OTQxMjIwMDAKfQ.DOo1lqH76AR_jCx0N9QDZBEdrQ8T_JBQqc7CagD1mWM공용 서버에 배포하는 경우 SMTP 서버 세부정보를 입력합니다.
Email auth
ENABLE_EMAIL_SIGNUP=true
ENABLE_EMAIL_AUTOCONFIRM=false
[email protected]
SMTP_HOST=smtp.server.address
SMTP_PORT=2500
SMTP_USER=username
SMTP_PASS=password
SMTP_SENDER_NAME=sender_name
ENABLE_ANONYMOUS_USERS=false사용자 이름과 비밀번호를 ‘ DASHBOARD_USERNAME ‘ 및 ‘ DASHBOARD_PASSWORD ‘ 옵션에 입력합니다. 이 사용자는 Supabase에 로그인하는 데 사용됩니다.
DASHBOARD_USERNAME=supabase
DASHBOARD_PASSWORD=91521851a4e1375145959eecddfaff45도메인 이름을 ‘ SITE_URL ‘, ‘ API_EXTERNAL_URL ‘, ‘ SUPABASE_PUBLIC_URL’ 옵션에 입력합니다. 이 예제에서는 ‘https://supabase.howtoforge.local’ 도메인을 사용합니다.
SITE_URL=https://supabase.howtoforge.local
API_EXTERNAL_URL=https://supabase.howtoforge.local
SUPABASE_PUBLIC_URL=https://supabase.howtoforge.local작업이 끝나면 파일을 저장하고 편집기를 종료합니다.
이제 아래 ‘ docker ‘ 명령어를 실행하여 Supabase 컨테이너를 중지하고 제거합니다.
docker compose down그런 다음 아래 명령어로 Supabase를 위한 컨테이너를 재생성합니다.
docker compose up -d모든 것이 실행 중인지 확인하려면 아래 명령어를 사용합니다.
docker compose ps아래에서 Supabase의 각 컨테이너가 실행되고 있는 것을 볼 수 있습니다.

Nginx를 Supabase의 리버스 프록시로 설정하기
이제 Supabase가 보호되었으므로 Nginx 웹 서버를 설치하고 Supabase의 리버스 프록시로 구성합시다. 도메인 이름이 준비되어 있고 서버 IP 주소를 가리키고 있는지 확인하십시오.
아래 ‘ apt ‘ 명령어로 Nginx를 설치합니다.
sudo apt install nginx -y이제 ‘ /etc/nginx/sites-available/supabase ‘에 새로운 Nginx 서버 블록 구성을 ‘vim’ 편집기로 생성합니다.
sudo vim /etc/nginx/sites-available/supabase다음 구성을 붙여넣고 ‘ server_name ‘ 옵션 내의 도메인 이름을 변경합니다.
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream kong {
server localhost:8000;
}
server {
listen 80;
server_name supabase.howtoforge.local;
# REST
location ~ ^/rest/v1/(.*)$ {
proxy_set_header Host $host;
proxy_pass http://kong;
proxy_redirect off;
}
# AUTH
location ~ ^/auth/v1/(.*)$ {
proxy_set_header Host $host;
proxy_pass http://kong;
proxy_redirect off;
}
# REALTIME
location ~ ^/realtime/v1/(.*)$ {
proxy_redirect off;
proxy_pass http://kong;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
}
# STUDIO
location / {
proxy_set_header Host $host;
proxy_pass http://kong;
proxy_redirect off;
proxy_set_header Upgrade $http_upgrade;
}
}작업이 끝나면 파일을 저장하고 편집기를 종료합니다.
다음으로 아래 명령어를 실행하여 Supabase 서버 블록을 활성화하고 Nginx 구문을 확인합니다. 오류가 없으면 ‘ syntax is ok - test is successful ‘라는 출력을 받게 됩니다.
sudo ln -s /etc/nginx/sites-available/supabase /etc/nginx/sites-enabled/
sudo nginx -t
이제 아래 ‘ systemctl ‘ 명령어를 실행하여 Nginx 웹 서버를 재시작하고 변경 사항을 적용합니다. 이를 통해 Supabase 설치가 Nginx 리버스 프록시 아래에서 실행되어야 합니다.
sudo systemctl restart nginx마지막으로 아래 ‘systemctl’ 명령어를 실행하여 Nginx 서비스를 확인하고 서비스가 실행 중인지 확인합니다.
sudo systemctl status nginx모든 것이 잘 진행되면 다음과 같은 출력을 볼 수 있습니다.

HTTPS로 Supabase 보호하기
Nginx가 리버스 프록시로 실행되고 나면 SSL 인증서를 생성하고 HTTPS를 활성화하여 Supabase 설치를 보호합시다.
개발 모드에 있는 경우 이 부분을 건너뛰고 Supabase를 HTTPS로 두어도 됩니다. 프로덕션에서는 Supabase 서버를 보호하기 위해 HTTPS를 구현해야 합니다.
아래 ‘ apt ‘ 명령어로 Certbot 및 Nginx Certbot 플러그인을 설치합니다. 설치를 확인하려면 ‘Y’를 입력합니다.
sudo apt install certbot python3-certbot-nginx설치가 완료되면 아래 ‘certbot’ 명령어를 실행하여 도메인 이름에 대한 SSL 인증서를 생성합니다. 명령어 내의 도메인 이름과 이메일 주소를 변경해야 합니다.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d supabase.howtoforge.local완료되면 SSL 인증서는 ‘ /etc/letsencrypt/live/domain.com ‘ 디렉토리에 저장되며 Supabase는 Nginx Certbot 플러그인을 통해 자동으로 HTTPS로 보호됩니다.
Supabase 스튜디오 접근하기
Supabase에 접근하려면 웹 브라우저를 열고 https://supabase.howtoforge.local을 방문합니다. 설치가 성공적이라면 기본 비밀번호 인증이 요청됩니다.
‘ DASHBOARD_USERNAME ‘ 및 ‘ DASHBOARD_PASSWORD ‘ 옵션 내의 사용자 이름과 비밀번호를 입력하고 ‘ Login ‘을 클릭합니다.

성공적으로 로그인하면 다음 Supabase 대시보드를 볼 수 있습니다.

결론
축하합니다! Docker를 통해 우분투 24.04 서버에 Supabase 설치를 완료했습니다. 비밀번호 인증 JWT 토큰으로 Supabase를 배포하고 보호했으며, Nginx를 리버스 프록시로 설치하고 구성했습니다. 마지막으로 Certbot과 Letsencrypt를 통해 HTTPS로 Supabase를 보호했습니다. 이제 새로운 데이터베이스를 생성하고 Supabase에 데이터를 삽입한 다음 Supabase 모듈을 사용하여 REST API를 통해 통신하는 간단한 애플리케이션을 만들어 볼 수 있습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.