Project Services

Configure Supabase services for your projects.

Each Supabase project consists of multiple services. Learn what each service does and how to configure them.

Core Services

These services are always enabled and required for Supabase to function:

PostgreSQL (db)

The main database powering your project.

SettingDescription
PortDefault 5432 (auto-assigned)
VersionPostgreSQL 15
Extensionspgvector, pgjwt, and more pre-installed

PostgREST (rest)

Automatically generates a REST API from your database schema.

SettingDescription
PortExposed through Kong
Schemapublic, storage, graphql_public
Anonymous RoleControlled by RLS policies

GoTrue (auth)

Handles user authentication and authorization.

SettingDescription
JWT ExpiryDefault 3600 seconds
ProvidersEmail, Phone, OAuth
External ProvidersConfigurable via settings

Kong (kong)

API gateway that routes requests to services.

SettingDescription
Port8000 (HTTP), 8443 (HTTPS)
Routes/rest, /auth, /storage, etc.

Studio (studio)

Web-based database management interface.

SettingDescription
PortDefault 3000 (auto-assigned)
FeaturesTable editor, SQL editor, Auth UI

Meta (meta)

Provides metadata about the database.

SettingDescription
PortInternal only
PurposeSchema introspection

Optional Services

Enable these based on your requirements:

Realtime (realtime)

WebSocket server for real-time subscriptions.

Enable when:

  • Building collaborative features
  • Need live data updates
  • Implementing presence features
// Client usage
const channel = supabase
  .channel('room1')
  .on('postgres_changes', { event: '*', schema: 'public' }, payload => {
    console.log('Change received:', payload)
  })
  .subscribe()

Storage (storage)

File storage with CDN-like features.

Enable when:

  • Storing user uploads
  • Managing images and documents
  • Need signed URLs
// Client usage
const { data, error } = await supabase.storage
  .from('avatars')
  .upload('public/avatar.png', file)

Edge Functions (functions)

Serverless TypeScript/JavaScript functions.

Enable when:

  • Custom server-side logic
  • Third-party API integrations
  • Complex business rules
// Deploy function
supabase functions deploy my-function

PgBouncer (pooler)

Connection pooling for high-traffic applications.

Enable when:

  • Many concurrent connections
  • Serverless deployments
  • Connection limits reached

Analytics (analytics)

Usage analytics and monitoring.

Enable when:

  • Want to track API usage
  • Need performance metrics
  • Debugging slow queries

Imgproxy (imgproxy)

On-the-fly image transformation.

Enable when:

  • Need image resizing
  • Want format conversion
  • Optimizing image delivery

Inbucket (inbucket)

Local email testing server.

Enable when:

  • Development environment
  • Testing email flows
  • No SMTP configured

Inbucket is for development only. Never enable in production.

Managing Services

View Enabled Services

Via Web UI

  1. Click on a project
  2. Go to Services tab
  3. See enabled/disabled status

Via API

curl https://supascale.example.com/api/v1/projects/my-project/services \
  -H "X-API-Key: your-api-key"

Response:

{
  "services": ["db", "rest", "auth", "kong", "studio", "meta", "realtime", "storage"],
  "enabledServices": {
    "db": true,
    "rest": true,
    "auth": true,
    "kong": true,
    "studio": true,
    "meta": true,
    "realtime": true,
    "storage": true,
    "functions": false,
    "pooler": false,
    "analytics": false,
    "imgproxy": false,
    "inbucket": false
  }
}

Enable/Disable Services

Via Web UI

  1. Click on a project
  2. Go to Services tab
  3. Toggle services on/off
  4. Click Save Changes
  5. Restart the project

Via API

curl -X PUT https://supascale.example.com/api/v1/projects/my-project/services \
  -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "services": ["db", "rest", "auth", "kong", "studio", "meta", "realtime", "storage", "functions"]
  }'

Service changes require a project restart to take effect.

Service Dependencies

Some services depend on others:

ServiceRequires
Alldb, meta
restkong
authkong
storagekong
functionskong
realtimedb

Supascale automatically enables dependencies when you select a service.

Resource Usage by Service

ServiceMemoryCPU
db256MB+Low-Medium
rest64MBLow
auth64MBLow
kong128MBLow
studio128MBLow
realtime128MBMedium
storage64MBLow
functions256MB+Variable
pooler64MBLow
analytics128MBLow
imgproxy128MBMedium
inbucket32MBLow

Best Practices

Development Environment

Enable all services for full functionality:

  • All core services
  • Realtime, Storage, Functions
  • Inbucket for email testing

Production Environment

Enable only what you need:

  • Core services
  • Services your app uses
  • PgBouncer for high traffic

Staging Environment

Mirror production configuration:

  • Same services as production
  • Inbucket instead of real SMTP