Установка 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
Теперь выполните следующую команду, чтобы добавить 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
С добавленным 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 ‘, чтобы подтвердить установку.

Добавление пользователя в группу Docker
В этом руководстве вы будете запускать Supabase как пользователь без прав root, поэтому убедитесь, что создан специальный пользователь. Затем вам нужно добавить вашего пользователя в группу ‘docker’, что позволит пользователю запускать контейнеры.
Добавьте вашего пользователя в группу ‘ docker ‘ с помощью команды ниже. Это позволит вашему пользователю выполнять и запускать контейнеры.
sudo usermod -aG sudo usernameВойдите в свою учетную запись с помощью команды ‘ su ‘ ниже.
su - usernameНаконец, выполните команду ‘ docker ‘ ниже, чтобы запустить контейнер ‘ hello-world ‘.
docker run hello-worldЕсли все пройдет хорошо, вы увидите сообщение ‘ Hello World ‘ от Docker.

Загрузка и установка 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 ниже.

После завершения процесса выполните следующую команду, чтобы запустить контейнеры Supabase. С опцией ‘ -d ‘ вы будете запускать контейнеры в фоновом режиме, поэтому логи контейнеров Supabase не будут отображаться.
docker compose up -d
Наконец, выполните команду ‘ docker compose ‘ ниже, чтобы проверить статус контейнеров Supabase.
docker compose psВ выводе ниже вы можете увидеть, что контейнеры Supabase, такие как ‘ supabase-auth ‘, ‘ supabase-kong ‘, ‘ supabase-rest ‘ и ‘ supabase-studio ‘, работают.

Защита Supabase
В настоящее время Supabase работает на вашей системе, но без надлежащего пароля и аутентификации. Поэтому сейчас вы защитите установку Supabase, изменив учетные данные в файле ‘.env’.
Перед тем как начать, давайте сгенерируем пароли для сервера PostgreSQL и панели управления Supabase, а затем сгенерируем секрет и токен JWT.
Выполните команду ниже дважды, чтобы сгенерировать безопасный пароль для панели управления Supabase и сервера PostgreSQL.
openssl rand -hex 16
Теперь перейдите на сайт Supabase, чтобы сгенерировать два токена JWT для Supabase. Убедитесь, что вы записали следующее:
- JWT Secret
- Ключ для обоих ANON_KEY и SERVICE_KEY
- Сгенерированные токены JWT для обоих

Теперь, когда вы сгенерировали пароли и токены для 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 работает.

Настройка 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
Теперь выполните команду ‘ systemctl ‘ ниже, чтобы перезапустить веб-сервер Nginx и применить ваши изменения. С этим ваша установка Supabase должна работать под обратным прокси Nginx.
sudo systemctl restart nginxНаконец, выполните команду ‘systemctl’ ниже, чтобы проверить службу Nginx и убедиться, что служба работает.
sudo systemctl status 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 ‘ и нажмите ‘ Войти ‘.

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

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