Deploy to Railway¶
Railway provides easy deployment with built-in PostgreSQL.
Quick Deploy¶
- Go to railway.app
- Click "New Project"
- Select "Deploy from GitHub repo"
- Connect your repository
Using Railway CLI¶
Install CLI¶
Login¶
Initialize Project¶
Deploy¶
Add PostgreSQL¶
- In your Railway project, click "New"
- Select "Database" > "PostgreSQL"
- Railway will automatically set
DATABASE_URL
Environment Variables¶
Add environment variables in the Railway dashboard:
- Go to your service
- Click "Variables"
- Add each required variable:
AUTH_SECRET=your-secret
AUTH_URL=https://your-app.railway.app
STRIPE_SECRET_KEY=sk_...
STRIPE_PUBLISHABLE_KEY=pk_...
STRIPE_WEBHOOK_SECRET=whsec_...
CLOUDINARY_CLOUD_NAME=...
CLOUDINARY_API_KEY=...
CLOUDINARY_API_SECRET=...
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=...
NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET=...
NEXT_PUBLIC_APP_URL=https://your-app.railway.app
Reference DATABASE_URL
Railway automatically connects DATABASE_URL when you add PostgreSQL.
Build Configuration¶
Railway will automatically detect Next.js. You can customize in railway.json:
{
"$schema": "https://railway.app/railway.schema.json",
"build": {
"builder": "NIXPACKS"
},
"deploy": {
"startCommand": "npm run start",
"restartPolicyType": "ON_FAILURE",
"restartPolicyMaxRetries": 10
}
}
Custom Domain¶
- Go to Settings > Domains
- Add your custom domain
- Configure DNS as instructed
Database Commands¶
Run database commands via Railway CLI:
# Push schema
railway run npx prisma db push
# Seed database
railway run npm run db:seed
# Open Prisma Studio (local)
railway run npx prisma studio
Monitoring¶
Railway provides:
- Deployment logs
- Build logs
- Usage metrics
- Health monitoring
Access via the Railway dashboard or CLI: