JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3
  • Score
    100M100P100Q40722F
  • License MIT

Interactive CLI for setting up PostgreSQL databases with multiple providers (Neon, Supabase, Railway, Local)

Package Exports

  • @sidgaikwad/db-setup
  • @sidgaikwad/db-setup/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@sidgaikwad/db-setup) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

🗄️ Database Setup CLI

Interactive CLI for setting up PostgreSQL databases with multiple providers (Neon, Supabase, Railway, Local Docker)

npm version License: MIT

✨ Features

  • 🎯 Multiple Providers: Neon, Supabase, Railway, Local Docker
  • 🌍 Region Selection: Choose from 11+ global regions with emoji flags
  • ⚙️ Auto Configuration: Automatically writes database URL to .env
  • 📁 Custom .env Paths: Support for any .env file location
  • 🏷️ Custom Variable Names: Use any variable name (DATABASE_URL, POSTGRES_URL, etc.)
  • 💾 Safe Updates: Creates backups before modifying files
  • 🔒 Overwrite Protection: Asks before overwriting existing variables
  • 🎨 Beautiful CLI: Color-coded, interactive prompts
  • 🚀 Zero Config: Works out of the box with Bun or Node.js

🚀 Quick Start

# With Bun
bunx @sidgaikwad/db-setup

# With npm
npx @sidgaikwad/db-setup

Option 2: Install Locally

# With Bun
bun add @sidgaikwad/db-setup

# With npm
npm install @sidgaikwad/db-setup

# With pnpm
pnpm add @sidgaikwad/db-setup

# With yarn
yarn add @sidgaikwad/db-setup

Then run:

# Using package scripts
bun run create-db-setup
# or
npm run create-db-setup

# Using npx/bunx
bunx @sidgaikwad/db-setup
# or
npx @sidgaikwad/db-setup

Option 3: Install Globally

# With Bun
bun install -g @sidgaikwad/db-setup

# With npm
npm install -g @sidgaikwad/db-setup

# Then run anywhere
create-db-setup
# or
db-setup

📦 Adding to Your Project

In Next.js, Remix, or any Node.js project:

# Install the package
bun add @sidgaikwad/db-setup

# Add to package.json scripts (optional)

package.json:

{
  "scripts": {
    "db:setup": "create-db-setup",
    "setup": "create-db-setup"
  }
}

Then run:

bun run db:setup
# or
npm run db:setup

🎯 Usage

$ bunx @sidgaikwad/db-setup

🗄️  Database Setup CLI

Configure your PostgreSQL database with ease!

================ Database Setup ================

? Choose your PostgreSQL provider: (Use arrow keys)
  ❯ Neon (Serverless PostgreSQL)
    Supabase (Open Source Firebase Alternative)
    Railway (Platform as a Service)
    Local PostgreSQL (Docker)
    I already have a DATABASE_URL
    I'll configure later

[Select your provider and follow the interactive setup]

================ Environment Configuration ================

? Select your .env file location: (Use arrow keys)
  ❯ .env (Root directory)
    .env.local (Local environment)
    .env.development (Development)
    .env.production (Production)
    config/.env (Config directory)
    apps/backend/.env (Monorepo backend)
    Custom path...

? Select the environment variable name: (Use arrow keys)
  ❯ DATABASE_URL (Standard)
    POSTGRES_URL (Alternative)
    DB_URL (Short form)
    DB_CONNECTION_STRING (Descriptive)
    DIRECT_URL (Prisma direct)
    DATABASE_CONNECTION (Verbose)
    Custom variable name...

✅ Database configured successfully!

🎉 Setup completed successfully!

📚 Supported Providers

🔷 Neon (Serverless PostgreSQL)

  • Automatic CLI authentication
  • 11 global regions (AWS + Azure)
  • Pooled connections
  • Free tier available
  • Regions: US East, US West, EU Central, EU West, Asia Pacific, South America

🟢 Supabase (Open Source Firebase Alternative)

  • Project creation via CLI
  • Global region selection
  • Connection pooling
  • Generous free tier
  • Features: Real-time, Auth, Storage, Edge Functions

🚂 Railway (Platform as a Service)

  • One-click PostgreSQL deployment
  • Automatic environment variables
  • Simple pricing
  • Perfect for: Quick deployments, side projects

🐳 Local Docker

  • Instant local PostgreSQL
  • Pre-configured docker-compose
  • Perfect for development
  • No cloud account needed

🛠️ Requirements

  • Node.js >= 18.0.0 OR Bun >= 1.0.0
  • npm, yarn, pnpm, or bun

💡 Examples

Example 1: Standard Setup

bunx @sidgaikwad/db-setup
# Select: Neon
# Select: .env (Root directory)
# Select: DATABASE_URL (Standard)

Example 2: Monorepo Setup

bunx @sidgaikwad/db-setup
# Select: Neon
# Select: apps/backend/.env (Monorepo backend)
# Select: DATABASE_URL (Standard)

Example 3: Custom Variable Name

bunx @sidgaikwad/db-setup
# Select: Supabase
# Select: .env.local (Local environment)
# Select: POSTGRES_URL (Alternative)

Example 4: Multiple Databases

# Primary database
bunx @sidgaikwad/db-setup
# Variable: DATABASE_URL

# Analytics database
bunx @sidgaikwad/db-setup
# Variable: ANALYTICS_DATABASE_URL

🔧 Integration with Frameworks

Next.js

bun add @sidgaikwad/db-setup
bunx @sidgaikwad/db-setup
# Select: .env.local
# Select: DATABASE_URL

Remix

bun add @sidgaikwad/db-setup
bunx @sidgaikwad/db-setup
# Select: .env
# Select: DATABASE_URL

SvelteKit

bun add @sidgaikwad/db-setup
bunx @sidgaikwad/db-setup
# Select: .env
# Select: DATABASE_URL

Express/Fastify

npm install @sidgaikwad/db-setup
npx @sidgaikwad/db-setup
# Select: .env
# Select: POSTGRES_URL

📝 Best Practices

✅ DO:

  • Use .env.local for local development (not committed to git)
  • Use .env.production for production-specific variables
  • Use .env.test for testing environments
  • Keep backups of your .env files (CLI creates them automatically)
  • Use descriptive variable names for multiple databases

❌ DON'T:

  • Don't commit .env files with real credentials to git
  • Don't use the same database for development and production
  • Don't forget to add .env* to your .gitignore

🔒 Security

.gitignore:

.env
.env.local
.env.*.local
.env.backup

.env.example (commit this):

# Database Configuration
DATABASE_URL=postgresql://user:password@localhost:5432/dbname

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 License

MIT © Siddharth Gaikwad

🙏 Acknowledgments

🐛 Issues & Support

Found a bug or need help?


Made with ❤️ by Siddharth Gaikwad