Установка Supabase · 7 min read · Sep 13, 2025

Как установить Supabase (альтернатива Firebase) с Docker на Ubuntu 24.04

Supabase — это альтернатива Firebase с открытым исходным кодом, построенная на базе PostgreSQL, самой надежной реляционной базы данных в мире. Она позволяет разработчикам создавать полноценные веб-, мобильные и ИИ-приложения. Supabase предлагает базу данных PostgreSQL, аутентификацию, API, хранилище, подписки в реальном времени и векторные встраивания. С простым настройкой и пользовательским интерфейсом разработчики могут быстро создавать приложения на базе Supabase.

В этом руководстве вы узнаете, как установить Supabase на сервер Ubuntu 24.04. Вы будете запускать Supabase в контейнерах с Docker и защищать Supabase с помощью аутентификации по паролю и JWT токенов. Наконец, вы также узнаете, как настроить Nginx в качестве обратного прокси для Supabase.

Предварительные требования

Для начала этого руководства убедитесь, что у вас есть следующее:

  • Сервер Ubuntu 24.04
  • Пользователь без прав root с правами администратора
  • Доменное имя, указывающее на IP-адрес сервера

Установка Docker Engine

Чтобы развернуть Supabase на вашем сервере, вам нужно установить Docker Engine на вашем компьютере. Приложения Supabase будут работать как контейнер на вашем сервере.

В этом разделе вы установите Docker Engine через официальный репозиторий Docker.

Сначала выполните команду ниже, чтобы обновить индекс пакетов Ubuntu и установить такие пакеты, как ‘ ca-certificates ‘, ‘ curl ‘, и ‘ git ‘.

sudo apt update  
sudo apt install -y ca-certificates curl git

install deps

Теперь выполните следующую команду, чтобы добавить GPG ключ для репозитория Docker Engine.

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 Engine для вашего сервера Ubuntu, выполнив команду ниже.

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

add repo

С добавленным GPG ключом и репозиторием выполните команду ‘ apt ‘ ниже, чтобы обновить индекс пакетов и установить Docker Engine. С этим вы также установите плагины Docker Compose и buildx.

sudo apt update  
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Введите ‘ Y ‘, чтобы подтвердить установку.

install docker

Добавление пользователя в группу Docker

В этом руководстве вы будете запускать Supabase как пользователь без прав root, поэтому убедитесь, что создан специальный пользователь. Затем вам нужно добавить вашего пользователя в группу ‘docker’, что позволит пользователю запускать контейнеры.

Добавьте вашего пользователя в группу ‘ docker ‘ с помощью команды ниже. Это позволит вашему пользователю выполнять и запускать контейнеры.

sudo usermod -aG sudo username

Войдите в свою учетную запись с помощью команды ‘ su ‘ ниже.

su - username

Наконец, выполните команду ‘ docker ‘ ниже, чтобы запустить контейнер ‘ hello-world ‘.

docker run hello-world

Если все пройдет хорошо, вы увидите сообщение ‘ Hello World ‘ от Docker.

docker hello world

Загрузка и установка Supabase

Теперь, когда вы установили Docker, следующий шаг — скачать Supabase и запустить его как контейнер. В этом разделе вы узнаете, как запустить Supabase, а позже вы узнаете, как его защитить.

Скачайте исходный код ‘ supabase ‘ с помощью команды ‘ git ‘ ниже.

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

Перейдите в директорию ‘supabase/docker’ и скопируйте файл ‘ .env.example ‘ в ‘. env ‘. Этот файл будет использоваться для настройки вашей установки Supabase.

cd supbase/docker  
cp .env.example .env

Затем выполните команду ‘ docker compose ‘ ниже, чтобы загрузить образы Supabase из репозитория Docker. Это загрузит несколько образов для Supabase.

docker compose pull

Вы можете увидеть процесс загрузки образов Docker для Supabase ниже.

download images

После завершения процесса выполните следующую команду, чтобы запустить контейнеры Supabase. С опцией ‘ -d ‘ вы будете запускать контейнеры в фоновом режиме, поэтому логи контейнеров Supabase не будут отображаться.

docker compose up -d

start containers

Наконец, выполните команду ‘ docker compose ‘ ниже, чтобы проверить статус контейнеров Supabase.

docker compose ps

В выводе ниже вы можете увидеть, что контейнеры Supabase, такие как ‘ supabase-auth ‘, ‘ supabase-kong ‘, ‘ supabase-rest ‘ и ‘ supabase-studio ‘, работают.

check containers

Защита Supabase

В настоящее время Supabase работает на вашей системе, но без надлежащего пароля и аутентификации. Поэтому сейчас вы защитите установку Supabase, изменив учетные данные в файле ‘.env’.

Перед тем как начать, давайте сгенерируем пароли для сервера PostgreSQL и панели управления Supabase, а затем сгенерируем секрет и токен JWT.

Выполните команду ниже дважды, чтобы сгенерировать безопасный пароль для панели управления Supabase и сервера PostgreSQL.

openssl rand -hex 16

generate key

Теперь перейдите на сайт Supabase, чтобы сгенерировать два токена JWT для Supabase. Убедитесь, что вы записали следующее:

  • JWT Secret
  • Ключ для обоих ANON_KEY и SERVICE_KEY
  • Сгенерированные токены JWT для обоих

JWT token

Теперь, когда вы сгенерировали пароли и токены для Supabase, давайте применим их, отредактировав файл ‘.env’.

Откройте файл ‘ .env ‘ с помощью редактора ‘ vim ‘.

vim .env

Вставьте сгенерированный пароль OpenSSL в опцию ‘ POSTGRES_PASSWORD ‘.

POSTGRES_PASSWORD=f489d6f61514eb90fbf57fb574c3d367

Введите ваш секретный ключ JWT в опцию ‘ JWT_SECRET ‘.

JWT_SECRET=PUaiJLm1PKAebJJRIdXylVJrfgGbRWdWvzN0EUgh

Замените значение ‘ ANON_KEY ‘ на ваш сгенерированный токен JWT для пользователя ‘ anon ‘.

ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogImFub24iLAogICJpc3MiOiAic3VwYWJhc2UiLAogICJpYXQiOiAxNzM2MzU1NjAwLAogICJleHAiOiAxODk0MTIyMDAwCn0.f8_wST3WX1bmvsHttRokJPCz7-rpyjU8HMNnYH7kSd4

Замените значение ‘ SERVICE_ROLE_KEY ‘ на ваш сгенерированный токен JWT для пользователя ‘ service_role ‘.

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 работает.

check coantainers

Настройка Nginx в качестве обратного прокси для Supabase

Теперь, когда Supabase защищен, давайте установим веб-сервер Nginx и настроим его как обратный прокси для Supabase. Убедитесь, что у вас есть готовое доменное имя, указывающее на IP-адрес сервера.

Установите Nginx с помощью следующей команды ‘ apt ‘.

sudo apt install nginx -y

Теперь создайте новую конфигурацию блока сервера Nginx ‘ /etc/nginx/sites-available/supabase ‘ с помощью редактора ‘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. Если ошибок нет, вы получите вывод ‘ синтаксис в порядке - тест успешен ‘.

sudo ln -s /etc/nginx/sites-available/supabase /etc/nginx/sites-enabled/  
sudo nginx -t

setup nginx

Теперь выполните команду ‘ systemctl ‘ ниже, чтобы перезапустить веб-сервер Nginx и применить ваши изменения. С этим ваша установка Supabase должна работать под обратным прокси Nginx.

sudo systemctl restart nginx

Наконец, выполните команду ‘systemctl’ ниже, чтобы проверить службу Nginx и убедиться, что служба работает.

sudo systemctl status nginx

Если все пройдет хорошо, вы увидите вывод, похожий на следующий.

check nginx

Защита Supabase с помощью HTTPS

После того как Nginx запущен и работает как обратный прокси, давайте сгенерируем SSL-сертификаты и включим HTTPS для защиты установки Supabase.

Если вы находитесь в режиме разработки, вы можете пропустить эту часть и оставить Supabase без HTTPS. Для продакшена вы должны реализовать HTTPS для защиты вашего сервера Supabase.

Установите Certbot и плагин Nginx Certbot с помощью команды ‘ apt ‘ ниже. Введите ‘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 будет автоматически защищен с помощью HTTPS через плагин Nginx Certbot.

Доступ к Supabase Studio

Чтобы получить доступ к Supabase, откройте веб-браузер и посетите https://supabase.howtoforge.local. Если ваша установка успешна, вам будет предложено ввести базовую аутентификацию по паролю.

Введите имя пользователя и пароль в опции ‘ DASHBOARD_USERNAME ‘ и ‘ DASHBOARD_PASSWORD ‘ и нажмите ‘ Войти ‘.

login

Если все прошло успешно, вы увидите следующую панель управления Supabase.

dashboard

Заключение

Поздравляем! Вы завершили установку Supabase на сервере Ubuntu 24.04 через Docker. Вы развернули и защитили Supabase с помощью аутентификации по паролю и токена JWT, а затем установили и настроили Nginx как обратный прокси. Наконец, вы также защитили Supabase с помощью HTTPS через Certbot и Letsencrypt. Теперь вы можете попробовать создать новую базу данных, вставить данные в Supabase, а затем создать простые приложения с модулем Supabase для взаимодействия через REST API.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.