Skip to content

Deploying ezBookkeeping

Introduction

ezBookkeeping is a lightweight, self-hosted personal finance management application designed for simplicity and ease of use. It provides essential bookkeeping features without the complexity of full accounting software, making it perfect for individuals and families who want to track their income, expenses, and financial goals.

Built with Go for the backend and Vue.js for the frontend, ezBookkeeping offers a fast, responsive experience across desktop and mobile devices. The application supports multiple accounts, categories, tags, and currencies, allowing users to organize their finances according to their preferences.

Key highlights of ezBookkeeping:

  • Multi-Account Support: Track multiple bank accounts, credit cards, and cash
  • Customizable Categories: Create expense and income categories that match your lifestyle
  • Multi-Currency: Support for multiple currencies with automatic exchange rate updates
  • Transaction Tags: Add tags for additional organization and filtering
  • Data Export: Export your data for backup or analysis
  • Mobile-Friendly: Responsive design works on any device
  • Two-Factor Authentication: Secure your financial data with 2FA
  • Lightweight: Minimal resource requirements and fast performance
  • Privacy-Focused: All data stays on your server
  • Open Source: Licensed under MIT for full transparency

This guide walks through deploying ezBookkeeping on Klutch.sh using Docker, configuring persistent storage, and setting up the application for secure financial tracking.

Why Deploy ezBookkeeping on Klutch.sh

Deploying ezBookkeeping on Klutch.sh provides several advantages:

Always Accessible: Access your financial records from anywhere with an internet connection.

Secure by Default: HTTPS encryption protects your sensitive financial data in transit.

Persistent Storage: Your transaction history and settings survive container updates and restarts.

Private Hosting: Unlike cloud finance apps, your data remains under your control.

Automatic Backups: Combine with volume backups to protect your financial records.

GitHub Integration: Version control your configuration and deploy automatically on changes.

Prerequisites

Before deploying ezBookkeeping on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your configuration
  • Basic familiarity with Docker and containerization
  • (Optional) A custom domain for your finance application

Understanding ezBookkeeping Architecture

ezBookkeeping uses a straightforward architecture:

Go Backend: Handles API requests, authentication, and business logic with minimal resource usage.

Vue.js Frontend: Provides a responsive single-page application for the user interface.

SQLite Database: Stores all data in a single file, simplifying backup and migration.

Static Assets: Embedded in the binary for simple deployment.

Preparing Your Repository

Create a GitHub repository with your ezBookkeeping configuration.

Repository Structure

ezbookkeeping-deploy/
├── Dockerfile
├── config.ini
└── .dockerignore

Creating the Dockerfile

FROM mayswind/ezbookkeeping:latest
# Set environment variables
ENV EBK_SERVER_MODE=production
ENV EBK_DATABASE_TYPE=sqlite3
ENV EBK_DATABASE_PATH=/data/ezbookkeeping.db
# Create data directory
RUN mkdir -p /data
# Expose web interface
EXPOSE 8080
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=15s --retries=3 \
CMD wget --no-verbose --tries=1 --spider http://localhost:8080/api/v1/ping || exit 1

Configuration File

Create a config.ini file for additional settings:

[server]
mode = "production"
port = 8080
[database]
type = "sqlite3"
path = "/data/ezbookkeeping.db"
[security]
secret_key = "${SECRET_KEY}"
enable_two_factor = true
[log]
level = "info"

Environment Variables Reference

VariableRequiredDescription
EBK_SERVER_MODENoServer mode: production or development
EBK_SERVER_PORTNoHTTP port (default: 8080)
EBK_DATABASE_TYPENoDatabase type: sqlite3, mysql, or postgres
EBK_DATABASE_PATHYes*SQLite database file path
EBK_SECRET_KEYYesSecret key for session encryption
EBK_LOG_LEVELNoLogging level: debug, info, warn, error

Deploying ezBookkeeping on Klutch.sh

    Generate a Secret Key

    Create a secure secret key for session management:

    Terminal window
    openssl rand -hex 32

    Save this key securely for environment variable configuration.

    Push Your Repository to GitHub

    Commit your Dockerfile and configuration to your GitHub repository.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project named “ezbookkeeping” or “finance”.

    Create a New App

    Create a new app within your project and connect your GitHub repository.

    Configure HTTP Traffic

    Set up HTTP traffic:

    • Select HTTP as the traffic type
    • Set the internal port to 8080

    Set Environment Variables

    Configure the required environment variables:

    VariableValue
    EBK_SERVER_MODEproduction
    EBK_SECRET_KEYYour generated secret key
    EBK_DATABASE_TYPEsqlite3
    EBK_DATABASE_PATH/data/ezbookkeeping.db

    Attach Persistent Volumes

    Mount PathSizePurpose
    /data1 GBSQLite database and application data

    Deploy Your Application

    Click Deploy to build and launch ezBookkeeping.

    Access Your Application

    Once deployed, access ezBookkeeping at your app URL. Create your first user account to get started.

Initial Setup

Creating Your First Account

  1. Navigate to your ezBookkeeping URL
  2. Click “Register” to create a new user
  3. Set up your username and a strong password
  4. Enable two-factor authentication for additional security

Setting Up Accounts

Create accounts to represent your financial holdings:

  • Checking Account: Your primary bank account
  • Savings: Savings or money market accounts
  • Credit Cards: Track credit card spending and payments
  • Cash: Physical cash on hand
  • Investment: Brokerage accounts (track balance only)

Configuring Categories

Set up expense and income categories that match your budget:

Income Categories:

  • Salary
  • Freelance
  • Investments
  • Gifts

Expense Categories:

  • Housing
  • Transportation
  • Food & Dining
  • Utilities
  • Entertainment
  • Healthcare

Currency Settings

If you deal with multiple currencies:

  1. Navigate to Settings
  2. Select your default currency
  3. Add additional currencies as needed
  4. Enable automatic exchange rate updates

Daily Usage

Recording Transactions

For each transaction, record:

  • Date and time
  • Account
  • Category
  • Amount
  • Notes (optional)
  • Tags (optional)

Transfers Between Accounts

Track money movement between your accounts:

  • Credit card payments
  • Savings transfers
  • Investment contributions

Using Tags

Tags provide additional filtering beyond categories:

  • Project-based expenses
  • Vacation spending
  • Tax-deductible items
  • Reimbursable expenses

Data Management

Exporting Data

Export your data regularly for backup:

  1. Navigate to Data Management
  2. Select export format (CSV or JSON)
  3. Choose date range
  4. Download the export file

Importing Data

Import transactions from other sources:

  1. Prepare your data in the required format
  2. Navigate to Import
  3. Upload your file
  4. Map columns to fields
  5. Review and confirm import

Security Best Practices

Enable Two-Factor Authentication

Protect your financial data with 2FA:

  1. Go to Security Settings
  2. Enable two-factor authentication
  3. Scan QR code with authenticator app
  4. Store backup codes securely

Strong Passwords

Use a strong, unique password for your ezBookkeeping account. Consider using a password manager.

Regular Backups

Schedule regular backups of your database volume to prevent data loss.

Troubleshooting

Cannot Log In

  • Verify username and password
  • Check 2FA code if enabled
  • Clear browser cache and cookies
  • Review application logs

Database Errors

  • Ensure persistent volume is properly mounted
  • Check file permissions on database directory
  • Verify disk space availability

Slow Performance

  • Review database size and consider optimization
  • Check server resource allocation
  • Monitor for excessive logging

Additional Resources

Conclusion

Deploying ezBookkeeping on Klutch.sh provides a private, secure platform for personal finance management. The combination of ezBookkeeping’s simplicity and Klutch.sh’s reliable hosting creates an ideal solution for tracking your financial life without relying on third-party services that may access your data.

With multi-account support, customizable categories, and two-factor authentication, ezBookkeeping offers the essential features needed for effective personal bookkeeping while respecting your privacy.