Self-hosting ESPHome the easy way

Self-hosting ESPHome the easy way

Yulei Chen - Content-Engineerin bei sliplane.ioYulei Chen
5 min

ESPHome is the open-source way to control ESP32 and ESP8266 microcontrollers with simple YAML configs. The project itself is free, but to keep the dashboard online 24/7 you normally need a Raspberry Pi, a NAS, or a Home Assistant box sitting in your closet. Not everyone wants another device to maintain.

Sliplane is a managed container platform that makes self-hosting painless. With one-click deployment, you can get the ESPHome dashboard up and running in minutes, accessible from anywhere, with persistent storage for your device configs and no local hardware to babysit.

The ESPHome dashboard on Sliplane is perfect for editing configs, compiling firmware, and flashing devices over-the-air (OTA). USB flashing needs a local machine because the container has no access to physical USB ports: flash the first time locally, then manage everything remotely.

Prerequisites

Before deploying, ensure you have a Sliplane account (free trial available).

Quick start

Sliplane provides one-click deployment with presets.

SliplaneDeploy ESPHome >
  1. Click the deploy button above
  2. Select a project
  3. Select a server. If you just signed up you get a 48-hour free trial server
  4. Click Deploy!

About the preset

The one-click deploy above uses Sliplane's ESPHome preset. It's built for a clean, stable dashboard setup:

  • Official ghcr.io/esphome/esphome image
  • Specific version tag for stability (check the ESPHome GitHub releases for the latest stable version)
  • Persistent storage mounted at /config so your device configs survive restarts and redeploys
  • Basic auth enabled by default with a generated password
  • Dashboard exposed on port 6052 (the ESPHome default)

Next steps

Once ESPHome is running on Sliplane, access the dashboard using the domain Sliplane provided (e.g. esphome-xxxx.sliplane.app).

Default credentials

The preset generates a random password at deploy time. Check your service's environment variables in the Sliplane dashboard:

  • Username: admin
  • Password: auto-generated (copy it from PASSWORD in your env vars)

Change these right after your first login by updating the env vars and redeploying.

Adding your first device

ESPHome works by generating firmware from a YAML config, then flashing it to your ESP32 or ESP8266. The typical flow on a cloud-hosted dashboard looks like this:

  1. Click New Device in the dashboard and give it a name
  2. Enter your Wi-Fi credentials so the device can connect once flashed
  3. The dashboard will compile a firmware binary you can download
  4. Flash that binary once via USB from your local machine (using ESPHome Web or the esphome CLI)
  5. After the first flash, future updates go over-the-air (OTA): just hit Install in the dashboard

Any device on the internet that can reach your Sliplane URL can be managed remotely, no VPN needed.

Environment variables

A few env vars you might want to tweak in your Sliplane service settings:

SettingDescription
USERNAMEDashboard login username
PASSWORDDashboard login password
ESPHOME_DASHBOARD_USE_PINGSet to true to show device online status via ping
ESPHOME_DASHBOARD_RELATIVE_URLSet a sub-path if you want to reverse-proxy the dashboard

See the ESPHome dashboard docs for the full list.

Logging

Docker container logs go to STDOUT by default, which works out of the box with Sliplane's built-in log viewer. When you compile firmware, the build output streams into the container logs too, so you can watch the whole process live. For a quick primer on reading these logs, see our post on how to use Docker logs.

Troubleshooting

If the dashboard loads but shows all your devices as offline, make sure ESPHOME_DASHBOARD_USE_PING is set to true. The default uses mDNS, which doesn't work across networks: ping falls back to TCP port checks, which Sliplane can do reliably.

If OTA updates fail, double-check that your device's ota password in its YAML matches what the dashboard expects. You can find this in the generated config.

Cost comparison

Of course you can also self-host ESPHome with other cloud providers. Here is a pricing comparison for the most common ones:

ProvidervCPU CoresRAMDiskEstimated Monthly CostNotes
Sliplane22 GB40 GB€9charge per server
Render12 GB40 GB~$35–$45VM Small
Fly.io22 GB40 GB~$20–$25VM + volume
Railway22 GB40 GB~$15–$66Usage-based

FAQ

Can I flash devices over USB from a cloud-hosted ESPHome dashboard?

No: the container has no access to USB ports on your local machine. Do the first flash locally using ESPHome Web or the esphome CLI, then use OTA updates from the cloud dashboard for every change after that. This is how most people run ESPHome in production anyway.

How do I back up my device configs?

Your YAML configs live in the /config volume. You can pull them via the Sliplane file browser, or use git from inside the container shell to sync to a private repo. For a general approach to volume backups, see 4 easy ways to backup Docker volumes.

How do I update ESPHome?

Change the image tag in your service settings and redeploy. Check ESPHome's GitHub releases for the latest stable version. The dashboard also warns you when a new ESPHome version is available.

Are there alternatives to ESPHome?

Yes: Tasmota is a popular flash-and-forget firmware, WLED focuses on LED strips, and OpenMQTTGateway is great for bridging BLE and IR devices to MQTT. ESPHome is usually the easiest entry point if you're already using Home Assistant.

Does this integrate with Home Assistant?

Yes. Devices flashed via the Sliplane-hosted ESPHome dashboard expose the standard ESPHome API, which Home Assistant auto-discovers over your local network. The dashboard and your Home Assistant instance don't have to run on the same machine, they just both need to reach your devices.

Self-host ESPHome now - It's easy!

Sliplane gives you all the tools you need to run the ESPHome dashboard without managing a server.