Sådan self-hoster du Actual Budget i 2026: Synkronisering, HTTPS og sikkerhedskopiering af økonomiske data
Deploy Actual Budget med den rigtige port, persistent storage, TLS, authentication og backups. Fejlsøg, når sync-mappen er ephemeral i produktion.
En mislykket Actual Budget-deployment går ikke altid ned. Den kan godt vise en login-side, selv om sync-mappen er ephemeral, eller en proxy fjerner store sync-requests. Start i stedet med et end-to-end-tjek: Opret eller importér et budget, tilføj transaktioner, synkronisér en anden browser, og generér et application-level export.
Det tjek svarer til Actual Budgets dokumenterede formål: kuvertbudgettering med data gemt på din disk. Det afslører også manglende dependencies, forkerte antagelser om proxyen og ephemeral data tidligere, end et uptime-tjek kan.
Adskil Actual Budget fra dets dependencies
Start med Actual Budgets network namespace: Dets web listener er port 5006, ikke en host-port kopieret fra en laptop-tutorial. Det lokale runtime-krav er ét persistent data volume og en supported browser til den første opsætning. Gør dets lifecycle eksplicit, så flytning af Actual Budget mellem hosts ikke ændrer adfærden uden varsel.
Når kravet er opfyldt, skal du køre hele scenariet — oprette eller importere et budget, tilføje transaktioner, synkronisere en anden browser og generere et application-level export. Registrér logs og målinger for budgetfilens størrelse, sync-trafik og server storage i stedet for tung server-side beregning. Disse data bliver den første kendte gode arkitektur og gør senere flytninger mellem Dockup compute og en tilsluttet server testbare.
Kør den første production-shaped instans
En minimal kommando er nyttig, når den viser, hvad platformen senere skal håndtere.
docker run -d \
--name actual-budget \
--restart unless-stopped \
-p 127.0.0.1:5006:5006 \
-v actual-budget-data:/data \
-e ACTUAL_PORT=5006 \
actualbudget/actual-server:latest
Her forbliver port 5006 private på hosten, og alle nødvendige paths er eksplicitte. Bekræft det lokale krav før eksponering: ét persistent data volume og en supported browser til den første opsætning. Verificér opstarten med både logs og det application-specific proof: Opret eller importér et budget, tilføj transaktioner, synkronisér en anden browser, og generér et application-level export. Når det er verificeret, skal du låse image-versionen, så en rutinemæssig udskiftning ikke ændrer adfærden uden varsel.
Gør den offentlige origin entydig
Vælg det endelige Actual Budget-hostname, før brugerne gemmer callbacks eller client settings, og brug derefter en stabil HTTPS-URL, så sync-klienter stoler på serveren. Platformens route skal terminere TLS én gang og pege på den private port 5006.
Kør acceptance-transaktionen eksternt. Hvis klienten aldrig når frem til Actual Budget, kan du bruge SSL-valideringstjeklisten til DNS- og certifikatkontrol. Hvis requesten når frem til Actual Budget, men sync-mappen er ephemeral, eller en proxy fjerner store sync-requests, skal du holde op med at ændre proxy-redirects og i stedet undersøge den application-specific boundary.
Gør recovery af Actual Budget målbar
Opret et recovery-manifest for Actual Budget: serverfiler plus periodiske application-level budget exports. Mount /data før bootstrap, skriv harmløse eksempeldata, og udskift containeren for at bevise, at den pågældende sti faktisk er persistent. Kontrollér ejerskab og ledig plads nu, fordi en mountet, men skrivebeskyttet sti i praksis er det samme som slet ingen persistence.
Tag backup til et failure domain, der er adskilt fra den kørende server. Genskab Actual Budget fra det pinned image, og verificér, at den gendannede server synkroniserer de samme konti og saldi, og at det uafhængige export også kan importeres. Guiden om persistent volumes hjælper med at omsætte denne øvelse til en snapshot- og retention-policy.
Lås Actual Budget ned efter bootstrap
Bootstrap-credentials er midlertidige; trust-modellen er permanent. Med Actual Budget skal du være opmærksom på ikke at publicere en finance-server, før dens password er konfigureret, og du skal angive serverens password før eksponering samt bruge HTTPS, fordi instansen indeholder en komplet økonomisk historik.
ACTUAL_PORT styrer adfærd, ikke confidentiality; validér dens type og værdi, og opbevar ægte Actual Budget-credentials separat. Kør imaget uden unødvendige Linux-capabilities, og eksponér kun den offentlige application-route. Sørg for, at administratoraktivitet er synlig, uden at secret values registreres.
Drift Actual Budget omkring den reelle flaskehals
Byg dashboards omkring budgetfilens størrelse, sync-trafik og server storage i stedet for tung server-side beregning. En CPU-graf uden denne workload-kontekst kan ikke forklare, hvorfor Actual Budget er langsom. Tilføj et syntetisk eller scheduled check, der forsøger at oprette eller importere et budget, tilføje transaktioner, synkronisere en anden browser og generere et application-level export ved hjælp af harmløse testdata.
Før en upgrade skal du tage højde for denne application-specific hazard: Actuals data migrations skal testes med både serverfiler og et eksporteret budget tilgængeligt til rollback. Gendan en nylig backup i en isoleret deployment, kør migrations dér, og sammenlign adfærden. Hvis sync-mappen er ephemeral, eller en proxy fjerner store sync-requests, skal du undersøge den relevante boundary — public origin, storage eller dependency — før du ændrer andre indstillinger.
Dokumentation, der skal indsamles, før Actual Budget går live
Opret et lille, midlertidigt Actual Budget-fixture, og behold det til hver release. Fixturen skal afprøve det reelle workflow: Opret eller importér et budget, tilføj transaktioner, synkronisér en anden browser, og generér et application-level export. Registrér image digest, eksternt hostname, dependency address og det forventede resultat, så en senere operator kan gentage testen uden at skulle fortolke denne vejledning.
Kør fixturen tre gange. Først med den friske deployment. Derefter ved at udskifte containeren uden at røre persistent state. Til sidst ved at gendanne backupen i et tomt miljø. Den tredje kørsel består kun, når den gendannede server synkroniserer de samme konti og saldi, og det uafhængige export også kan importeres. Under hver kørsel skal du registrere latency og resource use omkring budgetfilens størrelse, sync-trafik og server storage i stedet for tung server-side beregning; det bliver baseline for alerts i stedet for en vilkårlig CPU-procent.
Test til sidst den negative path bevidst: Indsend harmløst input tæt på den resource- eller formatgrænse, der er knyttet til denne boundary: sync-mappen er ephemeral, eller en proxy fjerner store sync-requests. Bekræft, at Actual Budget fejler synligt uden at korrumpere state, genskab den korrekte betingelse, og gentag den vellykkede transaktion. En release-record med disse fire resultater er stærkere evidens end screenshots af et dashboard eller et enkelt curl-svar.
Flyt det gentagelige infrastrukturarbejde til Dockup
Dockup kan håndtere de udskiftelige platformdele: route trafik til port 5006, udstede domæne og certifikat, injecte secrets, tilknytte persistent storage og forbinde Actual Budget med managed eller privat tilknyttede services. Det kan ske på Dockup-infrastruktur eller på en server, du tilslutter.
Acceptance-arbejdet for Actual Budget skal fortsat være eksplicit. Efter one-click-deploymenten skal du bruge en stabil HTTPS-URL, så sync-klienter stoler på serveren, bekræfte det lokale krav — ét persistent data volume og en supported browser til den første opsætning — og køre dette scenarie: Opret eller importér et budget, tilføj transaktioner, synkronisér en anden browser, og generér et application-level export. Denne opdeling er bevidst: Dockup fjerner gentagelig opsætning af infrastruktur uden at lade som om, at application roles, provider credentials eller restore policy vælger sig selv.
Ofte stillede spørgsmål
Hvad kræver Actual Budget til en produktionsdeployment?
Route Actual Budget-containeren på port 5006 gennem én HTTPS-origin. Det lokale runtime-krav er ét persistent data volume og en supported browser til den første opsætning. Kald ikke Actual Budget klar, før du kan oprette eller importere et budget, tilføje transaktioner, synkronisere en anden browser og generere et application-level export.
Hvilke Actual Budget-data hører hjemme i en backup?
Gør /data persistent, og inkludér serverfiler samt periodiske application-level budget exports i det samme recovery-manifest. En ren Actual Budget-restore består kun, når den gendannede server synkroniserer de samme konti og saldi, og det uafhængige export også kan importeres.
Kræver Actual Budget HTTPS bag en reverse proxy?
Brug HTTPS for den offentlige Actual Budget-origin, og behold port 5006 på den interne route. Anvend Actual Budget-indstillingen korrekt: Brug en stabil HTTPS-URL, så sync-klienter stoler på serveren. For Actual Budget beskytter HTTPS credentials eller brugerindhold under transport og sikrer en ensartet origin-følsom client-adfærd.
Hvordan bør en Actual Budget-upgrade testes?
Gendan den aktuelle Actual Budget-state i en isoleret deployment, anvend candidate-versionen, og gentag acceptance-transaktionen. Vær særligt opmærksom, fordi Actuals data migrations skal testes med både serverfiler og et eksporteret budget tilgængeligt til rollback. Behold det tidligere Actual Budget-image, indtil grænserne for data migration og rollback er forstået.
