localhost:8123 — Home Assistant

Home Assistant is the most popular open-source home automation platform. Its web interface and REST API both run on port 8123. Whether you install it on a Raspberry Pi, a dedicated x86 box, a VM, or a Docker container, you access it by browsing to the host's IP on port 8123.

Installation Types

TypeWhat It IsBest For
Home Assistant OS (HAOS)Full OS image, runs HA + Add-ons + SupervisorDedicated hardware (Raspberry Pi, HA Yellow, Odroid)
Home Assistant SupervisedHA + Supervisor on Debian, full Add-on supportExisting Debian server, more control
Home Assistant ContainerDocker container, HA Core only, no Add-onsDocker-centric setups, advanced users
Home Assistant CorePython venv install, manual everythingDevelopers, custom setups

Quick Docker Install

docker run -d \
  --name homeassistant \
  --privileged \
  --restart=unless-stopped \
  -e TZ=America/Chicago \
  -v /path/to/config:/config \
  --network=host \
  ghcr.io/home-assistant/home-assistant:stable

After the container starts (takes 1–2 minutes on first run), browse to http://your-server-ip:8123. The onboarding wizard walks through creating your account and initial setup.

Raspberry Pi — Home Assistant OS

# 1. Download HAOS image for your Pi from home-assistant.io/installation
# 2. Flash to SD card with Balena Etcher
# 3. Insert SD, power on Raspberry Pi
# 4. Wait 5-10 minutes for first boot
# 5. Browse to homeassistant.local:8123 (or find IP via router DHCP list)

Remote Access Options

Nabu Casa (Home Assistant Cloud) — Easiest: Settings → Home Assistant Cloud → sign up for $6.50/month. Provides a secure remote URL, no port forwarding or SSL setup needed. Also enables Alexa and Google Assistant voice control without a developer account.

HTTPS + Port Forwarding — Free: Set up an SSL certificate (via Let's Encrypt add-on or DuckDNS add-on), forward port 443 from your router to the HA server's port 8123. Requires a public IP and domain.

Tailscale Add-on — Best free option: Install the Tailscale add-on from the Add-on Store. Tailscale creates a VPN mesh between your devices — access HA from your phone over the Tailscale IP without exposing any ports to the internet.

REST API Quick Reference

# Get entity state (get long-lived access token from Profile > Security)
curl -H "Authorization: Bearer YOUR_TOKEN" \
     http://localhost:8123/api/states/sensor.temperature

# Turn on a light
curl -X POST \
     -H "Authorization: Bearer YOUR_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"entity_id": "light.living_room"}' \
     http://localhost:8123/api/services/light/turn_on

# WebSocket API endpoint
ws://homeassistant.local:8123/api/websocket

Common Ports Used by Home Assistant

PortUse
8123Web UI and REST API (HTTP)
443Web UI over HTTPS (if SSL configured)
1883MQTT broker (if Mosquitto add-on installed)
1900SSDP/UPnP device discovery
5353mDNS (homeassistant.local resolution)
51827HomeKit bridge

Troubleshooting

Cannot reach 8123: Check that HA is running — docker ps for container installs, or check the yellow LED pattern on HA hardware. First boot takes 5–10 minutes. The hostname homeassistant.local requires mDNS support on your network — if it does not resolve, use the IP address directly (find it in your router's DHCP list).

Login loop / "Invalid CSRF token": Access HA over HTTP, not HTTPS unless SSL is configured. If you get this error in a reverse proxy setup, ensure the proxy is passing the correct headers (X-Forwarded-For, X-Forwarded-Proto) and HA's configuration.yaml has the correct trusted_proxies and use_x_forwarded_for settings.

Add-on Store not loading (Container install): The Add-on Store requires Home Assistant Supervised or Home Assistant OS. Container and Core installs do not support add-ons — use standalone Docker containers for Mosquitto, Zigbee2MQTT, etc. instead.