Phase 2 complete — PostgreSQL + Redis ready

Local databases for developers,
zero dependencies

Emulate Redis and PostgreSQL locally with a single CLI command. Built-in web dashboard, persistent storage, and wire-compatible drivers — no Docker, no cloud, fully offline.

terminal
$ npm install -g localdb-simulator
+ localdb-simulator@0.1.0

$ lds init
✔ Created localdb-simulator.yaml

$ lds start
✔ redis     running  127.0.0.1:6379
✔ postgres  running  127.0.0.1:5432
◆ Dashboard http://127.0.0.1:8080

$ lds status
  NAME      STATUS   PORT   UPTIME   MEMORY
  redis     running  6379   12s      4.2 MB
  postgres  running  5432   12s      38.1 MB

Everything you need for local development

No cloud account, no Docker daemon, no network required.

🚀

No Docker required

Redis and PostgreSQL run as pure Node.js processes. Nothing to install beyond npm i -g localdb-simulator.

📊

Web Dashboard

Built-in dashboard at localhost:8080 — service cards, live metrics charts, log streaming, and a data browser.

⌨️

Ergonomic CLI

lds start, lds stop, lds logs, lds status. Auto-starts the server if not running.

💾

Optional Persistence

Toggle persistence: true per service. Data survives restarts using LevelDB snapshots (Redis) or pglite files (PostgreSQL).

🔌

Wire-compatible drivers

Connect with your existing code. ioredis, redis, pg, node-postgres — all work without modification.

🔒

Fully offline & secure

All services bind to 127.0.0.1 only. No telemetry. No network calls on startup. Completely air-gapped friendly.

Supported databases

Each emulator is wire-compatible — use your existing client library unchanged.

R
Redis ✓ Available

RESP over TCP. Full command set: strings, hashes, lists, sets, sorted sets, pub/sub, TTL, SELECT, pipelines.

127.0.0.1:6379

ioredis · redis

P
PostgreSQL ✓ Available

Powered by pglite (WebAssembly). Multi-database, MD5/trust auth, JSONB, prepared statements, transactions.

127.0.0.1:5432

pg · node-postgres

S
SQLite ⏳ Coming soon

File-based via better-sqlite3. Manages .db files with a full data browser. No TCP port (embedded).

file:// path

better-sqlite3

M
MongoDB ✓ Available

Powered by mongodb-memory-server — official mongod binary (~77 MB, cached after first run). Multi-database, aggregation pipeline, indexes.

127.0.0.1:27017

mongodb driver

My
MySQL ⚙ Optional · Docker

Requires Docker daemon. Spawns an official mysql:8 container. Gracefully disabled when Docker is unavailable.

127.0.0.1:3306

mysql2 · Sequelize

Quick start

Up and running in under a minute.

1 Install
# npm
$ npm install -g localdb-simulator

# pnpm
$ pnpm add -g localdb-simulator

# yarn
$ yarn global add localdb-simulator
2 Create config
# Generates localdb-simulator.yaml
$ lds init

# Or copy the sample config and edit
# localdb-simulator.yaml:
version: "1"
services:
  redis:
    enabled: true
    port: 6379
3 Start services
$ lds start
✔ redis     running  127.0.0.1:6379
✔ postgres  running  127.0.0.1:5432
◆ Dashboard http://127.0.0.1:8080

# Or start a specific service
$ lds start redis
4 Connect your app
// Redis
import Redis from 'ioredis';
const redis = new Redis('redis://127.0.0.1:6379');

// PostgreSQL
import { Pool } from 'pg';
const pool = new Pool({
  host: '127.0.0.1', port: 5432,
  database: 'myapp_dev',
});

One-click .env copy

The dashboard generates ready-to-paste .env connection strings for all running services. Click the copy button, paste into your project — done.

  • Formatted for common frameworks (Next.js, Prisma, TypeORM)
  • Updates automatically as services start/stop
  • Includes all configured databases and ports
.env Copied!
# Redis
REDIS_URL=redis://127.0.0.1:6379

# PostgreSQL
DATABASE_URL=postgresql://postgres@127.0.0.1:5432/myapp_dev
POSTGRES_HOST=127.0.0.1
POSTGRES_PORT=5432
POSTGRES_DB=myapp_dev

# MongoDB
MONGODB_URI=mongodb://127.0.0.1:27017/myapp_dev