Deploying OpenBudgeteer
Introduction
OpenBudgeteer is an open-source budgeting application inspired by You Need A Budget (YNAB). Built with .NET and Blazor, it provides a self-hosted solution for personal finance management using the envelope budgeting methodology, where every dollar is assigned a job before you spend it.
The application helps users track income, categorize expenses, and allocate money to budget categories. With support for multiple accounts and transaction imports, OpenBudgeteer offers a powerful alternative to subscription-based budgeting services.
Key features of OpenBudgeteer include:
- Envelope Budgeting: Assign every dollar to a budget category
- Multiple Accounts: Track checking, savings, credit cards, and cash
- Transaction Import: Import bank statements via CSV or OFX
- Automatic Categorization: Rules-based transaction categorization
- Budget Tracking: Visual progress indicators for each category
- Recurring Transactions: Schedule repeating income and expenses
- Reports: Monthly and yearly spending analysis
- Data Export: Export data for backup or analysis
- Mobile Responsive: Works on desktop and mobile browsers
- Multi-Currency: Support for different currencies
This guide walks through deploying OpenBudgeteer on Klutch.sh using Docker.
Why Deploy OpenBudgeteer on Klutch.sh
Deploying OpenBudgeteer on Klutch.sh provides private financial management:
Data Privacy: Keep your financial data on infrastructure you control rather than third-party services.
No Subscriptions: Avoid monthly fees from commercial budgeting apps.
Accessible Anywhere: Access your budget from any device with a web browser.
Persistent Storage: Store your financial history with persistent volumes.
HTTPS by Default: Secure access to sensitive financial data with automatic SSL certificates.
Prerequisites
Before deploying OpenBudgeteer on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your deployment
- Basic familiarity with Docker
Deploying OpenBudgeteer on Klutch.sh
Create Your Dockerfile
Create a Dockerfile in your repository:
FROM axelander/openbudgeteer:latest
# Configure environmentENV CONNECTION_PROVIDER=sqliteENV CONNECTION_DATABASE=/data/openbudgeteer.db
# Create data directoryRUN mkdir -p /data
EXPOSE 80
CMD ["dotnet", "OpenBudgeteer.dll"]Push to GitHub
Commit and push your Dockerfile to your GitHub repository.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project.
Create and Configure the App
Create a new app and connect it to your GitHub repository.
Configure HTTP Traffic
Set the traffic type to HTTP with an internal port of 80.
Set Environment Variables
Configure your deployment:
| Variable | Description |
|---|---|
CONNECTION_PROVIDER | Database type (sqlite, mysql, postgresql) |
CONNECTION_DATABASE | Database connection string or file path |
APPSETTINGS_CULTURE | Locale for currency formatting (e.g., en-US) |
Attach Persistent Volumes
Add persistent storage:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/data | 1 GB | SQLite database and data files |
Deploy Your Application
Click Deploy to build and launch your OpenBudgeteer instance.
Start Budgeting
Access your deployment and create your first accounts and budget categories.