Docker Containers

By default, turbo-kit includes the following docker containers for local development:

  • PostgreSQL - Relational database
  • PgAdmin - PostgreSQL web client
  • Redis - In-memory cache
  • Serverless Redis HTTP - Upstash-compatible Redis HTTP interface
  • Mailpit - Email testing server
  • Minio - S3-compatible object storage

All services are configured with health checks and run on the dev-net network.

PostgreSQL

PostgreSQL is the primary database for turbo-kit. It runs on postgres:16-alpine.

Connection Details:

  • Host: localhost
  • Port: 5432
  • Database: appdb
  • Username: dev
  • Password: devpass

Connection String:

postgresql://dev:devpass@localhost:5432/appdb

Data Persistence:
Database files are stored in ./docker/postgres/data for persistence across container restarts.

PgAdmin

PgAdmin is a web-based PostgreSQL administration tool that allows you to manage your database through a GUI.

Access Details:

The PostgreSQL server is pre-configured in PgAdmin via the servers.json file, so you can start querying immediately after logging in.

Redis

Redis is the caching solution for turbo-kit. It provides fast in-memory data storage for sessions, caching, and real-time features.

Connection Details:

  • Host: localhost
  • Port: 6379

Connection String:

redis://localhost:6379

Serverless Redis HTTP

A lightweight HTTP server that provides REST API compatibility with Upstash Redis. This allows you to use the Upstash Redis client locally for development.

Access Details:

Usage Example:

import { Redis } from '@upstash/redis'
 
const redis = new Redis({
  url: 'http://localhost:8079',
  token: 'dev_token',
})

Learn more at serverless-redis-http.

Mailpit

Mailpit is a local email testing server that captures all outgoing emails during development. It provides a web interface to view and debug emails without sending them to real recipients.

Access Details:

SMTP Configuration:

SMTP_HOST=localhost
SMTP_PORT=1025
SMTP_USER= # (not required)
SMTP_PASSWORD= # (not required)

All emails sent to the SMTP server will appear in the web interface for easy testing and debugging.

Minio

Minio is an S3-compatible object storage server that allows you to develop and test file uploads locally without using AWS S3.

Access Details:

Pre-configured Bucket:
A bucket named dev-bucket is automatically created with public read access on startup.

Usage Example:

import { S3Client } from '@aws-sdk/client-s3'
 
const s3Client = new S3Client({
  endpoint: 'http://localhost:9000',
  region: 'us-east-1',
  credentials: {
    accessKeyId: 'minioadmin',
    secretAccessKey: 'minioadmin123',
  },
  forcePathStyle: true, // Required for Minio
})

You can access the web console to browse files, create buckets, and manage storage policies.