Supabase
Deploy your own Supabase instance entirely on European infrastructure. This template sets up the full Supabase stack — database, auth, REST API, realtime, and the Studio dashboard.
What’s included
| Service | Image | Port | Purpose |
|---|---|---|---|
| PostgreSQL | postgres:16 | 5432 | Core database with pgvector |
| Supabase Studio | supabase/studio | 3000 | Admin dashboard |
| Auth (GoTrue) | supabase/gotrue | 9999 | Authentication service |
| PostgREST | postgrest/postgrest | 3000 | Auto-generated REST API |
| Realtime | supabase/realtime | 4000 | WebSocket realtime engine |
Why self-host Supabase?
- Data residency — your data stays in Europe, GDPR compliant
- No US dependencies — no CLOUD Act exposure
- Full control — customize auth, database extensions, and configuration
- Cost savings — predictable pricing vs. Supabase Cloud’s usage-based model
Deploying
- Go to Templates → Supabase
- Configure your JWT secret and other required settings
- Click Deploy
Stackpad creates all services with:
- Auto-generated credentials for PostgreSQL
- Pre-configured connections between all services via private networking
- Persistent storage for the database
Connecting your app
After deployment, use the Supabase client library to connect:
import { createClient } from '@supabase/supabase-js';
const supabase = createClient( process.env.SUPABASE_URL!, process.env.SUPABASE_ANON_KEY!);The Supabase Studio dashboard is available at your project URL, where you can manage tables, run queries, and configure auth providers.
What’s next?
- Templates overview — browse all available templates
- Connecting services — understand private networking
- Custom domains — add your own domain to Supabase