GuiderChatt och e-postAI-assistent med OpenClaw

Kör OpenClaw med Podman utan root

OpenClaw på Debian 13, den personliga AI-assistenten med öppen källkod, i rootless Podman under en egen användare, bakom Caddy med HTTPS, token och godkända webbläsare, och som frågar innan den kör kommandon.

Testad på OpenClaw 2026.9.6 på Debian 13 (trixie) på en server hos Melonslab Uppdaterad 27 september 2026

Rekommenderad server för guiden

VC-S Micro · 2 vCPU · 8 GB Minne · 250 GB Lagring

Månadsvis, ingen bindningstid 7 dagars öppet köp

90 kr/mån

Beställ nu
På den här sidan

Det här sätter du upp

OpenClaw är en personlig AI-assistent med öppen källkod. Den ansluter till en AI-modell hos den leverantör du väljer, kör kommandon, läser och skriver filer, för anteckningar om dig och kör schemalagda uppgifter. Du pratar med den i dess webbgränssnitt, Control UI, eller från chattappar. På en server fortsätter den att vara igång när din dator är avstängd.

Här körs den i rootless Podman under en egen användare som heter openclaw, bakom Caddy från Podman-guiden. En agent som kör kommandon behöver ett ordentligt stängsel, så guiden sätter upp fyra:

  • kommandona den kör hålls inne i dess container, som den oprivilegierade användaren;
  • Control UI kräver en lång slumpmässig token;
  • varje ny webbläsare måste dessutom godkännas på servern innan den kan ansluta;
  • agenten frågar dig innan den kör ett kommando.

Varje steg nedan har körts på en VC-P Alloy (2 vCPU, 8 GB) hos Melonslab med Debian 13:

  • Via OpenRouters gratismodeller svarade agenten i Control UI, bad om godkännande innan den körde uname -r och rapporterade kärnversionen när den fick lov.
  • En felaktig token avvisades, och en webbläsare med rätt token behövde ändå godkännas på servern.
  • OpenClaws port gick inte att nå från internet, och inifrån dess container gick det inte att nå en app som bara lyssnar på serverns loopback-adress.
  • API-nyckelns förbrukning stannade på noll, en automatisk uppdatering till en nyare avbild gick igenom, en återställning från säkerhetskopian fungerade och allt startade igen av sig självt efter en omstart av servern.

OpenClaw använde omkring 1 GB minne. Dess avbild är 3,2 GB: räkna med 7 GB disk för den.

Innan du börjar

Du behöver:

  • en server uppsatt som i Podman-guiden, med Caddy igång, gärna med ufw från säkerhetsguiden. OpenClaw behöver inga egna portar;
  • en A-post och en AAAA-post för claw.example.com som pekar på din server;
  • en API-nyckel från en modelleverantör. Den här guiden använder OpenRouter, som har gratismodeller: skapa en nyckel på openrouter.ai/keys och ge den en utgiftsgräns.

Exemplen använder claw.example.com för OpenClaw och 203.0.113.10 som serverns IPv4-adress. Byt ut dem genomgående.

1. Skapa användaren

Som root:

useradd -m -s /bin/bash openclaw
loginctl enable-linger openclaw
machinectl shell openclaw@

Allt till och med steg 3 körs som openclaw.

2. Skriv konfigurationen

OpenClaw sparar allt i ~/.openclaw: sina inställningar, din API-nyckel, sina sessioner och sina anteckningar. Skapa katalogen och en första konfiguration med en slumpmässig token:

mkdir -m 700 ~/.openclaw
cat > ~/.openclaw/openclaw.json <<EOF
{
  "gateway": {
    "mode": "local",
    "bind": "lan",
    "auth": { "mode": "token", "token": "$(openssl rand -hex 32)" },
    "trustedProxies": ["203.0.113.10"],
    "controlUi": { "allowedOrigins": ["https://claw.example.com"] }
  }
}
EOF
chmod 600 ~/.openclaw/openclaw.json

Vad inställningarna gör:

  • bind satt till lan får OpenClaw att lyssna på alla adresser inne i containern, så att porten som publiceras i steg 3 når fram. Utifrån kan bara 127.0.0.1 på servern nå den porten. OpenClaw vägrar starta så här utan token.
  • auth är den token du loggar in med. Den som har den kan använda agenten, så förvara den säkert, som ett lösenord.
  • trustedProxies är serverns IPv4-adress, som är den adress Caddys anslutningar ser ut att komma från inne i containern. OpenClaw läser då varje besökares riktiga adress från Caddy och avvisar proxade förfrågningar från alla andra.
  • allowedOrigins är adressen du öppnar Control UI på. Webbläsare på andra adresser avvisas.

3. Definiera containern

mkdir -p ~/.config/containers/systemd

Skapa ~/.config/containers/systemd/openclaw.container:

[Unit]
Description=OpenClaw

[Container]
ContainerName=openclaw
Image=ghcr.io/openclaw/openclaw:latest
# The openclaw user outside the container is the user node inside it, so you own the files in ~/.openclaw.
UserNS=keep-id:uid=1000,gid=1000
Volume=%h/.openclaw:/home/node/.openclaw
# Only Caddy, on this server, can reach OpenClaw: the port is not open to the internet.
PublishPort=127.0.0.1:18789:18789
AutoUpdate=registry

[Service]
TimeoutStartSec=300
Restart=always

[Install]
WantedBy=default.target

Starta den:

systemctl --user daemon-reload
systemctl --user start openclaw
systemctl --user enable --now podman-auto-update.timer

Vid första starten laddas avbilden ner och förbereds för användarmappningen, vilket tog omkring fyra minuter. OpenClaw är igång när loggen visar [gateway] ready:

journalctl --user -u openclaw | grep "gateway\] ready"

4. Sätt Caddy framför

Gå tillbaka till root med exit, byt till användaren caddy med machinectl shell caddy@ och lägg till det här blocket sist i ~/Caddyfile:

claw.example.com {
    reverse_proxy 127.0.0.1:18789
}

Starta om Caddy med systemctl --user restart caddy. Caddy byter ut varje X-Forwarded-For-header som en besökare skickar mot besökarens riktiga adress, och det är vad OpenClaw förväntar sig av en betrodd proxy.

5. Lägg till modellen och lås ner den

Gå tillbaka till root med exit och byt till machinectl shell openclaw@ igen. Ge OpenClaw din nyckel från OpenRouter. read -rs frågar efter den utan att visa den och håller den utanför skalets historik: klistra in nyckeln, som börjar med sk-or-v1-, och tryck Enter.

read -rs KEY
echo "$KEY" | podman exec -i openclaw openclaw models auth paste-api-key --provider openrouter
unset KEY
podman exec openclaw openclaw models set openrouter/free

Nyckeln sparas i OpenClaws databas i ~/.openclaw/state, som bara användaren openclaw kan läsa. openrouter/free skickar varje förfrågan till en av OpenRouters gratismodeller. De är långsammare och har begränsningar för hur ofta de får användas. Vill du ha pålitligare svar väljer du en betald modell från openrouter.ai/models med models set, som openrouter/<provider>/<model>, och utgiftsgränsen på din nyckel håller kostnaden i schack.

Andra leverantörer sätts upp på samma sätt, med egen nyckel och modell: --provider anthropic eller --provider openai i det första kommandot, och sedan en modell som anthropic/<model> eller openai/<model>. Den här guiden har bara testat OpenRouter.

Från början låter OpenClaw agenten köra vilket kommando som helst utan att fråga, och har ett förhöjt läge för kommandon utanför en sandlåda. Få den att fråga, stäng av det förhöjda läget, bromsa den som försöker gissa din token, och starta om:

podman exec openclaw openclaw config set tools.exec.mode ask
podman exec openclaw openclaw config set tools.elevated.enabled false
podman exec openclaw openclaw config set gateway.auth.rateLimit '{"maxAttempts": 10, "windowMs": 60000, "lockoutMs": 300000}'
systemctl --user restart openclaw

Kontrollera sedan uppsättningen med OpenClaws egen granskning, som ska visa 0 critical · 0 warn:

podman exec openclaw openclaw security audit

6. Logga in och godkänn din webbläsare

Visa din token:

grep '"token"' ~/.openclaw/openclaw.json

Öppna https://claw.example.com, klistra in din token i Gateway secret och välj Connect. Sidan visar då Approve this browser, med ett kommando som openclaw devices approve 3f6a.... Låt sidan vara öppen och kör kommandot på servern, via containern:

podman exec openclaw openclaw devices approve REQUEST_ID

Sidan ansluter av sig själv. Därefter loggar den här webbläsaren in med en egen nyckel. En annan webbläsare, ett privat fönster eller rensad webbplatsdata kräver ett nytt godkännande. podman exec openclaw openclaw devices list visar de godkända webbläsarna.

7. Prata med den

Skriv ett meddelande i rutan längst ner och tryck Enter. Modellen som används visas under rutan: med openrouter/free står där vilken gratismodell som svarade.

Be agenten köra ett kommando, som uname -r, så stannar den med Exec approval needed och kommandot. Allow once kör det den här gången, Always allow here kör det kommandot utan att fråga från och med nu, och Deny nekar. Sedan svarar den med resultatet.

OpenClaw kan också svara dig i WhatsApp, Telegram, Discord och andra chattappar. Den här guiden använder bara Control UI.

8. Vad agenten kan nå

Kommandon som agenten kör hålls inne i dess container:

  • de körs som användaren openclaw, så de kan inte läsa filer som tillhör dina andra appar eller root;
  • appar som bara lyssnar på serverns loopback-adress, som apparna i våra andra guider gör bakom Caddy, går inte att nå från containern;
  • internet, och allt som din server gör tillgängligt på internet, går att nå;
  • agenten kan läsa sina egna inställningar i ~/.openclaw, även din token och din API-nyckel. Räkna med att den kan göra det som vem som helst med din token kan göra.

Den frågar innan varje kommando tack vare tools.exec.mode ask från steg 5. Always allow here lägger till kommandot i en lista som körs utan att fråga, så använd det bara för kommandon du själv skulle köra.

Control UI har också en Terminal-panel, ett skal i containern. Det är ytterligare ett skäl att förvara din token säkert och bara godkänna dina egna webbläsare. Utan token får en besökare bara se inloggningssidan och en hälsokontroll på /healthz.

9. Håll den uppdaterad

Timern från steg 3 letar efter en ny avbild varje dag och startar om OpenClaw på den. Taggen latest följer OpenClaws stabila versioner. podman auto-update --dry-run visar om en uppdatering väntar.

10. Säkerhetskopiera

Som openclaw:

mkdir -p ~/backup
systemctl --user stop openclaw
tar -czf ~/backup/openclaw.tar.gz -C ~ .openclaw
systemctl --user start openclaw

Det sparar inställningarna, sessionerna och agentens anteckningar, och även din token och din API-nyckel. Kopiera ~/backup till en annan maskin och förvara den säkert. För att återställa stoppar du OpenClaw, packar upp arkivet i hemkatalogen med tar -xzf ~/backup/openclaw.tar.gz -C ~ och startar den igen.

Felsökning

Tjänsten startar om gång på gång, och loggen visar "Refusing to bind gateway to lan without auth". Din token saknas i ~/.openclaw/openclaw.json. Jämför filen med steg 2.

Control UI visar "Browser origin not allowed". Adressen i webbläsaren finns inte i allowedOrigins. Den måste stämma exakt, med https:// och utan snedstreck på slutet.

Sidan visar "Approve this browser" igen. Du använder en ny webbläsare, ett privat fönster eller har rensat webbplatsens data. Godkänn den som i steg 6.

curl http://127.0.0.1:18789 på servern ger proxy_attribution_required. Det är väntat: direkta förfrågningar kommer från den betrodda proxyns adress utan Caddys headers, så OpenClaw avvisar dem. Använd https://claw.example.com.

Agenten svarar "No API key found for provider openrouter". Kör första delen av steg 5 igen och starta sedan om OpenClaw.

Efter att du gått tillbaka till en äldre avbild startar inte OpenClaw, och loggen nämner databasscheman. En nyare version har redan uppgraderat data i ~/.openclaw. Gå tillbaka till latest, eller återställ en säkerhetskopia som gjordes med den äldre versionen.

Svaren är långsamma eller uteblir en stund. Gratismodeller är begränsade. Välj en annan modell med models set i steg 5, eller en betald.

Kör det på din egen server

VC-S Micro

90 kr/mån

vCPU
2
Minne
8 GB
Lagring
250 GB
Trafik
10 TB
Standard
HDD · RAID 10
  • Full root-åtkomst
  • Nativt /64 IPv6
  • RAID-skyddad lagring
  • Malmö, Sverige
  • Månadsvis, ingen bindningstid
  • 7 dagars öppet köp
Alla guider