Configuration Guide
This guide covers the essential configuration options for deploying Actual Budget using the Helm chart.
Basic Configuration
Image Configuration
image:
repository: actualbudget/actual-server
tag: "" # Uses chart appVersion by default
pullPolicy: IfNotPresent
Service Configuration
service:
type: ClusterIP
port: 5006
name: http
annotations: {}
File Storage Configuration
Actual Budget requires specific directory structure for data storage:
files:
dataDirectory: /data
server: /data/server-files
user: /data/user-files
info
dataDirectory
: Base directory where all data is storedserver
: Contains account.sqlite with user accounts and session tokensuser
: Stores budget files as binary blobs
Persistence Configuration
Enable persistent storage to retain data across pod restarts:
persistence:
enabled: true
size: 10Gi
accessModes:
- ReadWriteOnce
storageClass: ""
existingClaim: ""
tip
For production deployments, always enable persistence to prevent data loss during pod restarts or updates.
Upload Limits
Configure file upload size limits:
upload:
fileSizeLimitMB: 20
fileSizeSyncLimitMB: 20
syncEncryptedFileSizeLimitMB: 50
Deployment Strategy
Choose between RollingUpdate and Recreate strategies:
strategy:
type: Recreate # Recommended for single-instance deployments
rollingUpdate:
maxSurge: "100%"
maxUnavailable: 0
warning
Use Recreate
strategy for single-instance deployments to avoid data corruption issues during updates.
Resource Management
Set resource requests and limits:
resources:
limits:
cpu: 200m
memory: 256Mi
requests:
cpu: 100m
memory: 128Mi
Health Checks
Configure liveness and readiness probes:
livenessProbe:
httpGet:
path: /
port: http
readinessProbe:
httpGet:
path: /
port: http
Ingress Configuration
Enable ingress for external access:
ingress:
enabled: true
className: nginx
annotations:
kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: "true"
hosts:
- host: actualbudget.yourdomain.com
paths:
- path: /
pathType: ImplementationSpecific
tls:
- secretName: actualbudget-tls
hosts:
- actualbudget.yourdomain.com
Complete Example
Here's a complete configuration example for a production deployment:
# Basic deployment
replicaCount: 1
strategy:
type: Recreate
# Image configuration
image:
repository: actualbudget/actual-server
pullPolicy: IfNotPresent
# File storage
files:
dataDirectory: /data
server: /data/server-files
user: /data/user-files
# Persistence
persistence:
enabled: true
size: 20Gi
accessModes:
- ReadWriteOnce
storageClass: ""
# Upload limits
upload:
fileSizeLimitMB: 20
fileSizeSyncLimitMB: 20
syncEncryptedFileSizeLimitMB: 50
# Authentication
login:
method: password
allowedLoginMethods:
- password
- header
- openid
# Ingress
ingress:
enabled: true
className: nginx
hosts:
- host: actualbudget.yourdomain.com
paths:
- path: /
pathType: ImplementationSpecific
# Resources
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 200m
memory: 256Mi
Next Steps
- Learn about authentication setup
- Configure storage and persistence
- Explore advanced configuration options