Quick Deploy
The fastest way to deploy Documenso on Render:- Create a new web service
- Provision a PostgreSQL database
- Build and deploy the application
- Generate secure values for secrets
Manual Deployment
For more control over your deployment:Step 1: Create Render Account
Sign up
Create an account at Render using GitHub, GitLab, or Google.
Step 2: Fork or Clone Repository
Fork the Documenso repository to your GitHub account, or use the official repository directly.Step 3: Create PostgreSQL Database
Create database
In Render dashboard:
- Click “New +” → “PostgreSQL”
- Choose a name:
documenso-db - Select region closest to your users
- Choose plan (Free tier available)
Step 4: Create Web Service
Create new web service
- Click “New +” → “Web Service”
- Connect your GitHub repository
- Select
documenso/documenso(or your fork)
Configure build settings
Render should auto-detect the
render.yaml configuration:- Name:
documenso-app - Environment:
Node - Build Command:
npm i && npm run build - Start Command:
npx prisma migrate deploy --schema packages/prisma/schema.prisma && npx turbo run start --filter=@documenso/remix - Plan: Choose your plan (Free tier available)
Step 5: Configure Environment Variables
Add these environment variables in the Render dashboard:Auto-Generated Variables
Render can auto-generate these:Click “Generate” in Render to create a secure random value.
Click “Generate” in Render to create a secure random value.
Click “Generate” in Render to create a secure random value.
Application URLs
Render provides this automatically. Use the Render external URL:Or your custom domain if configured.
Set to
http://localhost:10000 for Render deployments.Database Configuration
Connect to your PostgreSQL database:Use the Internal Database URL from your PostgreSQL service:
Same as
NEXT_PRIVATE_DATABASE_URL for Render deployments.SMTP Configuration
Set to
smtp-auth (or your preferred transport).Your SMTP server hostname.
SMTP port (typically
587).SMTP authentication username.
SMTP authentication password.
Sender name (e.g., “Documenso”).
Sender email address.
Signing Certificate
Option 1: Base64-Encoded Certificate (Recommended)
Option 1: Base64-Encoded Certificate (Recommended)
Option 2: Using Render Disks
Option 2: Using Render Disks
Step 6: Deploy
The first build may take 5-10 minutes as Render installs dependencies and builds the application.
Configuration Options
Custom Domain
To use a custom domain with your Render deployment:Add custom domain
In web service settings:
- Scroll to “Custom Domains”
- Click “Add Custom Domain”
- Enter your domain (e.g.,
documenso.example.com)
Storage Options
By default, documents are stored in PostgreSQL. For production, use S3:Health Check Path
Render uses health checks to verify your application is running:render.yaml and automatically monitored by Render.
Auto-Deploy on Push
Render automatically deploys when you push to your connected branch (usuallymain):
SMTP Provider Recommendations
Render doesn’t provide SMTP services. Here are some recommended providers:SendGrid (Free tier available)
SendGrid (Free tier available)
Mailgun
Mailgun
Resend
Resend
Managing Your Deployment
View Logs
Access real-time logs from the Render dashboard:- Navigate to your web service
- Click the “Logs” tab
- View streaming logs or search historical logs
Database Access
Connect to your PostgreSQL database:- Render Shell
- External Client
- Go to your PostgreSQL service
- Click “Connect”
- Use the provided connection string
Manual Deploy
Trigger a manual deployment:- Navigate to your web service
- Click “Manual Deploy” → “Deploy latest commit”
Restart Service
- Navigate to your web service
- Click “Manual Deploy” → “Clear build cache & deploy”
Scale Service
Upgrade your plan for more resources:- Service Settings → “Instance Type”
- Choose a larger plan
- Save changes
Troubleshooting
Build Failures
If your build fails:Application Crashes
If the application starts but crashes:Database Connection Issues
SSL/HTTPS Issues
Check SSL certificate
Render auto-provisions SSL certificates. Check status in Custom Domains section.
Email Not Sending
Costs and Limits
Render Pricing
- Free Tier
- Paid Plans
- Web Service: Free (with limitations)
- Spins down after 15 minutes of inactivity
- Limited to 750 hours/month
- PostgreSQL: Free
- 90 days data retention
- Expires after 90 days
Database Storage
- Free: 1GB included
- Additional storage: Billed based on plan
Performance Optimization
Database Connection Pooling
For high-traffic deployments:- Upgrade to a higher database plan
- Configure connection pooling in your environment variables
- Consider using PgBouncer for connection management
Instance Scaling
Scale your web service:- Service Settings → Instance Type
- Choose a plan with more CPU/RAM
- Enable auto-scaling (on higher plans)
Caching
Improve performance with Redis:- Add Redis service in Render
- Configure Redis URL in environment variables
- Use for session storage and caching
Backup and Recovery
Automatic Backups
Render provides automatic daily backups for paid PostgreSQL plans:- Access: PostgreSQL service → Backups tab
- Retention: Based on your plan
- Restore: Click “Restore” on desired backup
Manual Backups
Create manual database backups:Certificate Backup
Store securely:- Original
cert.p12file - Certificate password
- Base64-encoded contents
Advanced Configuration
OAuth Providers
Enable social authentication:- Google OAuth
- Microsoft OAuth
Disable Public Signup
For private deployments:Enable Billing Features
If using Stripe:Next Steps
Custom Domain Setup
Configure a custom domain on Render
Environment Variables
Complete environment variable reference
Email Configuration
Configure email providers
Monitoring
Set up monitoring and alerts
