Quick Start
DoubleDino is a single binary that runs inside your infrastructure.
To start DoubleDino, configure the operating mode, source connection, and security keys, then run the binary.
A single DoubleDino instance connects to one data source and runs one workflow.
1. Choose a mode
DoubleDino supports two modes:
Proxy mode
Provides read-only access to a data source through a secure HTTP API.
Developers can query production data using the native query language of the underlying database while DoubleDino transforms sensitive information before returning results.
export DD_MODE=proxy
Clone mode
Creates a transformed copy of an existing data source.
DoubleDino reads from the source, applies deterministic redaction, writes to the destination, then exits.
export DD_MODE=clone
2. Configure the source
Set the connection string for the data source.
Example PostgreSQL:
export DD_SOURCE_URL=postgres://postgres:password@localhost:5432/database
The connection format depends on the selected data source.
See Connection Strings for supported formats.
3. Configure security keys
DoubleDino uses two keys:
Secret key
Used for deterministic transformation of sensitive values.
The same secret key always produces the same transformed output, allowing relationships between records to remain consistent.
export DD_SECRET_KEY=your-secret-key
Authentication key
Used to authenticate requests to the DoubleDino HTTP API.
Requests must provide this value using the x-api-key header.
export DD_AUTH_KEY=your-api-key
4. Start DoubleDino
Run:
./doubledino
DoubleDino will:
- Detect the data source type.
- Initialise the required connector.
- Load the transformation engine.
- Start the selected workflow.
Startup normally completes within seconds.
Clone mode example
Clone mode requires a destination connection.
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=my-secret-key
./doubledino
DoubleDino will:
- Read from the source database.
- Transform sensitive values.
- Preserve relationships and formats.
- Write the transformed data to the destination.
- Exit when complete.
The source and destination must be the same database type.
Examples:
Supported:
PostgreSQL → PostgreSQL
MySQL → MySQL
MongoDB → MongoDB
Not supported:
PostgreSQL → MySQL
MongoDB → PostgreSQL
Proxy mode example
Proxy mode starts a read-only API.
export DD_MODE=proxy
export DD_SOURCE_URL=postgres://postgres:password@localhost:5432/production
export DD_SECRET_KEY=my-secret-key
export DD_AUTH_KEY=my-api-key
./doubledino
DoubleDino will connect to the source and start listening for requests.
Developers can then query through the HTTP API.
Example:
curl -G "http://localhost:8080/meta" \
-H "x-api-key: my-api-key"
Response:
{
"status": "online",
"type": "postgres"
}
Running in production
DoubleDino does not require a special runtime environment.
It can run:
- As a standalone process.
- Behind an existing HTTP proxy.
- As part of an automated workflow.
- Started and stopped on demand.
DoubleDino uses standard output and error streams for logging, allowing your infrastructure tooling to collect and manage logs however you prefer.
Common deployment options include:
- systemd
- Docker
- Kubernetes
- ECS
- VM-based deployments
Next steps
Continue with:
- Configuration for all available environment variables.
- Proxy Mode for developer access.
- Clone Mode for creating transformed database copies.