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)
✨ 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-setupOption 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-setupThen 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-setupOption 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_URLRemix
bun add @sidgaikwad/db-setup
bunx @sidgaikwad/db-setup
# Select: .env
# Select: DATABASE_URLSvelteKit
bun add @sidgaikwad/db-setup
bunx @sidgaikwad/db-setup
# Select: .env
# Select: DATABASE_URLExpress/Fastify
npm install @sidgaikwad/db-setup
npx @sidgaikwad/db-setup
# Select: .env
# Select: POSTGRES_URL📝 Best Practices
✅ DO:
- Use
.env.localfor local development (not committed to git) - Use
.env.productionfor production-specific variables - Use
.env.testfor testing environments - Keep backups of your
.envfiles (CLI creates them automatically) - Use descriptive variable names for multiple databases
❌ DON'T:
- Don't commit
.envfiles 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.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
📝 License
MIT © Siddharth Gaikwad
🙏 Acknowledgments
- @inquirer/prompts for interactive CLI
- chalk for terminal styling
- Neon, Supabase, Railway for excellent database services
🐛 Issues & Support
Found a bug or need help?
📮 Links
Made with ❤️ by Siddharth Gaikwad