This guide will walk you through setting up permitzone.dev domain resolution locally. It involves setting up dnsmasq to handle .dev
DNS requests and nginx to proxy requests to the correct app locally.
- Homebrew is installed and working. Use
brew doctor
to verify.
brew install dnsmasq nginx
sudo mkdir /etc/resolver
echo 'nameserver 127.0.0.1' | sudo tee /etc/resolver/dev
echo 'address=/dev/127.0.0.1' >> /usr/local/etc/dnsmasq.conf
curl https://gist.githubusercontent.com/awmichel/ca09a34b41ae99b31c86d43d0bf13b44/raw/nginx.conf | sed -e 's/WHOAMI/'$(whoami)'/g' > /usr/local/etc/nginx/nginx.conf
mkdir -p /usr/local/etc/nginx/ssl/permitzone.dev
curl -sSL https://raw.githubusercontent.com/frntn/x509-san/master/gencert.sh | CRT_CN="permitzone.dev" CRT_C="US" CRT_L="Myrtle Beach" CRT_O="PermitZone, Inc." CRT_SAN="DNS.1:permitzone.dev,DNS.2:*.permitzone.dev" CRT_FILENAME=/usr/local/etc/nginx/ssl/permitzone.dev/permitzone.dev bash
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /usr/local/etc/nginx/ssl/permitzone.dev/permitzone.dev.crt
sudo brew services restart dnsmasq && sudo brew services restart nginx
You can also leave out thesudo
s, but I find they both start more reliably at boot rather than login.