Skip to content

Using DDEV Offline

DDEV attempts to work smoothly offline, and you shouldn’t have to do anything to make it work:

  • It doesn’t attempt instrumentation or update reporting if offline
  • It falls back to using /etc/hosts entries if DNS resolution fails

However, it does not (yet) attempt to prevent Docker pulls if a new Docker image is required, so you’ll want to make sure that you try a ddev start before going offline to make sure everything has been pulled.

If you have a project running when you’re online (using DNS for name resolution) and you then go offline, you’ll want to do a ddev restart to get the hostname added into /etc/hosts for name resolution.

You have general options as well:

In .ddev/config.yaml, use_dns_when_possible: false will make DDEV never try to use DNS for resolution, instead adding hostnames to /etc/hosts. You can also use ddev config --use-dns-when-possible=false to set this configuration option.

In .ddev/config.yaml, you can use project_tld: to have DDEV use a project TLD that won’t be looked up via DNS. You can do the equivalent with ddev config This also works as a global option in ~/.ddev/global_config.yaml or running ddev config global

You can also set up a local DNS server like dnsmasq (Linux and macOS, brew install dnsmasq) or (unbound or many others on Windows) in your own host environment that serves the project_tld that you choose, and DNS resolution will work fine. You’ll likely want a wildcard A record pointing to on most DDEV installations. If you use dnsmasq, you must configure it to allow DNS rebinding.

If you’re using a browser on Windows and accessing a DDEV project in WSL2, Windows will attempt to resolve the site name via DNS. This will fail if you don’t have an internet connection. To resolve this, update your C:\Windows\System32\drivers\etc\hosts file manually:

Administrative Privileges Required

You must have administrative privileges to save the hosts file on any OS.