DNS Setup Guide¶
Who needs this?
DNS setup is only needed if you use the original Novabot app (iOS/Android). If you use the OpenNova app, you can skip this entirely — the app connects directly to your server IP.
What is DNS and Why Do I Need It?¶
The Novabot mower and charger are programmed to connect to mqtt.lfibot.com (the Novabot cloud). We need to trick them into connecting to your local server instead.
DNS is like a phone book for the internet. When your mower looks up mqtt.lfibot.com, we want it to find your server's IP address instead of Novabot's cloud server.
Without DNS redirect:
Mower asks: "Where is mqtt.lfibot.com?" → Internet: "47.253.145.99" (Novabot cloud)
With DNS redirect:
Mower asks: "Where is mqtt.lfibot.com?" → Your DNS: "192.168.0.100" (your server!)
Before You Start¶
You need to know two things:
1. Your OpenNova server IP address¶
This is the IP of the machine running the Docker container. Find it:
Open Command Prompt and type:
Look forIPv4 Address under your WiFi or Ethernet adapter (e.g., 192.168.0.100).
Open Terminal and type:
Or: System Settings → Network → WiFi → Details → IP Address.Control Panel → Network → Network Interface → Look for the IP.
2. Your router's admin page¶
Usually one of these addresses (type in your browser):
http://192.168.0.1http://192.168.1.1http://10.0.0.1
The username/password is often on a sticker on the bottom of your router.
Option A: Router DNS Override¶
The simplest method — change your router settings so ALL devices on your network resolve mqtt.lfibot.com to your server. No extra software needed.
Fritz!Box¶
- Open http://fritz.box in your browser
- Go to Home Network → Network → Network Settings
- Scroll to DNS Rebind Protection
- Add an exception:
lfibot.com - Go to Internet → DNS Server
- Under Local DNS entries, add:
- Host:
mqtt.lfibot.com→ IP:192.168.0.100(your server) - Host:
app.lfibot.com→ IP:192.168.0.100(your server) - Click Apply
Ubiquiti UniFi (UDM / USG)¶
- Open the UniFi Network app or https://unifi.ui.com
- Go to Settings → Networks → Default
- Under DHCP Name Server: set to Manual
- Enter your Pi-hole/AdGuard IP as DNS server
- Apply Changes
Or use the built-in DNS features:
- SSH into your UDM:
ssh [email protected] - Edit
/run/dnsmasq.conf.d/custom.conf: - Restart dnsmasq:
killall dnsmasq
Warning
UniFi UDM custom DNS entries may reset after firmware updates.
TP-Link¶
- Open http://192.168.0.1 (or http://tplinkwifi.net)
- Go to Advanced → Network → DHCP Server
- Set Primary DNS to your Pi-hole/AdGuard IP
- Save
TP-Link routers typically don't support custom DNS records. Use Option B (Pi-hole/AdGuard) instead.
Netgear¶
- Open http://routerlogin.net or http://192.168.1.1
- Go to Advanced → Setup → Internet Setup
- Under DNS Address: set to your Pi-hole/AdGuard IP
- Apply
Like TP-Link, most Netgear routers need Pi-hole/AdGuard for custom DNS records.
ASUS¶
- Open http://router.asus.com or http://192.168.1.1
- Go to LAN → DNS Director
- Add a rule:
- Domain:
mqtt.lfibot.com→ IP:192.168.0.100 - Domain:
app.lfibot.com→ IP:192.168.0.100 - Apply
Not all routers support custom DNS
If your router doesn't have DNS override options, use Option B (Pi-hole or AdGuard).
Option B: Pi-hole¶
Pi-hole is a free DNS server that runs on a Raspberry Pi or in Docker. It blocks ads AND lets you create custom DNS records.
Install Pi-hole¶
Add DNS Records¶
- Open Pi-hole admin: http://pi-hole-ip/admin
- Log in with your password
- Go to Local DNS → DNS Records
-
Add two records:
Domain IP Address mqtt.lfibot.com192.168.0.100app.lfibot.com192.168.0.100(Replace
192.168.0.100with YOUR server IP) -
Click Add for each
Point Your Router to Pi-hole¶
- Open your router admin page
- Go to DHCP Settings
- Change the DNS server to your Pi-hole's IP address
- Save and reboot your router
Now all devices on your network use Pi-hole for DNS, and mqtt.lfibot.com resolves to your OpenNova server.
Option C: AdGuard Home¶
AdGuard Home is similar to Pi-hole but with a more modern interface.
Install AdGuard Home¶
Add DNS Rewrites¶
- Open AdGuard Home: http://adguard-ip:3001 (first time) or http://adguard-ip:8080
- Go to Filters → DNS Rewrites
- Click Add DNS Rewrite
-
Add two entries:
Domain Answer mqtt.lfibot.com192.168.0.100app.lfibot.com192.168.0.100 -
Click Save for each
Point Your Router to AdGuard¶
Same as Pi-hole — change your router's DHCP DNS server to AdGuard's IP.
Option D: OpenNova Docker Built-in DNS¶
The OpenNova Docker container includes a built-in DNS server. This is the easiest option if you don't already have Pi-hole or AdGuard.
Enable in docker-compose.yml¶
services:
opennova:
ports:
- "80:80"
- "443:443" # HTTPS (required for Novabot app)
- "1883:1883" # MQTT broker
- "53:53/udp" # ← Add this for built-in DNS
environment:
PORT: 80
JWT_SECRET: change_me_to_a_random_secret
ENABLE_TLS: "true" # ← Required for Novabot app
ENABLE_DNS: "true" # ← Add this
TARGET_IP: "192.168.0.100" # ← Your server IP
UPSTREAM_DNS: "8.8.8.8" # ← Fallback DNS (Google)
Then restart:
Point Your Router to OpenNova¶
Change your router's DHCP DNS server to your OpenNova server IP (192.168.0.100).
Note
This means ALL DNS queries from your network go through OpenNova. Only *.lfibot.com is redirected — everything else is forwarded to Google DNS (or your configured upstream).
How to Verify¶
After setting up DNS, test from any device on your network:
Expected result: Your OpenNova server IP (e.g., 192.168.0.100).
If you see 47.253.145.99 or a timeout, DNS is not working yet.
Troubleshooting¶
"DNS works on my computer but not on the mower"¶
The mower gets its DNS from the router's DHCP settings, not from your computer. Make sure you changed the router's DNS server setting.
After changing router DNS:
- Restart your mower (power off, wait 10 seconds, power on)
- The mower reconnects to WiFi and gets the new DNS server from DHCP
"I changed the DNS but nothing happened"¶
DNS changes take time to propagate. Try:
- On your computer:
ipconfig /flushdns(Windows) orsudo dscacheutil -flushcache(macOS) - On your phone: toggle WiFi off and on
- On the mower: restart it
- On the router: reboot it
"Port 53 is already in use"¶
Something else is using port 53 (common on Linux with systemd-resolved):
# Check what's using port 53
sudo lsof -i :53
# On Ubuntu/Debian: disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
"My router doesn't support custom DNS records"¶
Use Option B (Pi-hole) or Option C (AdGuard Home). These work with ANY router — you just point your router's DHCP DNS setting to the Pi-hole/AdGuard IP.
"I don't want to change my DNS for the whole network"¶
You can set DNS per device instead:
- Mower: Change the mower's DNS by re-provisioning it (the mower uses DHCP, so it gets DNS from the router)
- Phone: Set DNS manually in WiFi settings (Settings → WiFi → your network → Configure DNS → Manual)
But the easiest approach is to change it network-wide via the router.
Summary: Which Option Should I Choose?¶
graph TD
A[Do you use the OpenNova app?] -->|Yes| B[No DNS needed!]
A -->|No, I use the Novabot app| C[Do you have Pi-hole or AdGuard?]
C -->|Yes| D[Add DNS rewrite for *.lfibot.com]
C -->|No| E[Does your router support custom DNS?]
E -->|Yes| F[Add DNS record in router]
E -->|No| G[Enable built-in DNS in Docker]
| Option | Difficulty | Requires | Best For |
|---|---|---|---|
| OpenNova app | None | OpenNova app installed | Everyone |
| Router DNS | Easy | Router with DNS override | Fritz!Box, ASUS users |
| Pi-hole | Medium | Raspberry Pi or Docker | Tech-savvy users, ad blocking |
| AdGuard Home | Medium | Docker or any OS | Modern UI, easy setup |
| Docker built-in | Easy | Docker port 53 available | Simplest self-contained setup |