Installation Issues
Docker containers won't start
Docker containers won't start
Symptoms:
docker ps shows no running containersSolutions:-
Check Docker is running:
-
View container logs:
-
Check for port conflicts:
-
Restart Docker:
Build dependencies failed to install
Build dependencies failed to install
Ubuntu/Debian:macOS:
Thermostat Flashing Issues
Device won't enter DFU mode (Gen 2)
Device won't enter DFU mode (Gen 2)
Try these steps in order:
- Back plate sequence first — Attach to wall mount, wait 2–3 seconds, then remove. The back plate contact arms DFU mode.
- Connect USB immediately after removing from back plate — Use a data-capable cable (not charge-only)
- Charge battery — Ensure >50% battery
- Reboot — Hold display for 10-15 seconds
Gen 1 contact bridging not working
Gen 1 contact bridging not working
Common issues:
- Contacts not held long enough - Keep bridging until USB connects
- Wrong contacts bridged - Double-check the image in the guide
- Battery disconnected - Device won’t boot without battery
- Screen still on - Make sure screen is off before bridging
- Battery is connected
- Screen is off
- Installer is waiting
- Bridge contacts, THEN connect USB while holding bridge
Installer doesn't detect device
Installer doesn't detect device
Linux:
-
Check USB permissions — run the installer app with sudo:
-
Add udev rules for a permanent fix:
- Grant USB permissions in System Preferences → Security & Privacy
- Try different USB cable (must be data-capable)
- Try different USB port
Server Connection Issues
The NLE server is a standalone service, separate from the firmware flashing tool.
It runs as a Docker container using the image
ghcr.io/codykociemba/nolongerevil-selfhosted:latest,
as a Python service, or as a Home Assistant add-on. See the self-hosted installation guide
for server setup instructions.Thermostat can't connect to server
Thermostat can't connect to server
Check:
-
API server is running:
-
Firewall allows connections:
-
Port forwarding configured (if remote access):
- Check router settings
- Verify ports 8000 and 8082 are forwarded to your server
-
DNS resolves correctly (if using domain):
-
Thermostat can reach server:
- Check WiFi connection on thermostat
- Verify thermostat is on same network (for local-only setup)
Thermostat not connecting to self-hosted server
Thermostat not connecting to self-hosted server
Symptoms: Thermostat shows No Longer Evil firmware but connects to cloud, or shows “No Server”Method 1 — NLEAPI (easier, web-based):The thermostat exposes a configuration API at port 8080. Navigate to:Find
Method 2 — SSH / direct file edit (fallback):Find the After reboot: Settings (gear icon) → Nest App → Get Entry Key (only needed if
cloudregisterurl in the settings and update it to your server’s /entry endpoint:- Standalone Docker:
http://[SERVER-IP]:8000/entry - HA Add-on:
http://[HA-IP]:9543/entry
Password protection: If the thermostat has been powered on for more than 30 minutes, the NLEAPI is protected by a password. To find the password, SSH into the thermostat and readAfter saving, reboot the thermostat./etc/nestlabs/apikey.txt:Use this value as the password when the NLEAPI prompts for authentication.
Method 2 — SSH / direct file edit (fallback):
cloudregisterurl entry and update the value to your server’s /entry endpoint
(same values as Method 1 above).Save with :wq, then reboot:REQUIRE_DEVICE_PAIRING=true).SSL/TLS certificate errors
SSL/TLS certificate errors
Self-signed certificates:
If using self-signed certs, browsers will warn. You can:Then configure
- Use Let’s Encrypt for free valid certificates
- Accept the browser warning (not recommended for production)
CERT_DIR in your Docker environment to point to the certificates in /etc/letsencrypt/live/your-domain.com/Docker Issues
Containers keep restarting
Containers keep restarting
View logs to see why:Common causes:
- Port already in use
- Missing environment variables
- Insufficient resources (RAM/CPU)
- Database connection failed
Can't access containers from host
Can't access containers from host
Check port mappings:Look for
0.0.0.0:8000->8000/tcp and 0.0.0.0:8082->8082/tcpIf ports aren’t mapped, recreate containers with proper port mapping:Out of disk space
Out of disk space
Check Docker disk usage:Clean up unused resources:Warning: This will remove all stopped containers and unused images
Network & Remote Access
Can't access server remotely
Can't access server remotely
Check these in order:
-
Port forwarding configured:
- Log into your router
- Forward ports 8000, 8082 to your server’s local IP
- Verify forwards are active
-
Firewall allows traffic:
-
Public IP correct:
-
Dynamic DNS working (if using DDNS):
- Verify DNS record points to current IP
- Check DDNS client is running and updating
-
ISP not blocking ports:
- Some ISPs block common ports
- Try alternative ports or contact ISP
HTTPS not working
HTTPS not working
Check certificate:Renew if expired:Test HTTPS endpoint:Common issues:
- Certificate not installed correctly
- Server not configured for HTTPS (
CERT_DIRenv var not set) - Port 8000 not open
- Domain doesn’t match certificate
Performance Issues
Server running slow
Server running slow
Check resource usage:Solutions:
- Allocate more resources to Docker
- Enable
DEBUG_LOGGING=falseto reduce log overhead - Use faster storage (SSD vs HDD)
High memory usage
High memory usage
Check which container is using memory:Restart container to free memory:
Still Having Issues?
Join Discord
Ask the self-hosting community for help
GitHub Issues
Report bugs or check existing issues
Check Logs
Always check Docker logs first:
Hosted Service
Consider using the hosted service if self-hosting is too complex