Overview
dFlow lets you deploy and manage production-ready databases with the same simplicity as your applications. You can run them on your own servers, cloud instances, or any infrastructure connected to dFlow.
Whether you're spinning up a single PostgreSQL instance or managing a fleet of Redis clusters, dFlow ensures everything is secure, observable, and easy to scale.
dFlow supports one-click deployment for the most popular databases:
- PostgreSQL
- MySQL
- MariaDB
- MongoDB
- Redis
- ClickHouse
If your preferred database isn’t listed, you can still deploy it using Custom Services any Docker-based database works on dFlow.
Deploying a Database
You can deploy a database directly from your project:
Dashboard → Project → Add Service → Select Database → Deploy
After selecting the database type, dFlow automatically:
- provisions the container
- configures volumes for data persistence
- sets secure default credentials
- attaches networking
- sets up monitoring and logs
All settings can be customized before or after deployment.
Port Mapping vs Public Port
dFlow provides two ways to expose database ports.
Port Mapping (Host ↔ Container)
Port mapping uses Docker’s native port binding.
Example:
8080:5432 means:
- container’s port 5432 → host’s port 8080
Use this when you need:
- private/internal database access
- maximum performance
- local-only access
Public Port (Internet-Accessible)
A public port exposes your database through dFlow’s secure TCP proxy.
This provides:
- flexible port changes without restarting the database
- automatic proxy reloads
- a public hostname + public port
Use this when:
- CI/CD pipelines need access
- remote applications connect to your DB
- you want dynamic port configuration
Which Should You Choose?
| Use Case | Recommended Option |
|---|---|
| Internal/private access only | Port Mapping |
| Need to change port without restart | Public Port |
| External/internet access required | Public Port |
| Maximum performance (no proxy) | Port Mapping |