Det här sätter du upp
Home Assistant styr ditt smarta hem: den visar dina enheter på ett ställe, och automationer får dem att agera av sig själva, till exempel att ladda bilen när elen är som billigast. På en server är Home Assistant alltid igång och nåbar var du än är, utan att någon port öppnas hemma.
Här körs den som en container under en egen användare som heter homeassistant, bakom Caddy från Podman-guiden.
En server står inte i ditt hem, så där kan Home Assistant inte hitta dina enheter själv. Det här fungerar på en server:
- integrationer som pratar med tjänster på internet, som Nord Pools elpriser, väder och många uppkopplade enheter;
- Home Assistants app i mobilen, var du än är;
- enheter hemma som nås över VPN, till exempel WireGuard eller Headscale, eller som själva skickar sina data till Home Assistant.
Varje steg nedan har körts på en server hos Melonslab med Debian 13:
- Home Assistant 2026.9.3 sattes upp över en SSH-tunnel och fungerade sedan via Caddy, när Home Assistant väl hade fått lita på Caddy.
- Nord Pool visade elpriserna för SE3 i SEK per kWh.
- Fem fel lösenord via Caddy spärrade besökarens riktiga adress.
- Allt startade igen av sig självt efter en omstart av servern.
Home Assistant använde omkring 250 MB minne.
Innan du börjar
Du behöver:
- en server uppsatt som i Podman-guiden, med Caddy igång;
- en A-post och en AAAA-post för
home.example.comsom pekar på din server; - SSH-åtkomst till servern från din dator, som steg 4 använder.
Exemplen använder home.example.com för Home Assistant och 203.0.113.10 för serverns IPv4-adress, som ip -brief address show eth0 visar. Byt ut dem genomgående.
1. Skapa användaren
Som root:
useradd -m -s /bin/bash homeassistant
loginctl enable-linger homeassistant
machinectl shell homeassistant@
2. Definiera containern
mkdir -p ~/.config/containers/systemd ~/homeassistant
Skapa ~/.config/containers/systemd/homeassistant.container:
[Unit]
Description=Home Assistant
[Container]
ContainerName=homeassistant
Image=ghcr.io/home-assistant/home-assistant:stable
Volume=%h/homeassistant:/config
Environment=TZ=Europe/Stockholm
# Only Caddy, on this server, can reach Home Assistant: the port is not open to the internet.
PublishPort=127.0.0.1:8099:8123
AutoUpdate=registry
[Service]
Restart=always
[Install]
WantedBy=default.target
Home Assistant sparar allt i ~/homeassistant: sina inställningar, sin historik och sin databas. Starta den:
systemctl --user daemon-reload
systemctl --user start homeassistant
systemctl --user enable --now podman-auto-update.timer
3. Sätt Caddy framför
Gå tillbaka till root med exit, byt till Caddys användare med machinectl shell caddy@ och lägg till det här blocket sist i ~/Caddyfile:
home.example.com {
reverse_proxy 127.0.0.1:8099
}
Starta om Caddy med systemctl --user restart caddy. Tills steg 5 är gjort svarar https://home.example.com med 400: Bad Request: Home Assistant avvisar förfrågningar från en proxy som den inte har fått veta att den ska lita på.
4. Sätt upp den över en SSH-tunnel
Öppna en tunnel från din egen dator till Home Assistants port på servern och låt den vara öppen:
ssh -L 8123:127.0.0.1:8099 root@203.0.113.10
Öppna sedan http://localhost:8123 i webbläsaren. Det går direkt till Home Assistant, inte via Caddy. Välj Create my smart home:
- Skapa ditt konto med Name, Username, Password och Confirm password, och välj Create account.
- Ange din Home location: sök efter din adress. Home Assistant sparar den och använder den för soluppgång, väder och liknande.
- Välj ditt Country, sedan vad du eventuellt vill dela med Home Assistants utvecklare, och välj Finish.
5. Låt den lita på Caddy
Fortfarande över tunneln öppnar du Settings, System, Network. Under HTTP server:
- Öppna Reverse proxy, slå på Trust X-Forwarded-For, välj Add Trusted proxies och ange
203.0.113.10/32, serverns egen IPv4-adress, som Caddys anslutningar kommer från. - Öppna IP banning. Enable IP banning är redan påslaget: sätt Login attempts before ban till
5. - Välj Save.
Home Assistant startar om. Ladda om sidan: den visar Confirm new HTTP server configuration med de ändrade inställningarna. Välj Confirm. Bekräftar du inte inom fem minuter återställer Home Assistant de gamla inställningarna, ett skyddsnät ifall de nya gjorde den onåbar.
Stäng nu tunneln och använd https://home.example.com. Äldre guider lägger de här inställningarna i configuration.yaml under http:. Sedan 2026 läser Home Assistant dem därifrån bara en gång, vid första starten, och bortser från dem efter det.
6. Skydda ditt konto
Med IP-spärr blockeras en adress som anger fel lösenord fem gånger i rad, tills du häver spärren. Slå också på tvåfaktorsautentisering: öppna din profil längst ner till vänster, sedan Security, och välj Enable vid Authenticator app under Multi-factor authentication modules.
7. Lägg till integrationer
Öppna Settings, Devices & services och välj Add integration. Några som fungerar bra på en server:
- Nord Pool, elpriserna där du bor: välj ditt område, som
Sweden 3, ochSEK. Du får nuvarande och nästa pris, och dagens lägsta och högsta, att använda i automationer. - En väderprognos för din hemadress, till exempel från Norska meteorologiska institutet.
- Integrationerna för ditt elbolag, din bil, din värmepump eller andra enheter som är uppkopplade mot internet.
8. Använd appen
Installera Home Assistants app i mobilen. Den hittar ingen server själv, så välj att ange adressen, https://home.example.com, och logga in. Appen visar dina översikter, skickar aviseringar från dina automationer och kan rapportera mobilens position, så att Home Assistant vet när du är hemma.
9. Nå dina enheter hemma
Enheter som bara fungerar i hemnätverket behöver ett sätt att nå servern:
- Anslut din router hemma, eller en liten dator hemma, till servern med WireGuard eller Headscale. Home Assistant når då enheterna på deras adresser hemma.
- Eller låt enheterna själva skicka sina data till Home Assistant, till exempel över MQTT, som Home Assistants dokumentation beskriver.
Home Assistant kan inte upptäcka enheter själv på en server, och dess logg visar Cannot watch for dhcp packets: det är normalt i en container och ofarligt.
10. Håll den uppdaterad
Timern från steg 2 uppdaterar Home Assistant varje dag. Med taggen stable får du varje version, och en ny version släpps varje månad, med versionsanteckningar som listar vad som ändrats. Säkerhetskopiera först om du vill kunna gå tillbaka.
11. Säkerhetskopiera
Som homeassistant:
mkdir -p ~/backup
systemctl --user stop homeassistant
tar -czf ~/backup/homeassistant.tar.gz -C ~ homeassistant
systemctl --user start homeassistant
Det sparar dina inställningar, automationer, historik och konton. Kopiera ~/backup till en annan maskin och förvara den säkert. Home Assistant har också egna säkerhetskopior, under Settings, System, Backups.
Felsökning
https://home.example.com svarar 400: Bad Request. Home Assistant litar inte på Caddy, och dess logg, podman logs homeassistant, visar A request from a reverse proxy was received from 203.0.113.10, but your HTTP integration is not set-up for reverse proxies. Gör steg 5 över tunneln från steg 4.
Inställningarna från steg 5 återställdes efter några minuter. Loggen visar Pending HTTP config was not confirmed within 0:05:00. Gör steg 5 igen och välj Confirm efter omstarten.
Home Assistant svarar 403: Forbidden. Din adress har spärrats. Som homeassistant tar du bort ~/homeassistant/ip_bans.yaml, eller bara din adress i filen, och kör systemctl --user restart homeassistant.