웹사이트 검색

Debian 11에서 Docker로 Supabase를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 1단계 - 방화벽 구성\n
  3. 2단계 - Git 설치
  4. 3단계 - Docker 설치
  5. 4단계 - Docker Compose 설치
  6. 5단계 - Supabase 다운로드 및 구성
  7. 6단계 - Supabase 설치
  8. 7단계 - SSL 설치
  9. 8단계 - Nginx 설치 및 구성
  10. 9단계 - Supabase에 액세스
  11. 10단계 - HTTP 인증 활성화\n
  12. 11단계 - Supabase 업데이트
  13. 결론

Supabase는 애플리케이션 개발에 필요한 모든 도구를 제공하는 오픈 소스 Firebase 대안입니다. Supabase는 PostgreSQL 데이터베이스, 사용자 인증, 스토리지 및 실시간 API를 제공하며 Angular, Flutter, Next.js, React, Svelte 및 Vue와 같은 널리 사용되는 프레임워크 및 도구와 통합됩니다.

수파베이스를 사용하는 방법은 2가지가 있습니다. 첫 번째 옵션은 더 많은 기능을 제공하는 클라우드 호스팅 앱에 가입하는 것입니다. 두 번째 옵션은 Docker를 사용하여 코드를 자체 호스팅하는 것입니다. 그러나 자체 호스팅에는 몇 가지 주의 사항이 있습니다. 프로젝트를 생성하거나 관리할 수 없습니다. 또한 전체 프로젝트는 베타 단계에 있으며 자체 호스팅 버전은 테스트 및 로컬 개발용으로만 사용해야 합니다. 다른 모든 목적을 위해서는 클라우드 애플리케이션을 사용해야 합니다.

이 튜토리얼에서는 Debian 11 기반 서버에 Supabase를 설치하고 Nginx 서버를 통해 프록시하는 방법을 배웁니다.

전제 조건

  • A server running Debian 11 with a minimum of 2GB RAM.

  • A non-root user with sudo privileges.

  • A Domain name (supabase.example.com) pointing to the server.

  • Everything is updated.

    $ sudo apt update && sudo apt upgrade
    
  • Few packages that your system needs.

    $ sudo apt install nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring -y
    

    Some of these packages may already be installed on your system.

1단계 - 방화벽 구성

첫 번째 단계는 방화벽을 구성하는 것입니다. 데비안은 ufw(복잡하지 않은 방화벽)와 함께 제공됩니다.

방화벽이 실행 중인지 확인하십시오.

$ sudo ufw status

다음 출력을 얻어야 합니다.

Status: inactive

방화벽이 활성화 시 현재 연결을 끊지 않도록 SSH 포트를 허용합니다.

$ sudo ufw allow OpenSSH

HTTP 및 HTTPS 포트도 허용합니다.

$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp

방화벽 활성화

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

방화벽의 상태를 다시 확인하십시오.

$ sudo ufw status

비슷한 출력이 표시되어야 합니다.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)

2단계 - Git 설치

힘내를 설치하십시오.

$ sudo apt install git

설치를 확인하십시오.

$ git --version
git version 2.30.2

3단계 - 도커 설치

최신 버전의 Docker를 설치하려면 Dockers 공식 GPG 키를 추가하십시오.

$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

공식 Docker 저장소를 설치합니다.

$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Debian 시스템 리포지토리를 업데이트합니다.

$ sudo apt update

최신 버전의 Docker를 설치합니다.

$ sudo apt install docker-ce docker-ce-cli containerd.io

Docker가 실행 중인지 확인합니다.

$ sudo systemctl status docker
? docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-03-21 03:19:09 UTC; 9s ago
TriggeredBy: ? docker.socket
       Docs: https://docs.docker.com
   Main PID: 15816 (dockerd)
      Tasks: 7
     Memory: 27.9M
        CPU: 566ms
     CGroup: /system.slice/docker.service
             ??15816 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

기본적으로 Docker에는 루트 권한이 필요합니다. sudo 명령을 실행할 때마다 sudo를 사용하지 않으려면 docker 명령에 사용자 이름을 추가하세요. > 그룹.

$ sudo usermod -aG docker $(whoami)

이 변경 사항을 사용하려면 서버에서 로그아웃하고 동일한 사용자로 다시 로그인해야 합니다.

4단계 - Docker Compose 설치

Docker Composes의 사용 가능한 최신 버전은 2.0.x이지만 호환성을 위해 이전 버전의 안정적인 v1.29.2를 설치합니다.

다음 명령을 실행하여 안정적인 Docker Compose 릴리스를 다운로드합니다.

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

바이너리 파일에 실행 권한을 적용합니다.

$ sudo chmod +x /usr/local/bin/docker-compose

Docker Composes bash 완료 스크립트를 다운로드하고 설치합니다.

$ sudo curl \
    -L https://raw.githubusercontent.com/docker/compose/1.29.2/contrib/completion/bash/docker-compose \
    -o /etc/bash_completion.d/docker-compose

다음 명령을 실행하여 변경 사항을 적용하십시오.

$ source ~/.bashrc

5단계 - Supabase 다운로드 및 구성

Supabase Github 리포지토리를 복제합니다.

$ git clone --depth 1 https://github.com/supabase/supabase.git

--depth 1 매개변수는 리포지토리의 얕은 복제를 수행합니다. 즉, 전체 기록이 아닌 최신 커밋만 가져옵니다. 이것은 성능을 향상시키기 위해 수행됩니다.

도커 디렉터리로 전환합니다.

$ cd supabase/docker

예제 파일에서 환경 파일을 만듭니다.

$ cp .env.example .env

편집을 위해 새로 만든 파일을 엽니다.

$ nano .env

강력하게 생성된 고유 암호로 변수 POSTGRES_PASSWORD의 값을 변경합니다.

$ POSTGRES_PASSWORD=<yourpostgresqlpwd>

특수 문자 없이 32자 이상으로 다른 고유 암호를 생성하십시오. JWT_SECRET의 값을 이 암호로 바꿉니다.

JWT_SECRET=<your32pluscharacterspwd>

1password와 같은 온라인 비밀번호 생성기를 사용하여 위의 비밀번호를 만들 수 있습니다.

Supabase 웹사이트를 열고 JWT_SECRET을 입력하여 ANON_KEY를 생성합니다. 지정된 상자에 JWT_SECRET을 붙여넣고 미리 구성된 페이로드 드롭다운 메뉴에서 ANON_KEY를 선택한 다음 Generate JWT 버튼을 클릭하여 토큰을 생성합니다.

이 토큰을 복사하여 .env 파일의 ANON_KEY 값으로 붙여넣습니다.

마찬가지로 사전 구성된 페이로드를 전환하고 JWT 생성 버튼을 눌러 SERVICE_KEY를 생성하는 동일한 단계를 반복합니다.

생성된 토큰을 복사하여 .env 파일의 SERVICE_KEY 값으로 붙여넣습니다.

다음 변수를 구성하여 이메일 SMTP 설정을 구성합니다. 튜토리얼에 Amazons SES 서비스를 사용하고 있습니다.

SMTP_HOST=email-smtp.us-west-2.amazonaws.com
SMTP_PORT=587
SMTP_USER=<your_amazon_ses_user>
SMTP_PASS=<your_amazon_ses_password>
SMTP_SENDER_NAME=SupabaseAdmin

사이트 URL을 구성합니다.

SITE_URL=https://supabase.example.com

공용 REST URL을 구성하십시오.

PUBLIC_REST_URL=https://supabase.example.com/rest/v1/

Ctrl + X를 누르고 메시지가 표시되면 Y를 입력하여 파일을 저장합니다.

SMTP를 통해 전송되는 인증 메일은 Supabase에 만연한 버그로 인해 링크가 끊어집니다. 이 문제를 해결하려면 docker-compose.yml 파일을 엽니다.

$ nano docker-compose.yml

GOTRUE_SITE_URL 변수 바로 아래에 API_EXTERNAL_URL 변수를 추가하면 다음과 같이 표시됩니다.

 GOTRUE_SITE_URL: ${SITE_URL}
 API_EXTERNAL_URL: ${SITE_URL}

Ctrl + X를 누르고 메시지가 표시되면 Y를 입력하여 파일을 저장합니다. 이 파일은 Supabase 설치를 업그레이드할 때마다 덮어쓰게 됩니다. 다음 번에 버그가 수정되기를 바랍니다. 이메일 버그가 반복되지 않도록 하려면 이 변수를 수동으로 추가해야 합니다.

편집을 위해 volumes/api/kong.yml 파일을 엽니다.

$ nano volumes/api/kong.yml

consumers 섹션에서 anon 사용자 키를 이전에 생성된 ANON_KEY로 바꿉니다.

consumers:
  - username: anon
    keyauth_credentials:
      - key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE

또한 service_role의 키를 위에서 생성한 SERVICE_KEY로 교체합니다.

- username: service_role
    keyauth_credentials:
      - key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJzZXJ2aWNlX3JvbGUiLAogICAgImlzcyI6ICJzdXBhYmFzZS1kZW1vIiwKICAgICJpYXQiOiAxNjQxNzY5MjAwLAogICAgImV4cCI6IDE3OTk1MzU2MDAKfQ.DaYlNEoUrrEn2Ig7tqibS-PHK5vgusbcbo7X36XVt4Q

Ctrl + X를 누르고 메시지가 표시되면 Y를 입력하여 파일을 저장합니다.

6단계 - 수파베이스 설치

다음 명령을 사용하여 Supabase를 실행합니다. 이 과정은 다소 시간이 걸립니다.

$ docker-compose -f docker-compose.yml -f ./dev/docker-compose.dev.yml up -d

실행 중인 컨테이너의 상태를 확인합니다.

$ docker ps
CONTAINER ID   IMAGE                            COMMAND                   CREATED              STATUS                        PORTS                                                                                                                             NAMES
d25393873731   supabase/storage-api:v0.10.0     "/bin/sh -c \"./stora…"   About a minute ago   Up About a minute             5000/tcp                                                                                                                          supabase-storage
e6df7dcdd45b   supabase/gotrue:v2.5.21          "gotrue"                  About a minute ago   Up About a minute                                                                                                                                               supabase-auth
b3a758592d10   supabase/postgres-meta:v0.29.0   "postgres-meta"           About a minute ago   Up About a minute             0.0.0.0:5555->8080/tcp, :::5555->8080/tcp                                                                                         supabase-meta
cdb18c248f79   supabase/realtime:v0.21.0        "bash -c './prod/rel…"    About a minute ago   Up About a minute                                                                                                                                               supabase-realtime
71417337efae   postgrest/postgrest:v9.0.0       "/bin/postgrest"          About a minute ago   Up About a minute             3000/tcp                                                                                                                          supabase-rest
2d51af16bd1f   kong:2.1                         "/docker-entrypoint.…"    2 minutes ago        Up About a minute             0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 8001/tcp, 0.0.0.0:8443->8443/tcp, :::8443->8443/tcp, 8444/tcp                          supabase-kong
d6490380e4e8   supabase/postgres:14.1.0         "docker-entrypoint.s…"    2 minutes ago        Up About a minute             0.0.0.0:5432->5432/tcp, :::5432->5432/tcp
                                              supabase-db
40a49d1482fa   supabase/studio:latest           "docker-entrypoint.s…"    2 minutes ago        Up About a minute             0.0.0.0:3000->3000/tcp, :::3000->3000/tcp                                                                                         supabase-studio
3cce50db9782   inbucket/inbucket:stable         "/start-inbucket.sh …"    2 minutes ago        Up About a minute (healthy)   0.0.0.0:1100->1100/tcp, :::1100->1100/tcp, 0.0.0.0:2500->2500/tcp, :::2500->2500/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp   supabase-mail

7단계 - SSL 설치

Lets Encrypt를 사용하여 SSL 인증서를 설치하려면 Certbot 도구를 설치해야 합니다.

이를 위해 Snapd 패키지 설치 프로그램을 사용합니다. 대부분의 Debian 서버는 함께 제공되지 않으므로 Snapd 설치 프로그램을 설치합니다.

$ sudo apt install snapd

Snapd 버전이 최신인지 확인하세요.

$ sudo snap install core && sudo snap refresh core

Certbot을 설치합니다.

$ sudo snap install --classic certbot

다음 명령을 사용하여 /usr/bin 디렉토리에 대한 심볼릭 링크를 생성하여 Certbot 명령을 실행할 수 있는지 확인하십시오.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

설치를 확인하십시오.

$ certbot --version
certbot 1.25.0

SSL 인증서를 생성합니다.

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m  -d supabase.example.com

위의 명령은 서버의 /etc/letsencrypt/live/supabase.example.com 디렉토리에 인증서를 다운로드합니다.

Diffie-Hellman 그룹 인증서를 생성합니다.

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096

Lets Encrypt 자동 갱신을 위한 챌린지 웹루트 디렉터리를 만듭니다.

$ sudo mkdir -p /var/lib/letsencrypt

SSL을 갱신하기 위해 Cron 작업을 생성합니다. 인증서를 확인하고 필요한 경우 갱신하기 위해 매일 실행됩니다. 이를 위해 먼저 /etc/cron.daily/certbot-renew 파일을 생성하고 편집을 위해 엽니다.

$ sudo nano /etc/cron.daily/certbot-renew

다음 코드를 붙여넣습니다.

#!/bin/sh
certbot renew --cert-name supabase.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Ctrl + X를 누르고 메시지가 표시되면 Y를 입력하여 파일을 저장합니다.

실행 가능하도록 태스크 파일에 대한 권한을 변경하십시오.

$ sudo chmod +x /etc/cron.daily/certbot-renew

8단계 - Nginx 설치 및 구성

Debian은 이전 버전의 Nginx와 함께 제공됩니다. 최신 버전을 설치하려면 공식 Nginx 저장소를 다운로드해야 합니다.

공식 Nginx 서명 키를 가져옵니다.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
	 | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Nginxs 안정 버전용 리포지토리를 추가합니다.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
    http://nginx.org/packages/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Debian 리포지토리를 업데이트합니다.

$ sudo apt update

Nginx를 설치합니다.

$ sudo apt install nginx

설치를 확인하십시오. Debian에서 Nginx 명령을 실행할 때마다 sudo를 사용해야 합니다. 그렇지 않으면 작동하지 않습니다.

$ sudo nginx -v
nginx version: nginx/1.20.2

편집을 위해 /etc/nginx/conf.d/supabase.conf 파일을 만들고 엽니다.

$ sudo nano /etc/nginx/conf.d/supabase.conf

다음 코드를 붙여넣습니다.

map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}
upstream supabase {
  	server localhost:3000;
}
upstream kong {
  	server localhost:8000;
}
# enforce HTTPS
server {
    listen       80; 
    listen 		[::]:80;
    server_name  supabase.example.com;
    return 301   https://$host$request_uri;
}
server {
    listen       443 ssl http2;
    listen 		[::]:443 ssl http2;
    server_name  supabase.example.com;

    access_log  /var/log/nginx/supabase.access.log;
    error_log   /var/log/nginx/supabase.error.log;
    
    gzip on;
    
    # SSL
    ssl_certificate      /etc/letsencrypt/live/supabase.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/supabase.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/supabase.example.com/chain.pem;
    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    resolver 8.8.8.8;
    
    client_max_body_size 100m;
    
    # REST API
	location ~ ^/rest/v1/(.*)$ {
    	proxy_set_header Host $host;
	    proxy_pass http://kong;
	    proxy_redirect off;
  	}

	# Authentication
	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://supabase;
	    proxy_redirect off;
	    proxy_set_header Upgrade $http_upgrade;
  	}
}

완료되면 Ctrl + X를 누르고 프롬프트가 표시되면 Y를 입력하여 파일을 저장합니다.

편집을 위해 /etc/nginx/nginx.conf 파일을 엽니다.

$ sudo nano /etc/nginx/nginx.conf

include /etc/nginx/conf.d/*.conf; 줄 앞에 다음 줄을 추가합니다.

server_names_hash_bucket_size  64;

Ctrl + X를 누르고 메시지가 표시되면 Y를 입력하여 파일을 저장합니다.

Nginx 구성 파일 구문을 확인합니다.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nginx 서비스를 시작하여 새 구성을 활성화합니다.

$ sudo systemctl start nginx

9단계 - Supabase에 액세스

이제 웹 브라우저에서 URL https://supabase.example.com을 통해 Supabase에 액세스할 수 있습니다.

새 프로젝트를 만들 수는 없지만 기존 프로젝트를 관리하고 데이터베이스, 저장소 및 인증을 구성할 수 있습니다.

10단계 - HTTP 인증 활성화

Supabase는 사용자 관리를 제공하지 않으므로 Supabase 설치를 보호해야 합니다. 가장 쉬운 방법은 Nginx 서버를 사용하여 HTTP 인증을 활성화하는 것입니다.

Nginx용 apache2-utils 패키지를 설치합니다.

$ sudo apt install apache2-utils

supabase 사용자의 암호 파일을 만듭니다. 원하는 사용자 이름을 선택할 수 있습니다. 새 비밀번호를 입력하라는 메시지가 표시됩니다. 강력한 암호를 입력하여 파일 설정을 완료하십시오.

$ sudo htpasswd -c /etc/nginx/.htpasswd supabase
New password:
Re-type new password:
Adding password for user supabase

-c 플래그는 유틸리티에 새 파일을 생성하도록 지시합니다. 파일을 생략하면 기존 파일의 위치를 지정해야 합니다.

편집을 위해 /etc/nginx/conf.d/supabase.conf를 엽니다.

$ sudo nano /etc/nginx/conf.d/supabase.conf

아래와 같이 파일의 다음 섹션에서 변경합니다.

# REST API
	location ~ ^/rest/v1/(.*)$ {
	    auth_basic off;
    	proxy_set_header Host $host;
	    proxy_pass http://kong;
	    proxy_redirect off;
  	}

	# Authentication
	location ~ ^/auth/v1/(.*)$ {
	    auth_basic off;
    	proxy_set_header Host $host;
	    proxy_pass http://kong;
	    proxy_redirect off;
  	}

	# Realtime
	location ~ ^/realtime/v1/(.*)$ {
	    auth_basic off;
    	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 / {
	    auth_basic “Supabase Studio Login”;
	    auth_basic_user_file /etc/nginx/.htpasswd;
    
    	proxy_set_header Host $host;
	    proxy_pass http://supabase;
	    proxy_redirect off;
	    proxy_set_header Upgrade $http_upgrade;
  	}

Ctrl + X를 누르고 메시지가 표시되면 Y를 입력하여 파일을 저장합니다.

구성을 확인하십시오.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nginx 서비스를 다시 시작합니다.

$ sudo systemctl restart nginx

다음에 Supabase를 열면 다음과 같은 로그인 화면이 나타납니다.

11단계 - Supabase 업데이트

수파베이스는 지속적으로 작업 중인 제품이며 지속적인 변화를 겪을 것입니다. 자체 호스팅 인스턴스로 사용하는 경우 Supabase 설치를 최신 상태로 유지해야 합니다.

Supabase 디렉터리로 전환합니다.

$ cd ~/supabase

최신 Github 리포지토리를 가져옵니다.

$ git pull

docker/.env, docker/volumes/api/kong.yml 파일에서 재구성이 필요한 모든 변경 사항을 찾습니다.

기존 Docker 컨테이너를 종료하고 정리합니다.

$ docker-compose down --remove-orphans

최신 이미지를 가져옵니다.

$ docker-compose pull

컨테이너를 다시 시작하십시오.

$ docker-compose -f docker-compose.yml -f ./dev/docker-compose.dev.yml up -d

결론

이것으로 Nginx 서버를 리버스 프록시로 사용하여 Debian 11 기반 서버에 Supabase를 설치하는 방법에 대한 자습서를 마칩니다. 질문이 있으시면 아래 의견에 게시하십시오.