#
Deployment
QuickDapp supports two main deployment strategies: self-contained binaries and Docker containers. Both approaches are designed for simplicity and minimal server setup requirements.
#
Deployment Options
#
Binary Deployment (Recommended)
Self-contained executables with embedded assets:
Advantages:
- Minimal dependencies (no Node.js or Docker required)
- Single file deployment
- Fast startup times
- Easy to manage and backup
Best for:
- Simple server deployments
- VPS hosting
- Testing and staging environments
Learn more about Binary Deployment →
#
Docker Deployment
Containerized deployment using pre-built binaries:
Advantages:
- Consistent environment across deployments
- Container orchestration support
- Easy scaling and management
- Isolated runtime environment
Best for:
- Cloud deployments
- Teams using containerized infrastructure
- Multi-environment setups
Learn more about Docker Deployment →
#
Quick Start
#
1. Build for Production
# Build self-contained binaries (default behavior)
bun run build
# For Docker deployment
bun run build
docker build -t quickdapp:latest .
#
2. Setup Environment
Create production environment configuration:
# .env.production
DATABASE_URL=postgresql://user:password@host:5432/database
SESSION_ENCRYPTION_KEY=your_32_character_encryption_key
SERVER_WALLET_PRIVATE_KEY=0xYourWalletPrivateKey
CHAIN=sepolia
CHAIN_RPC_ENDPOINT=https://sepolia.infura.io/v3/your-api-key
FACTORY_CONTRACT_ADDRESS=0xYourContractAddress
#
3. Deploy Database
Setup your production database and run migrations:
# Run database migrations
NODE_ENV=production bun run db migrate
#
4. Deploy Application
Binary Deployment:
# Upload and run binary
scp dist/binaries/quickdapp-linux-x64 user@server:/opt/quickdapp/
ssh user@server
chmod +x /opt/quickdapp/quickdapp-linux-x64
NODE_ENV=production /opt/quickdapp/quickdapp-linux-x64
Docker Deployment:
# Run container
docker run -d \
--name quickdapp \
-p 3000:3000 \
--env-file .env.production \
quickdapp:latest
#
Infrastructure Requirements
#
Minimum Server Specs
Development/Testing:
- 1 CPU core
- 512 MB RAM
- 1 GB disk space
Production:
- 2 CPU cores
- 1 GB RAM
- 5 GB disk space (for logs and backups)
#
Database Requirements
PostgreSQL:
- Version 11 or higher
- Dedicated database for the application
- Regular backups recommended
#
Network Requirements
- Inbound port 3000 (or your configured port)
- Outbound HTTPS access for blockchain RPC
- Outbound access for external services (email, monitoring)
#
Environment Setup
#
Production Database
Use a managed PostgreSQL service for production:
Recommended Providers:
- DigitalOcean Managed Databases
- AWS RDS PostgreSQL
- Railway Database
- Supabase
#
SSL/TLS Termination
Use a reverse proxy for HTTPS:
Nginx Example:
server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# WebSocket support
location /ws {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
#
Monitoring and Maintenance
#
Health Checks
QuickDapp provides built-in health endpoints:
# Basic health check
curl http://localhost:3000/health
#
Log Management
Configure log rotation for production:
# Using logrotate (Linux)
/opt/quickdapp/logs/*.log {
daily
rotate 7
compress
missingok
create 644 quickdapp quickdapp
}
#
Backup Strategy
Database Backups:
# Automated database backup
pg_dump $DATABASE_URL > backup-$(date +%Y%m%d).sql
Application Backups:
# Backup binary and configuration
tar -czf quickdapp-backup-$(date +%Y%m%d).tar.gz \
quickdapp-linux-x64 \
.env.production
#
Security Considerations
#
Firewall Configuration
# Basic firewall setup (ufw)
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
#
File Permissions
# Secure file permissions
chmod 750 quickdapp-linux-x64
chmod 640 .env.production
#
Updates
Keep the system and application updated:
# Update server packages
sudo apt update && sudo apt upgrade -y
# Deploy new application version
# 1. Stop application
# 2. Replace binary
# 3. Run database migrations if needed
# 4. Start application
#
Troubleshooting
#
Common Issues
Application won't start:
- Check environment variables are set correctly
- Verify database connectivity
- Check port availability
Database connection errors:
- Verify DATABASE_URL format
- Check database server is running
- Test connectivity from server
Performance issues:
- Monitor resource usage with
htop
- Check database query performance
- Review application logs
#
Getting Help
Check logs for error details:
# Binary deployment
tail -f quickdapp.log
# Docker deployment
docker logs quickdapp
QuickDapp's deployment options provide flexibility while maintaining simplicity for most use cases.