Frequently Asked Questions

How do you connect to a local database when running Tonic in a Docker container locally?

If the locally running database that you want to connect to runs in a Docker container:
  1. 1.
    Run: docker inspect
  2. 2.
    In the networks section of the results, find the Gateway IP address. Use this IP address as the server address in Tonic.
If the locally running database does NOT run in a container, but runs on the machine, then:
  • On Windows or Mac, use host.docker.internal
  • On Linux, use, which is the IP address of the docker0 interface.

I allowlist access to my database. What are your static IP addresses?

If you use a hosted Tonic instance, and your database only allows connections from allowlisted IP addresses, then you need to allowlist Tonic static IP addresses.
For the United States-based instance (, the static IP addresses are:
For the Europe-based instance (, the static IP addresses are:

I allowlist network calls. What do I need to allowlist?

Amplitude URL for telemetry

You must allowlist, which is used for our telemetry. See the Amplitude site for more information.
These metrics are valuable for us as we debug, make product roadmaps, and determine feature viability.
No customer data is included.

URLs for Tonic version information

To support the one-click update option, Tonic needs to be able to retrieve information about the latest Tonic version.

How do I check my current version of Tonic?

Click the menu in the upper right corner:

How should we provision our source database?

We recommend that you use a static copy of your production database that was restored from a backup.
If that's not possible, consider the following when you connect Tonic to your source data:
  • Tonic cannot guarantee referentially integrity of the output data if the source database is written to while data is generated. For this reason we recommend that you connect to a static copy of production data.
  • Read replicas and fast followers can be problematic for Tonic because of how long it takes some queries run. Read replicas tend to have short query timeout limits, which causes the queries to timeout. Read replicas also reflect recent writes, which means that we cannot guarantee the referential integrity of the output.