Skip to content

feat(apps): add Actual Budget deployment#1498

Draft
devantler wants to merge 1 commit intomainfrom
devantler/feat-actual-budget
Draft

feat(apps): add Actual Budget deployment#1498
devantler wants to merge 1 commit intomainfrom
devantler/feat-actual-budget

Conversation

@devantler
Copy link
Copy Markdown
Contributor

Summary

Deploy Actual Budget as a self-hosted personal finance app at budget.${domain}.

Configuration

Aspect Value
Helm chart community-charts/actualbudget v1.8.7 (appVersion 26.2.0)
Subdomain budget.${domain}
Auth OIDC via Dex (public-client static client)
Scaling KEDA HTTP scale-to-zero (0→1, 5min cooldown)
Storage Persistent volume (10Gi prod, 2Gi local)
Replicas 1 max (SQLite — cannot scale horizontally)

Changes

  • New: k8s/bases/apps/actual-budget/ — Full app manifests (HelmRelease, HelmRepository, HTTPRoute, HTTPScaledObject, Namespace)
  • Modified: Dex HelmRelease — Added redirect URI for Actual Budget OIDC callback
  • Modified: Docker provider — Added patch to reduce PVC size for local dev
  • Modified: Prod variables — Added actual_budget_replicas variable
  • Modified: hosts file — Added budget.platform.lan entry

Auth Flow

Actual Budget uses the platform's Dex OIDC provider for single sign-on via GitHub. No new secrets are required — reuses the existing dex_client_secret with the public-client client ID.

Deploy Actual Budget (actualbudget.org) as a self-hosted personal finance
app at budget.${domain}. Configuration:

- Helm chart: community-charts/actualbudget v1.8.7 (appVersion 26.2.0)
- Auth: OIDC via Dex (reuses public-client static client)
- Scaling: KEDA HTTP scale-to-zero (0→1, 5min cooldown)
- Storage: Persistent (10Gi prod, 2Gi local Docker)
- Ingress: Gateway API HTTPRoute through KEDA HTTP interceptor
- Homepage: Dashboard integration via annotations

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 5, 2026 19:57
@github-project-automation github-project-automation Bot moved this to 🫴 Ready in 🌊 Project Board May 5, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new GitOps-managed deployment for the Actual Budget app to the platform, exposing it at budget.${domain} and integrating it with the existing Dex OIDC auth chain and KEDA HTTP scale-to-zero pattern used by other apps.

Changes:

  • Adds a new k8s/bases/apps/actual-budget/ app bundle (namespace, HelmRepository/HelmRelease, Gateway API HTTPRoute, KEDA HTTPScaledObject).
  • Extends Dex’s public-client redirect URIs to allow Actual Budget’s OIDC callback.
  • Adds a Docker-provider patch to reduce PVC size for local dev and introduces a prod replica variable + local DNS host entry.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated no comments.

Show a summary per file
File Description
k8s/providers/docker/apps/kustomization.yaml Applies a Docker-provider overlay patch for the Actual Budget HelmRelease.
k8s/providers/docker/apps/actual-budget/patches/helm-release-patch.yaml Reduces Actual Budget persistence size to 2Gi for Docker/local environments.
k8s/clusters/prod/variables/variables-cluster-config-map.yaml Adds actual_budget_replicas for prod and documents KEDA-managed replica behavior.
k8s/bases/infrastructure/controllers/dex/helm-release.yaml Adds https://budget.${domain}/oidc/callback to Dex redirect URIs for the shared client.
k8s/bases/apps/kustomization.yaml Includes the new actual-budget/ base in the apps bundle.
k8s/bases/apps/actual-budget/namespace.yaml Creates the actual-budget namespace.
k8s/bases/apps/actual-budget/kustomization.yaml Wires Actual Budget resources into a single kustomize package.
k8s/bases/apps/actual-budget/httproute.yaml Routes budget.${domain} through the KEDA HTTP interceptor via Gateway API.
k8s/bases/apps/actual-budget/http-scaled-object.yaml Enables KEDA HTTP scale-to-zero behavior (0→1) for Actual Budget.
k8s/bases/apps/actual-budget/helm-repository.yaml Defines the HelmRepository source for the community actualbudget chart.
k8s/bases/apps/actual-budget/helm-release.yaml Deploys Actual Budget via Helm with persistence and Dex OIDC settings.
hosts Adds budget.platform.lan for local access via the shared ingress setup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🫴 Ready

Development

Successfully merging this pull request may close these issues.

2 participants