- acme.sh (TLS certificate generation for haproxy)
- nsd (OpenNIC)
- unbound (DNS Resolver)
- dnscrypt-server (dnscrypt)
- doh-proxy or m13253-doh
- haproxy (DNS-over-HTTPS)
- haproxy (DNS-over-TLS)
- unbound (DNS Resolver)
pacman -S docker docker-composer docker-buildx
git clone https://github.com/publicarray/dns-resolver-infra.git && cd dns-resolver-infra
# Add Cloudflare cedentials for acme.sh / TLS certificates
echo 'CF_TOKEN=xxxx' >> .env
echo 'CF_ACCOUNT_ID=xxxx' >> .env
echo 'CF_ZONE_ID=xxxx' >> .env
./deploy.sh
# Build Images or pull them:
docker-compose pull
# Add Cloudflare cedentials for acme.sh / TLS certificates
echo 'CF_TOKEN=xxxx' >> .env
echo 'CF_ACCOUNT_ID=xxxx' >> .env
echo 'CF_ZONE_ID=xxxx' >> .env
# # Setup CA
# docker-compose run acme --register-account -m my@example.com
# # or
# docker-compose run acme.sh --set-default-ca --server letsencrypt
# Launch
docker-compose up -d
sysctl net.ipv4.tcp_congestion_control=bbr
npm i --legacy-peer-deps
./lint.sh
npm run bats tests
./test.sh