Initial commit - QR Master application
This commit is contained in:
187
CHANGELOG.md
Normal file
187
CHANGELOG.md
Normal file
@@ -0,0 +1,187 @@
|
||||
# Changelog - PostgreSQL Migration
|
||||
|
||||
## [2.0.0] - 2024-10-13
|
||||
|
||||
### 🎉 Major Changes - Supabase to PostgreSQL Migration
|
||||
|
||||
#### Removed
|
||||
- ❌ **Supabase dependency** - Removed all Supabase-specific configurations
|
||||
- ❌ **DIRECT_URL** - Removed connection pooling URL (Supabase-specific)
|
||||
- ❌ **External database dependency** - Now fully self-hosted
|
||||
|
||||
#### Added
|
||||
- ✅ **PostgreSQL 16 in Docker** - Local PostgreSQL database with Docker support
|
||||
- ✅ **Redis 7** - Caching and rate limiting with Redis
|
||||
- ✅ **Adminer** - Database management UI (http://localhost:8080)
|
||||
- ✅ **Docker Compose setups** - Both development and production configurations
|
||||
- ✅ **Database initialization** - Automated database setup with extensions
|
||||
- ✅ **Complete documentation** - Multiple guides for setup and migration
|
||||
- ✅ **Setup scripts** - Automated setup for both Linux/Mac and Windows
|
||||
- ✅ **npm scripts** - Convenient Docker commands via npm
|
||||
|
||||
#### Modified Files
|
||||
- 📝 `prisma/schema.prisma` - Removed directUrl field
|
||||
- 📝 `src/lib/env.ts` - Removed DIRECT_URL, updated DATABASE_URL default
|
||||
- 📝 `docker-compose.yml` - Complete rewrite with PostgreSQL, Redis, and networking
|
||||
- 📝 `Dockerfile` - Enhanced with proper PostgreSQL support
|
||||
- 📝 `package.json` - Added Docker scripts and tsx dependency
|
||||
- 📝 `README.md` - Updated with new setup instructions
|
||||
|
||||
#### New Files
|
||||
- 📄 `docker-compose.dev.yml` - Development environment (database only)
|
||||
- 📄 `docker/init-db.sh` - PostgreSQL initialization script
|
||||
- 📄 `docker/README.md` - Docker-specific documentation
|
||||
- 📄 `DOCKER_SETUP.md` - Comprehensive Docker setup guide
|
||||
- 📄 `MIGRATION_FROM_SUPABASE.md` - Step-by-step migration guide
|
||||
- 📄 `env.example` - Environment variable template
|
||||
- 📄 `.dockerignore` - Docker build optimization
|
||||
- 📄 `scripts/setup.sh` - Quick setup script (Linux/Mac)
|
||||
- 📄 `scripts/setup.ps1` - Quick setup script (Windows)
|
||||
- 📄 `CHANGELOG.md` - This file
|
||||
|
||||
### 📦 Docker Services
|
||||
|
||||
#### PostgreSQL Database
|
||||
- **Image**: postgres:16-alpine
|
||||
- **Port**: 5432
|
||||
- **Features**:
|
||||
- Health checks
|
||||
- Volume persistence
|
||||
- UTF-8 encoding
|
||||
- Extensions: uuid-ossp, pg_trgm
|
||||
|
||||
#### Redis Cache
|
||||
- **Image**: redis:7-alpine
|
||||
- **Port**: 6379
|
||||
- **Features**:
|
||||
- AOF persistence
|
||||
- 256MB max memory with LRU eviction
|
||||
- Health checks
|
||||
|
||||
#### Next.js Application
|
||||
- **Port**: 3000
|
||||
- **Features**:
|
||||
- Multi-stage build
|
||||
- Production optimization
|
||||
- Health checks
|
||||
- Automatic Prisma generation
|
||||
|
||||
#### Adminer (Development)
|
||||
- **Port**: 8080
|
||||
- **Features**:
|
||||
- Database management UI
|
||||
- Optional (dev profile)
|
||||
- Pre-configured for PostgreSQL
|
||||
|
||||
### 🚀 Quick Start
|
||||
|
||||
#### Development Mode
|
||||
```bash
|
||||
npm run docker:dev # Start database
|
||||
npm run db:migrate # Run migrations
|
||||
npm run dev # Start app
|
||||
```
|
||||
|
||||
#### Production Mode
|
||||
```bash
|
||||
npm run docker:prod # Start all services
|
||||
```
|
||||
|
||||
### 📚 Documentation
|
||||
|
||||
- **README.md** - Main documentation with quick start
|
||||
- **DOCKER_SETUP.md** - Complete Docker guide with troubleshooting
|
||||
- **MIGRATION_FROM_SUPABASE.md** - Migration guide from Supabase
|
||||
- **docker/README.md** - Docker commands and operations
|
||||
- **env.example** - Environment variable reference
|
||||
|
||||
### 🔧 New npm Scripts
|
||||
|
||||
```bash
|
||||
# Docker commands
|
||||
npm run docker:dev # Start development services
|
||||
npm run docker:dev:stop # Stop development services
|
||||
npm run docker:prod # Start production stack
|
||||
npm run docker:stop # Stop all services
|
||||
npm run docker:logs # View all logs
|
||||
npm run docker:db # PostgreSQL CLI
|
||||
npm run docker:redis # Redis CLI
|
||||
npm run docker:backup # Backup database
|
||||
```
|
||||
|
||||
### 🔐 Environment Variables
|
||||
|
||||
#### Required
|
||||
- `DATABASE_URL` - PostgreSQL connection string
|
||||
- `NEXTAUTH_SECRET` - NextAuth.js secret (generate with openssl)
|
||||
- `NEXTAUTH_URL` - Application URL
|
||||
- `IP_SALT` - Salt for IP hashing (generate with openssl)
|
||||
|
||||
#### Optional
|
||||
- `GOOGLE_CLIENT_ID` - Google OAuth client ID
|
||||
- `GOOGLE_CLIENT_SECRET` - Google OAuth secret
|
||||
- `REDIS_URL` - Redis connection string
|
||||
- `ENABLE_DEMO` - Enable demo mode
|
||||
|
||||
### 🎯 Benefits
|
||||
|
||||
1. **Full Control** - Own your data and infrastructure
|
||||
2. **No Vendor Lock-in** - Standard PostgreSQL
|
||||
3. **Lower Latency** - Local network speed
|
||||
4. **Cost Effective** - No monthly database fees
|
||||
5. **Privacy** - Data stays on your infrastructure
|
||||
6. **Development** - Easy local testing
|
||||
7. **Offline Capable** - Works without internet
|
||||
|
||||
### 🔄 Migration Path
|
||||
|
||||
1. Backup Supabase data
|
||||
2. Update codebase
|
||||
3. Start local PostgreSQL
|
||||
4. Restore data or run migrations
|
||||
5. Update environment variables
|
||||
6. Deploy
|
||||
|
||||
See [MIGRATION_FROM_SUPABASE.md](MIGRATION_FROM_SUPABASE.md) for detailed steps.
|
||||
|
||||
### ⚠️ Breaking Changes
|
||||
|
||||
- `DIRECT_URL` environment variable removed
|
||||
- Database now requires Docker or local PostgreSQL
|
||||
- Supabase-specific features removed
|
||||
|
||||
### 📊 Performance Improvements
|
||||
|
||||
- Local database reduces latency
|
||||
- Redis caching improves response times
|
||||
- Connection pooling via Prisma
|
||||
- Optimized Docker images
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- Fixed database connection handling
|
||||
- Improved error messages
|
||||
- Better health checks
|
||||
|
||||
### 🔜 Future Enhancements
|
||||
|
||||
- [ ] PostgreSQL replication for HA
|
||||
- [ ] Redis Sentinel for failover
|
||||
- [ ] Automated backup scripts
|
||||
- [ ] Monitoring and alerting
|
||||
- [ ] Database performance tuning
|
||||
- [ ] Multi-region deployment
|
||||
|
||||
### 📝 Notes
|
||||
|
||||
- Default PostgreSQL password should be changed in production
|
||||
- Always backup data before migration
|
||||
- Review security settings before deployment
|
||||
- Set up automated backups in production
|
||||
|
||||
---
|
||||
|
||||
**Migration completed successfully!** 🎉
|
||||
|
||||
For support, see documentation or open an issue on GitHub.
|
||||
|
||||
Reference in New Issue
Block a user