Kör Actual Budget med Podman utan root

Actual Budget, en privat budgetapp, på Debian 13 i rootless Podman under en egen användare, synkad mellan dina enheter över HTTPS bakom Caddy, med spärr per besökare efter misslyckade inloggningar, uppdateringar och säkerhetskopior.

Testad på Actual Budget 26.9 på Debian 13 (trixie) på en server hos Melonslab Uppdaterad 25 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

Actual Budget är en budgetapp som körs i din webbläsare. Dess server håller din budget synkad mellan dina datorer och mobiler, så att du kan planera på en och följa upp på en annan.

Här körs servern som en container, under en egen användare som heter actual, med Caddy från Podman-guiden framför för HTTPS.

Varje steg nedan har körts på en VC-P Alloy (2 vCPU, 8 GB) hos Melonslab med Debian 13: vi valde serverlösenordet, kontrollerade inloggning och synkning av en budgetfil via serverns API, såg att misslyckade inloggningar begränsades per besökare och inte för alla, och kontrollerade säkerhetskopian och en omstart av servern. I vila använde Actual omkring 250 MB minne, så det minsta av våra Standard-paket räcker gott.

Innan du börjar

Du behöver:

  • en server uppsatt som i Podman-guiden, med Caddy igång;
  • ett namn för den, till exempel budget.example.com, med en A-post och en AAAA-post som pekar på din server.

Exemplen använder budget.example.com som namn och 203.0.113.10 som din servers IPv4-adress. Byt genomgående ut dem mot dina egna.

1. Skapa användaren

Som root:

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

2. Definiera containern

mkdir -p ~/.config/containers/systemd

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

[Unit]
Description=Actual Budget, a budgeting app server

[Container]
ContainerName=actual
Image=docker.io/actualbudget/actual-server:latest
Volume=actual-data:/data
# Only Caddy, on this server, can reach Actual: the port is not open to the internet.
PublishPort=127.0.0.1:8084:5006
Environment=ACTUAL_TRUSTED_PROXIES=203.0.113.10
AutoUpdate=registry

[Service]
Restart=always

[Install]
WantedBy=default.target

Actual tillåter fem misslyckade inloggningar per 15 minuter från varje IP-adress. Den tar besökarens adress från det Caddy skickar vidare, men som standard bara från proxyer på privata adresser, och Caddys anslutningar når containern från serverns egen IPv4-adress. ACTUAL_TRUSTED_PROXIES anger den adressen. Utan den skulle alla besökare dela en adress, och några felaktiga lösenord från vem som helst skulle låsa ute alla.

Starta den:

systemctl --user daemon-reload
systemctl --user start actual
podman logs -f actual

När loggen visar Listening on :::5006... trycker du Ctrl+C.

3. Sätt Caddy framför

Gå tillbaka till root med exit och byt till Caddys användare med machinectl shell caddy@. Lägg till det här blocket sist i ~/Caddyfile:

budget.example.com {
    reverse_proxy 127.0.0.1:8084
}

Och starta om Caddy, vilket kort avbryter alla webbplatser den serverar:

systemctl --user restart caddy

Caddy hämtar ett certifikat för budget.example.com och förnyar det själv. I webbläsaren fungerar Actual bara över HTTPS.

4. Välj ett serverlösenord

Öppna https://budget.example.com. Första gången ber Actual dig välja ett serverlösenord, som skyddar åtkomsten till dina budgetar. Skapa sedan en ny budget, eller importera en från en fil.

Öppna samma adress på dina andra enheter och logga in med det lösenordet; din budget synkas mellan dem. Actual kan också kryptera en budget på dina enheter innan den synkas, med ett eget lösenord, om du vill att servern bara ska lagra krypterade data.

5. Håll den uppdaterad

Slå på Podmans dagliga uppdateringar för den här användaren:

systemctl --user enable --now podman-auto-update.timer

6. Säkerhetskopiera

Som actual:

mkdir -p ~/backup
systemctl --user stop actual
podman volume export actual-data --output ~/backup/actual-data.tar
systemctl --user start actual

Att stoppa Actual de sekunder det tar ger en konsistent kopia. Arkivet innehåller serverns kontodatabas och varje budgetfil. Kopiera sedan ~/backup till en annan maskin: en säkerhetskopia på samma server överlever inte att servern går förlorad. Actual kan också exportera en budget från sina inställningar, som en fil du kan importera igen.

Felsökning

Inloggningen meddelar att det har gjorts för många försök. Fem felaktiga lösenord från din adress låser inloggningar från den i 15 minuter, även med rätt lösenord. Vänta och försök igen.

En persons felaktiga lösenord låser ute alla. ACTUAL_TRUSTED_PROXIES i steg 2 måste vara serverns IPv4-adress, den som Caddys anslutningar kommer från.

Appen startar inte i webbläsaren. Öppna den på https://budget.example.com: Actual behöver en säker anslutning för att köras.

Din budget i Sverige

Med Actual på en server hos Melonslab lagras din budget i Sverige, på en server du själv styr över, där svensk lag och EU-rätt gäller.

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