Skip to content

sidgaikwad/db-setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

23 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ—„๏ธ 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

Option 1: Run Without Installing (Recommended)

# 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?

๐Ÿ“ฎ Links


Made with โค๏ธ by Siddharth Gaikwad

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published