iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
The shortest working setup is the official ghcr.io/esphome/esphome image, a persistent directory mounted at /config, and TCP port 6052 published from the container. Run:
mkdir -p ~/esphome-config
cd ~/esphome-config
docker run --rm -p 6052:6052 -v "${PWD}":/config -it ghcr.io/esphome/esphome
Then open http://VPS_ADDRESS:6052. This starts the dashboard and keeps your YAML files on the VPS. The important limitation is networking: port publishing gives you a dashboard, but device discovery and OTA updates require the VPS to be able to reach each ESP device. mDNS and .local discovery work with host networking on a Linux host when the VPS is on the same reachable network; a typical remote VPS is not, so use fixed device addresses and a route to the devices. Initial USB flashing must be done from a computer with the board attached.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsWhat you are deploying
ESPHome turns YAML files into firmware for ESP8266 and ESP32-class devices and provides a web dashboard for creating configurations, compiling firmware, viewing logs, and performing updates. In Docker, the dashboard and command-line tools run inside the container while your device definitions live in a host directory mounted at /config.
The official image is ghcr.io/esphome/esphome. Omitting a tag uses the stable image; the documented alternatives are stable, beta, and dev. Use a non-stable tag only when you deliberately need pre-release changes.
#1 Best Overall
- Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
- With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
- Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
- Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
- Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.
Prerequisites on the VPS
- A Linux VPS with Docker Engine and the Docker Compose plugin installed.
- Enough disk space for your configuration files, build caches, and compiled firmware. Keep the configuration directory on persistent VPS storage, not an ephemeral container layer.
- Administrative access to create a directory, run Docker, and change the VPS firewall.
- A DNS name or static IP address for the VPS, or another reliable way to reach it.
- Network reachability from the VPS to every ESP device that you intend to discover or update over the air.
A VPS in a hosting provider’s data center is normally on a different network from the Wi-Fi LAN where your ESP boards operate. Installing the dashboard does not create that route. You may need a site-to-site VPN, a routed private network, or another connection that allows the VPS to reach the device subnet.
Choose the Docker networking mode
| Mode | Run setting | Discovery behavior | Best fit |
|---|---|---|---|
| Published port | -p 6052:6052 |
Dashboard is reachable on TCP 6052. Devices should have fixed addresses in their YAML because mDNS discovery is not available through ordinary port publishing. | Most remote VPS installations and Docker Desktop setups. |
| Host network | --net=host or Compose network_mode: host |
On Linux, the container shares the host network and can use mDNS, .local names, and online-status discovery when the devices are on a reachable local network. |
A Linux host on the same Layer-2 or routed network as the ESP devices. |
Host networking does not bridge an isolated VPS to your home LAN. If packets cannot travel between the VPS and the device subnet, mDNS will not work regardless of the Docker flag. Host networking is also Linux-specific in the documented setup. Docker Desktop has a separate host-networking feature whose minimum version is inconsistent across Docker’s documentation: one page states 4.34 or later after enabling Settings → Resources → Network, while an FAQ states 4.29 or later. Check the current Docker documentation for the version you have before relying on it.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Install and verify Docker
Install Docker Engine and the Compose plugin using the instructions for your VPS distribution, then verify both commands:
docker --version
docker compose version
If your account cannot access the Docker socket, either prefix commands with sudo or add the account to the Docker group according to your distribution’s security guidance. Confirm that the daemon is running before continuing:
sudo systemctl enable --now docker
docker info
Run ESPHome directly with Docker
Create a persistent configuration directory
mkdir -p ~/esphome-config
cd ~/esphome-config
The directory you mount to /config contains YAML files and dashboard data. Back it up like any other application data.
Start the dashboard with port publishing
docker run --rm
--name esphome
-p 6052:6052
-v "${PWD}":/config
-it ghcr.io/esphome/esphome
The container starts the dashboard when no subcommand is supplied. The dashboard’s documented default port is 6052. Visit http://VPS_ADDRESS:6052 from an allowed client. The --rm option removes the stopped container, but not the mounted configuration directory. For a long-running server, use Compose or run the container detached with -d and a restart policy.
Recommended Free Tools
Run detached for a server
docker run -d
--name esphome
--restart unless-stopped
-p 6052:6052
-v "${PWD}":/config
ghcr.io/esphome/esphome
Check startup output with docker logs -f esphome. Stop it with docker stop esphome; remove the stopped container with docker rm esphome if you later recreate it with different options.
Rank #2
- Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
- Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
- Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
- Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
- Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
Open the VPS firewall safely
The Docker mapping only affects the host’s networking; your VPS provider’s firewall and the operating-system firewall can still block the connection. Allow TCP 6052 at both layers. With UFW, a typical rule is:
sudo ufw allow 6052/tcp
sudo ufw status
If only one or two administrator addresses need access, restrict the source instead of opening the port globally:
sudo ufw allow from ADMIN_PUBLIC_IP to any port 6052 proto tcp
Use your provider’s firewall panel to add the equivalent inbound rule. Exposing the dashboard to the entire internet increases its attack surface; restricting the source or using an SSH tunnel is preferable.
Use Docker Compose on the VPS
Compose makes the volume, restart behavior, and networking reproducible. Create compose.yaml in the directory that will hold your configuration:
services:
esphome:
container_name: esphome
image: ghcr.io/esphome/esphome
restart: unless-stopped
volumes:
- ./config:/config
ports:
- "6052:6052"
Create the referenced directory and start it:
mkdir -p config
docker compose up -d
docker compose logs -f
Open http://VPS_ADDRESS:6052. To update the image later, pull it and recreate the service:
docker compose pull
docker compose up -d
Do not delete the config directory when replacing the container. That directory is the persistent state.
Compose with host networking
The documented host-network example uses a host network and privileged mode:
Rank #3
- 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
- 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
- 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
- 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
- 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
services:
esphome:
container_name: esphome
image: ghcr.io/esphome/esphome
restart: unless-stopped
network_mode: host
privileged: true
volumes:
- ./config:/config
With host networking, do not also add a ports section; the container uses the host’s port directly. This arrangement is useful on a Linux machine that can actually see the device network. It is not a substitute for routing between a remote VPS and a private home LAN.
Configure devices for a remote VPS
When port publishing is used, ESPHome can serve the dashboard even if it cannot discover devices automatically. Give each device a stable address and reference that address in its YAML. ESPHome documents use_address and manual_ip for this purpose.
Use an address for an existing device
If the board already has firmware and a known address, set the address used for communication in the device’s YAML:
esphome:
name: living-room
use_address: 192.0.2.41
Replace the example address with the board’s real, reserved address. A DHCP reservation on your router prevents the address from changing.
Assign a static address in the device network settings
For a board that must always use a particular address, configure manual_ip under its Wi-Fi settings with values appropriate for your LAN:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: 192.0.2.41
gateway: 192.0.2.1
subnet: 255.255.255.0
The addresses above are examples from the documentation’s private-use range; use the gateway and subnet that actually exist on your network. A wrong gateway or subnet can make the device unreachable, so verify the LAN plan before flashing.
mDNS, .local names, and the --net=host choice
mDNS is the mechanism behind automatic discovery and names such as living-room.local. Ordinary Docker bridge networking with a published port does not expose the host’s mDNS traffic to the container. Linux host networking allows the dashboard to use mDNS when the host itself can receive those multicast packets.
Rank #4
- 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
- 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
- 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
- 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
- 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
There are three separate conditions for mDNS to help:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
- The Docker host must support host networking. The documented mode is Linux-only.
- The host must be on the same reachable network as the ESP devices, or have multicast routing configured.
- The local network must permit mDNS traffic; many routed or filtered networks do not.
A VPS normally fails the second condition because it resides elsewhere. In that case, use fixed addresses, a VPN or routed link, and explicit firewall rules. Do not expect --net=host alone to make a home device appear in a distant data center.
Flash firmware when the VPS has no USB access
A remote VPS generally has no physical ESP board attached. USB serial flashing therefore happens on a local computer that can see the board. The VPS can still host YAML files, compile firmware, and perform OTA updates after the device has network connectivity.
First flash from a local machine
- Connect the ESP board to the local computer with a data-capable USB cable.
- Run ESPHome locally, or use the dashboard on the VPS to compile and download the firmware binary.
- Use a local flashing method that can access the board’s serial port.
- After the board joins Wi-Fi, verify that the VPS can reach its fixed address before attempting OTA updates.
On Linux, a container can be granted serial access with a device mapping such as:
docker run --rm -it
--privileged
--device=/dev/ttyUSB0
-v "${PWD}":/config
ghcr.io/esphome/esphome run living-room.yaml
Use the actual device path, which may be /dev/ttyACM0 rather than /dev/ttyUSB0. The --privileged flag grants broad container permissions; use it only on a machine you control and only when required for the flashing workflow.
Docker on macOS cannot access host USB devices in the same way. Perform USB flashing with a native local tool or another computer that exposes the serial device, then use the VPS for network-based operations.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Perform OTA updates from the VPS
OTA requires an end-to-end route from the VPS to the ESP board. Confirm connectivity before starting a build:
Best Value
- 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
- 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
- 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
- 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
- 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
- The device has a stable address or a resolvable name.
- Any VPN, router, and VPS firewall allows the required traffic between the two networks.
- The board is powered, connected to Wi-Fi, and running firmware that supports OTA.
- The YAML’s
use_addressor equivalent address matches the board’s current address.
If the VPS cannot reach the device subnet, compilation may succeed while the upload fails. In that situation, download the generated firmware and perform the update from a local machine on the same LAN.
Dashboard authentication and version-sensitive settings
Authentication environment-variable names have changed between ESPHome documentation pages. One installation page shows ESPHOME_USERNAME and ESPHOME_PASSWORD; a command-line getting-started page shows USERNAME and PASSWORD. Do not copy one name blindly into a production deployment. Check the current documentation for the exact image tag you are running, then set the variables in Compose or with Docker’s -e options.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallKeep credentials out of shell history and source-controlled Compose files where possible. If the dashboard is reachable only through an SSH tunnel or a restricted firewall rule, that reduces exposure but does not replace authentication when the image supports it.
Use an SSH tunnel instead of exposing port 6052
For administration from one workstation, you can bind the dashboard only on the VPS loopback interface and forward it over SSH:
docker run -d
--name esphome
--restart unless-stopped
-p 127.0.0.1:6052:6052
-v "${PWD}":/config
ghcr.io/esphome/esphome
ssh -L 6052:127.0.0.1:6052 VPS_USER@VPS_ADDRESS
Then browse to http://127.0.0.1:6052 on the workstation running SSH. This protects the web interface from unsolicited internet scans, while the container still needs network reachability to the ESP devices for OTA work.
macOS and Docker Desktop considerations
Host networking does not work as expected for ESPHome on macOS in the documented setup. Use normal port publishing and set ESPHOME_DASHBOARD_USE_PING=true when the current ESPHome guidance calls for it:
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →docker run -d
--name esphome
--restart unless-stopped
-e ESPHOME_DASHBOARD_USE_PING=true
-p 6052:6052
-v "${PWD}":/config
ghcr.io/esphome/esphome
Docker Desktop’s host-networking support and minimum version have conflicting statements in its published documentation. Treat the feature as version-dependent and verify the current requirement in Docker’s settings and documentation before designing around it.
Back up, update, and recover the installation
Back up the configuration
Back up the entire host directory mounted at /config, including YAML files, secrets, and dashboard metadata. Test that a backup can be restored to a fresh directory before making major changes.
Update deliberately
The untagged image follows the stable channel. Pulling a new image can change compiler behavior or dashboard features, so record the image digest or date when you update and keep a copy of the previous configuration. If a new container misbehaves, stop it, restore the known-good image reference, and reuse the same configuration directory.
Inspect logs and container state
docker ps
docker logs --tail=200 esphome
docker inspect esphome
For Compose deployments, use docker compose ps and docker compose logs --tail=200 esphome. These commands distinguish a stopped container, a port conflict, and an ESPHome-level connection failure.
Free tools Windows power users keep installed
One-click scans. No signup required.
Quick Recap
Troubleshooting by symptom
| Symptom | Likely cause | What to check |
|---|---|---|
| Browser cannot open the dashboard | Container is stopped, port 6052 is blocked, or the wrong address is used. | Run docker ps, inspect logs, verify -p 6052:6052, and allow TCP 6052 in both VPS firewalls. |
| Port 6052 is already in use | Another service owns the host port. | Find the process or container using 6052, stop it, or publish ESPHome on another host port and browse to that port. |
| Dashboard opens but devices are absent | Bridge networking cannot receive mDNS, or the VPS cannot reach the device LAN. | Use fixed addresses, confirm routing, or use Linux host networking only when the host is actually on the device network. |
.local names fail |
mDNS is unavailable across the VPS boundary or blocked by the network. | Use the device IP, a routed VPN, or an mDNS-aware network design. Do not assume host mode solves a remote-network problem. |
| OTA upload times out | No route, firewall block, changed DHCP address, or incorrect YAML address. | Ping or otherwise test the device from the VPS, reserve its address, and verify use_address or manual_ip. |
| USB board is not detected | The board is connected to another computer, the wrong serial path is used, or the container lacks device permissions. | Flash from the computer physically connected to the board; on Linux check /dev/ttyUSB0//dev/ttyACM0, --device, and required privileges. |
| Authentication variables do nothing | The variable names differ between the image documentation and the example being followed. | Check the current documentation for the exact ESPHome version and use the documented names, rather than assuming both forms are interchangeable. |
Production checklist
- Configuration is stored in a persistent, backed-up directory mounted at
/config. - The image channel is intentional: stable, beta, or dev.
- TCP 6052 is allowed only from the administrators who need it, or access is provided through an SSH tunnel.
- Every remotely managed device has a reserved or static address and the VPS has a route to it.
- Initial USB flashing is performed on a local machine with the board attached.
- OTA is tested with one non-critical device before updating the rest.
- Authentication variable names are verified against the current documentation for the running image.
- Logs, configuration backups, and a rollback image reference are available before upgrades.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

