Установка Supabase на свой сервер
KevgenНам понадобится:
Сервер с установленным Linux,
Docker и docker-compose,
Свой домен (я использовал reg.ru).
Шаги установки:
Шаг 1:
Копируем репозиторий:
git clone --depth 1 https://github.com/supabase/supabase cd supabase/docker cp .env.example .env
Далее заходим на сайт: Supabase key generator и генерируем 3 ключа: JWT_SECRET, ANON_KEY и SERVICE_KEY.
Далее открываем файл .env командой
sudo nano .env
и вставляем ключи ANON_KEY и SERVICE_KEY в соответствующие поля.
Далее идём по пути "docker/volumes/api/" и открываем kong.yml:
cd volumes/api/ sudo nano kong.yml
и также прописываем эти два ключа в соответствующие поля.
Настройка ключей закончена.
Возвращаемся обратно в файл "/docker/.env" и находим там две строки:
API_EXTERNAL_URL=http://dropletipaddress:8000
SUPABASE_PUBLIC_URL=http://localhost:8000
и меняем значения на свой домен. Обязательно в "API_EXTERNAL_URL" ставим https, даже если у Вас нет SSL и убираем ":8000", так как FlutterFlow коннектится только по протоколу https и без портов. Должно получиться как то так:
API_EXTERNAL_URL=https://my-domain.com SUPABASE_PUBLIC_URL=http://my-domain.com:8000
Шаг 2: Настройка домена (DNS зоны)
Далее идем на сайт 2IP и копируем свой IP адрес сервера (если Вы подключились к нему не удалённо) и идём на сайт поставщика услуг доменов. Там щёлкаем по нашему купленному домену и создаём следующие DNS записи:
Тип: A Subdomain: * IP Address: your-server-ip-adress Тип: A Subdomain: @ IP Address: your-server-ip-adress Тип: A Subdomain: www IP Address: your-server-ip-adress
Отлично! Теперь мы "сказали" сайту где находится Ваш сервер.
Шаг 3: Настройка HTTP Proxy
Дальше настроим HTTP proxy (используется caddy):
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https -y curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list sudo apt-get update sudo apt-get install caddy -y
Когда установка завершится, открываем кофиг-файл caddy:
sudo nano /etc/caddy/Caddyfile
И вставляем данный код:
https://yourdomain.com {
reverse_proxy /rest/v1/* localhost:8000
reverse_proxy /auth/v1/* localhost:8000
reverse_proxy /realtime/v1/* localhost:8000
reverse_proxy /storage/v1/* localhost:8000
reverse_proxy * localhost:3000
}
Сохраняем, закрываем и перезапускаем службу caddy:
sudo service caddy restart
Запуск:
Теперь осталось удостовериться, что Вы находитесь в /supabase/docker и запустить docker контейнеры:
docker-compose up
Через несколько минут на Вашем домене будет свой экземпляр Supabase.
В FlutterFlow API_URL будет "https://your-domain.com" , а ANON_KEY - тот самый ANON_KEY, который Вы генерировали в самом начале!
Спасибо за прочтение!
Использованные ресурсы: https://www.safyah.com/blog/self-hosting-supabase-on-ubuntu-and-digital-ocean