Journal-indexDockup / praktijknotitie
Note / self-host-actualbudget

Actual Budget zelf hosten in 2026: sync, HTTPS en back-ups van financiële gegevens

Implementeer Actual Budget met de juiste poort, duurzame opslag, TLS, authenticatie en back-ups. Los problemen op wanneer de sync-directory in productie ephemeral is.

Een mislukte Actual Budget-deployment crasht niet altijd. De applicatie kan een loginpagina tonen terwijl de sync-directory ephemeral is of een proxy grote sync-requests verwijdert. Begin daarom met een end-to-end-controle: maak of importeer een budget, voeg transacties toe, synchroniseer een tweede browser en maak een export op applicatieniveau.

Die controle sluit aan bij het gedocumenteerde doel van Actual Budget: budgetteren volgens het envelopmodel, met gegevens die op je eigen schijf worden bewaard. Ook worden ontbrekende dependencies, verkeerde proxy-aannames en ephemeral data eerder zichtbaar dan met een uptime-check.

Scheid Actual Budget van zijn dependencies

Begin met de netwerknamespace van Actual Budget: de weblistener gebruikt poort 5006, niet een hostpoort die je uit een laptop-tutorial hebt overgenomen. De vereiste voor de lokale runtime is één duurzame datavolume en een ondersteunde browser voor de eerste configuratie. Houd de lifecycle expliciet, zodat het verplaatsen van Actual Budget tussen hosts niet ongemerkt het gedrag verandert.

Nadat aan de vereiste is voldaan, voer je het volledige scenario uit — maak of importeer een budget, voeg transacties toe, synchroniseer een tweede browser en maak een export op applicatieniveau. Leg logs en metingen vast voor de grootte van budgetbestanden, sync-verkeer en serveropslag, in plaats van voor zware berekeningen aan de serverzijde. Dit bewijs vormt de eerste bekende werkende architectuur en maakt latere verplaatsingen tussen Dockup compute en een gekoppelde server testbaar.

Start de eerste productiegerichte instance

Een minimaal commando is nuttig wanneer het laat zien wat het platform later zal beheren.

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

Hier blijft poort 5006 privé op de host en is elk vereist pad expliciet vastgelegd. Controleer eerst de lokale vereiste voordat je de applicatie beschikbaar maakt: één duurzame datavolume en een ondersteunde browser voor de eerste configuratie. Controleer het opstarten met zowel logs als applicatiespecifiek bewijs: maak of importeer een budget, voeg transacties toe, synchroniseer een tweede browser en maak een export op applicatieniveau. Zodra dit is gecontroleerd, leg je de imageversie vast, zodat een routinematige vervanging het gedrag niet ongemerkt verandert.

Maak de publieke origin ondubbelzinnig

Kies de definitieve hostnaam van Actual Budget voordat gebruikers callbacks of clientinstellingen opslaan en gebruik vervolgens een stabiele HTTPS-URL, zodat sync-clients de server vertrouwen. De platformroute moet TLS eenmaal beëindigen en doorsturen naar privépoort 5006.

Voer de acceptatietransactie extern uit. Als de client Actual Budget nooit bereikt, gebruik dan de checklist voor SSL-validatie voor DNS- en certificaatcontroles. Als de request Actual Budget wel bereikt maar de sync-directory ephemeral is of een proxy grote sync-requests verwijdert, stop dan met het aanpassen van proxy-redirects en controleer de applicatiespecifieke grens.

Maak herstel van Actual Budget meetbaar

Maak een recovery manifest voor Actual Budget: serverbestanden plus periodieke budgetexports op applicatieniveau. Mount /data voordat de bootstrap plaatsvindt, schrijf onschadelijke voorbeelddata en vervang de container om te bewijzen dat het pad daadwerkelijk persistent is. Controleer nu het eigenaarschap en de beschikbare schijfruimte, want een gemount maar niet-beschrijfbaar pad gedraagt zich alsof er helemaal geen persistentie is.

Maak back-ups naar een failure domain dat losstaat van de actieve server. Maak Actual Budget opnieuw aan vanaf de vastgezette image en controleer of de herstelde server dezelfde accounts en saldi synchroniseert en of de onafhankelijke export ook kan worden geïmporteerd. De handleiding voor persistent volumes helpt je deze oefening te vertalen naar een beleid voor snapshots en bewaartermijnen.

Beveilig Actual Budget na de bootstrap

Bootstrapgegevens zijn tijdelijk; het trustmodel is permanent. Let bij Actual Budget op het publiceren van een financiële server voordat het wachtwoord is geconfigureerd. Stel het serverwachtwoord in voordat je de server beschikbaar maakt en gebruik HTTPS, omdat de instance de volledige financiële historie bevat.

ACTUAL_PORT bepaalt het gedrag, niet de vertrouwelijkheid; valideer het type en de waarde ervan en bewaar echte Actual Budget-credentials afzonderlijk. Voer de image uit zonder onnodige Linux-capabilities en stel alleen de publieke applicatieroute beschikbaar. Houd beheerdersactiviteit zichtbaar zonder geheime waarden vast te leggen.

Beheer Actual Budget rond de echte bottleneck

Bouw dashboards rond de grootte van budgetbestanden, sync-verkeer en serveropslag, in plaats van rond zware berekeningen aan de serverzijde. Een CPU-grafiek zonder context over deze workload kan niet verklaren waarom Actual Budget traag is. Voeg een synthetische of geplande check toe die met onschadelijke testdata probeert een budget te maken of te importeren, transacties toe te voegen, een tweede browser te synchroniseren en een export op applicatieniveau te maken.

Houd vóór een upgrade rekening met dit applicatiespecifieke risico: de datamigraties van Actual moeten worden getest met zowel serverbestanden als een geëxporteerd budget dat beschikbaar is voor rollback. Herstel een recente back-up in een geïsoleerde deployment, voer daar de migraties uit en vergelijk het gedrag. Als de sync-directory ephemeral is of een proxy grote sync-requests verwijdert, controleer dan eerst de betrokken grens — publieke origin, opslag of dependency — voordat je niet-gerelateerde instellingen aanpast.

Bewijs dat je moet verzamelen voordat Actual Budget live gaat

Maak een kleine, wegwerpbare Actual Budget-fixture en bewaar die voor elke release. De fixture moet de echte workflow doorlopen: een budget maken of importeren, transacties toevoegen, een tweede browser synchroniseren en een export op applicatieniveau maken. Leg de image digest, externe hostnaam, het dependency-adres en het verwachte resultaat vast, zodat een volgende beheerder de test kan herhalen zonder deze handleiding te hoeven interpreteren.

Voer de fixture drie keer uit. Gebruik eerst de nieuwe deployment. Vervang vervolgens de container zonder de duurzame state aan te raken. Herstel ten slotte de back-up in een lege omgeving. De derde run is alleen geslaagd wanneer de herstelde server dezelfde accounts en saldi synchroniseert en de onafhankelijke export ook kan worden geïmporteerd. Leg tijdens elke run latency en resourcegebruik vast rond de grootte van budgetbestanden, sync-verkeer en serveropslag, in plaats van rond zware berekeningen aan de serverzijde; dit wordt de basis voor alerts en niet een willekeurig CPU-percentage.

Test ten slotte bewust het negatieve pad: dien onschadelijke input in nabij de resource- of formaatslimiet die bij deze grens hoort: de sync-directory is ephemeral of een proxy verwijdert grote sync-requests. Controleer of Actual Budget zichtbaar faalt zonder de state te beschadigen, herstel de juiste toestand en herhaal de geslaagde transactie. Een releaserecord met deze vier uitkomsten levert sterker bewijs dan screenshots van een dashboard of een eenmalige curl-response.

Verplaats herhaalbaar infrastructuurwerk naar Dockup

Dockup kan de vervangbare platformonderdelen beheren: verkeer naar poort 5006 routeren, het domein en certificaat uitgeven, secrets injecteren, persistent storage koppelen en Actual Budget verbinden met managed of privé gekoppelde services. Dit kan op de infrastructuur van Dockup of op een server die je koppelt.

Het acceptatiewerk voor Actual Budget blijft expliciet. Gebruik na de one-click-deployment een stabiele HTTPS-URL, zodat sync-clients de server vertrouwen. Bevestig de lokale vereiste — één duurzame datavolume en een ondersteunde browser voor de eerste configuratie — en voer dit scenario uit: maak of importeer een budget, voeg transacties toe, synchroniseer een tweede browser en maak een export op applicatieniveau. Die verdeling is bewust: Dockup neemt repetitieve infrastructuurconfiguratie weg zonder te doen alsof applicatierollen, provider-credentials of het restorebeleid vanzelf worden gekozen.

Veelgestelde vragen

Wat heeft Actual Budget nodig voor een productie-deployment?

Routeer de Actual Budget-container op poort 5006 via één HTTPS-origin. De vereiste voor de lokale runtime is één duurzame datavolume en een ondersteunde browser voor de eerste configuratie. Markeer Actual Budget pas als gereed wanneer je een budget kunt maken of importeren, transacties kunt toevoegen, een tweede browser kunt synchroniseren en een export op applicatieniveau kunt maken.

Welke Actual Budget-gegevens horen in een back-up?

Maak /data persistent en neem serverbestanden plus periodieke budgetexports op applicatieniveau op in hetzelfde recovery manifest. Een schone restore van Actual Budget is alleen geslaagd wanneer de herstelde server dezelfde accounts en saldi synchroniseert en de onafhankelijke export ook kan worden geïmporteerd.

Heeft Actual Budget HTTPS nodig achter een reverse proxy?

Gebruik HTTPS voor de publieke Actual Budget-origin en houd poort 5006 op de interne route. Pas de Actual Budget-instelling correct toe: gebruik een stabiele HTTPS-URL, zodat sync-clients de server vertrouwen. Voor Actual Budget beschermt HTTPS credentials of gebruikerscontent tijdens transport en zorgt het ervoor dat origingevoelig clientgedrag consistent blijft.

Hoe moet een Actual Budget-upgrade worden getest?

Herstel de huidige Actual Budget-state in een geïsoleerde deployment, pas de kandidaatversie toe en herhaal de acceptatietransactie. Let hier extra op, omdat de datamigraties van Actual moeten worden getest met zowel serverbestanden als een geëxporteerd budget dat beschikbaar is voor rollback. Bewaar de vorige Actual Budget-image totdat de grens voor datamigratie en rollback duidelijk is.