Skip to main content
Work in Progress: The self-hosted installation is currently a work in progress and may or may not function correctly. For a stable, production-ready experience, we recommend using the hosted service instead.

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.
Advanced Users Only: Self-hosting requires technical troubleshooting skills with command line, Docker, and networking. If you’re not comfortable with these, we recommend using the hosted service instead.

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

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
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
Learn about hosted service →

Ready to Get Started?


Need Help?