Supabase is an open-source Firebase alternative with Postgres, auth, storage, and edge functions. Local development typically requires Docker Desktop, but Podman works as a drop-in replacement. Podman runs containers without a daemon, supports rootless mode for better security, and avoids Docker Desktop licensing. This guide covers the full setup on Apple Silicon Macs.
brew install podman
# Create VM with reasonable resources
podman machine init --cpus 4 --memory 8192 --disk-size 50
# Start it
podman machine start
The machine runs a lightweight Linux VM (Fedora CoreOS) using Appleās Virtualization framework.
Supabase CLI expects a Docker socket. podman-mac-helper creates the
symlink:
sudo podman-mac-helper install
podman machine stop && podman machine start
Verify:
ls -la /var/run/docker.sock
# Should show symlink to podman socket
brew install supabase/tap/supabase
mkdir my-project && cd my-project
supabase init
supabase start
First run pulls ~2GB of images. Subsequent starts are fast.
podman-mac-helper creates /var/run/docker.sock symlinkDOCKER_HOST properly--rootful| Service | URL |
|---|---|
| Studio | http://127.0.0.1:54323 |
| API | http://127.0.0.1:54321 |
| Postgres | postgres:postgres@127.0.0.1:54322 |
| Mailpit | http://127.0.0.1:54324 |
# Verify socket exists
ls -la /var/run/docker.sock
# Check podman machine status
podman machine list
# Test docker API compatibility
docker info 2>&1 | head -3
# Stop services (preserves data)
supabase stop
# Stop and wipe
supabase stop --no-backup
# Reset database only
supabase db reset
# View running containers
podman ps
# Check service status
supabase status
# Remove supabase containers
supabase stop --no-backup
# Nuclear: prune all podman data
podman system prune -a
# Remove project config
rm -rf supabase/
sudo podman-mac-helper install
podman machine stop && podman machine start
Switch to rootful mode:
podman machine set --rootful
podman machine stop && podman machine start
Switch back later:
podman machine set --rootful=false
lsof -nP -iTCP:54321 -iTCP:54322 -iTCP:54323
# Add to ~/.zshrc
alias sb="supabase"
alias sbs="supabase start"
alias sbx="supabase stop"
alias sbl="supabase status"
supabase start pulls ~2GB of imagesDOCKER_HOST export needed with podman-mac-helperThe entire Supabase stack runs without Docker Desktop licensing concerns.