Quick Start
DoubleDino is a single binary. Each instance connects to one data source and runs in one of two modes:
- Proxy: query a source and receive transformed results.
- Clone: transform a source into a separate destination.
Configure the instance with environment variables, then run the binary.
Proxy mode
Use Proxy when developers need current production context without receiving the original sensitive values.
export DD_MODE=proxy
export DD_SOURCE_URL='postgres://postgres:password@localhost:5432/production'
export DD_SECRET_KEY='your-secret-key'
export DD_AUTH_KEY='your-api-key'
./doubledino
DoubleDino starts an HTTP API on port 8080 by default.
Check that it is running:
curl -G "http://localhost:8080/meta" \
-H "x-api-key: $DD_AUTH_KEY"
A successful response looks like:
{
"status": "online",
"type": "postgres"
}
Developers can now send queries to DoubleDino. The query runs against the source, and the response is transformed before it is returned.
Clone mode
Use Clone when you need a standalone transformed database for development, testing, QA, or reproducing production issues.
Clone requires both a source and destination:
export DD_MODE=clone
export DD_SOURCE_URL='postgres://postgres:password@localhost:5432/production'
export DD_DEST_URL='postgres://postgres:password@localhost:5432/development'
export DD_SECRET_KEY='your-secret-key'
./doubledino
DoubleDino:
- Reads the source.
- Transforms sensitive values.
- Preserves relationships and useful data characteristics.
- Writes the transformed data to the destination.
- Exits when the clone is complete.
The source and destination must use the same data source type.
PostgreSQL → PostgreSQL
MySQL → MySQL
MariaDB → MariaDB
MongoDB → MongoDB
Cross-database cloning is not supported.
Configuration
The minimum configuration depends on the selected mode.
| Variable | Proxy | Clone | Purpose |
|---|---|---|---|
DD_MODE | Required | Required | Selects proxy or clone |
DD_SOURCE_URL | Required | Required | Source connection |
DD_SECRET_KEY | Required | Required | Controls deterministic transformation |
DD_AUTH_KEY | Required | - | Authenticates API requests |
DD_DEST_URL | - | Required | Destination connection |
Keep DD_SECRET_KEY and DD_AUTH_KEY private.
See Configuration for all available settings and source-specific connection formats.
Running DoubleDino
DoubleDino is designed to run wherever your infrastructure runs.
It can be:
- Started and stopped on demand.
- Run as a long-lived service.
- Run behind an existing reverse proxy.
- Started by automation or scheduled workflows.
DoubleDino writes logs to standard output and standard error, so your existing infrastructure can collect and manage them.
See Deployment Models for deployment examples.
What to read next
- Configuration: environment variables and connection settings.
- Deployment Models: running DoubleDino with systemd, Docker, Kubernetes, or other infrastructure.
- Security Model: how DoubleDino handles source access, authentication, and transformed data.