What is Self-Hosting?
Self-hosting means running your own No Longer Evil infrastructure on your own server. Your thermostat connects to your server, not the hosted service at nolongerevil.com.How It Works
Self-hosting No Longer Evil involves running your own infrastructure stack instead of relying on the hosted service:1
Run the Installer
Clone the repository and run
install.sh, which sets up firmware flashing tools and guides you through server configuration.2
Docker Containers Start
The installer launches Docker containers for:
- Convex Backend - Database for storing device state, schedules, and configuration
- API Server - Handles communication with your Nest thermostat (replicates Google’s API)
3
Flash Your Thermostat
Use the firmware flashing tools to flash custom firmware to your Nest Gen 1 or Gen 2 thermostat via USB. The firmware redirects all traffic from Google servers to your server.
4
Thermostat Connects to Your Server
Once flashed, your thermostat connects to your self-hosted API server instead of Google’s servers. All communication stays within your infrastructure.
5
Optional: Set Up Frontend
The installer does NOT start a frontend automatically. You can:
- Run your own frontend locally (
cd frontend && npm install && npm run dev) - Use the hosted dashboard at nolongerevil.com (connects to your self-hosted API)
- Build custom integrations using the API
6
Control Your Thermostat
Access your thermostat through your frontend, Home Assistant (via MQTT), or directly through the API.
Key Difference from Hosted: You’re responsible for running the API server, database, and optional frontend. The hosted service runs all of this for you.
What You’ll Need
Server Hardware
Raspberry Pi, NAS, VPS, home server, or cloud VM that can run 24/7
Nest Gen 1 or Gen 2
Compatible thermostatCheck compatibility →
Technical Skills
Command line, Docker, networking, and troubleshooting
Computer for Flashing
Linux or macOS (Windows/WSL not supported)
Time Commitment
2-4 hours for initial setup + ongoing maintenance
Networking Knowledge
Port forwarding, DNS, SSL/TLS certificates (for remote access)
Components You’ll Run
When self-hosting, you’re responsible for running and maintaining:API Server (Port 443)
Handles thermostat communicationReplicates Google’s Nest API
Control API (Port 8081)
Provides control interfaceFor dashboards and automation
Database (Convex)
Stores device stateConfiguration and logs
Frontend (Optional)
Web dashboardCan use hosted version instead
Self-Hosted vs Hosted Service
When to Choose Self-Hosted
When to Choose Self-Hosted
Choose self-hosting if you:
- Want complete data ownership and privacy
- Need the system to run independently of any external service
- Want to customize or extend the functionality
- Are comfortable with server administration and troubleshooting
- Want to learn how the system works internally
- Need local-only network operation
When to Choose Hosted Service
When to Choose Hosted Service
Choose the hosted service if you:
- Want a plug-and-play solution with no server setup
- Don’t want to manage infrastructure and updates
- Need something that “just works” with minimal maintenance
- Don’t have 24/7 server hardware available
- Are not comfortable with command line and networking
- Want automatic updates and improvements
Ready to Get Started?
Prerequisites
Review requirements before starting installation
Installation Guide
Step-by-step instructions to set up your self-hosted infrastructure