Deployment Architecture
Openfront follows a modern full-stack architecture:- Frontend: Next.js 15 with App Router and React Server Components
- Backend: KeystoneJS 6 with GraphQL API
- Database: PostgreSQL with Prisma ORM
- File Storage: Local filesystem or S3-compatible storage
- Sessions: Database-backed session storage
Application Structure
System Requirements
Minimum Requirements
- Node.js: 20.0.0 or higher
- PostgreSQL: 12 or higher
- Memory: 512MB RAM minimum (2GB+ recommended)
- Storage: 1GB minimum (more for product images)
Openfront requires Node.js 20+ due to React 19 and Next.js 16 requirements.
Database Requirements
Openfront requires a PostgreSQL database for:- Data models (78+ tables)
- Session storage
- File metadata (if using database storage)
Required Environment Variables
Every Openfront deployment requires these environment variables:Database Connection
Session Secret
Optional Environment Variables
Payment Providers
Stripe Integration:Shipping Providers
Shippo Integration:File Storage (S3-Compatible)
Email Configuration
Build Process
Openfront’s build process includes:- KeystoneJS Schema Build: Generates Prisma schema and GraphQL types
- Database Migration: Applies database migrations
- Next.js Build: Compiles frontend and API routes
The build process requires database connectivity to run migrations. Some platforms require special configuration to handle this during deployment.
Deployment Options
Openfront can be deployed to various platforms:Vercel
One-click deployment with automatic PostgreSQL provisioning
Railway
Template-based deployment with managed database
Self-Hosted
Docker or manual deployment on your infrastructure
Post-Deployment Setup
After deploying Openfront:Security Considerations
Environment Variables
- Never commit environment variables to version control
- Use platform-specific secret management
- Rotate SESSION_SECRET regularly in production
- Use different secrets for development and production
Database Security
- Use strong database passwords
- Enable SSL connections for remote databases
- Restrict database access to application servers only
- Regular backup and disaster recovery planning
Application Security
- Keep dependencies updated
- Enable webhook signature verification for payment providers
- Configure CORS appropriately for your domain
- Use HTTPS in production (required for payment processing)
Performance Optimization
Database Optimization
- Enable connection pooling
- Configure appropriate connection limits
- Use read replicas for high-traffic deployments
- Regular database maintenance and vacuuming
Application Optimization
- Enable Next.js production optimizations
- Use CDN for static assets and images
- Configure caching headers appropriately
- Enable database query caching in KeystoneJS
Scaling Considerations
- Horizontal scaling: Multiple application instances behind load balancer
- Vertical scaling: Increase memory and CPU for single instance
- Database scaling: Use managed PostgreSQL with auto-scaling
- File storage: Use S3-compatible storage for multi-instance deployments
Monitoring and Maintenance
Health Checks
Openfront provides health check endpoints:/api/health- Application health status/api/graphql- GraphQL API status
Logging
- Application logs are written to stdout/stderr
- Configure log aggregation for production
- Monitor error rates and response times
- Set up alerting for critical errors
Database Migrations
Next Steps
Choose your deployment platform:- Deploy to Vercel - Recommended for beginners
- Deploy to Railway - Template-based deployment
- Self-Hosted Deployment - Full control and customization