Skip to main content

Introduction

Budget Bee is designed to be self-hosted, giving you complete control over your financial data. This guide will walk you through the process of deploying Budget Bee on your own infrastructure.

Architecture Overview

Budget Bee follows a modern microservices architecture with the following components:

Core Components

PostgreSQL

Primary database storing all financial data, user accounts, and organizational information

PostgREST

Auto-generated REST API from PostgreSQL schema with JWT authentication

Next.js App

Frontend application and API routes for business logic

Redis

Optional caching layer for sessions and performance optimization

Prerequisites

Before you begin, ensure you have the following installed:
1

Node.js 18+

Required for running the Next.js application
node --version
2

pnpm Package Manager

Budget Bee uses pnpm for dependency management
npm install -g pnpm
3

Docker & Docker Compose

Required for running PostgreSQL and PostgREST containers
docker --version
docker compose version
4

Git

For cloning the repository
git --version

System Requirements

Minimum Requirements

  • CPU: 2 cores
  • RAM: 4GB
  • Storage: 20GB SSD
  • OS: Linux, macOS, or Windows with WSL2
  • CPU: 4+ cores
  • RAM: 8GB+
  • Storage: 50GB+ SSD
  • OS: Ubuntu 22.04 LTS or similar

Deployment Options

Docker Compose

Recommended for local development and small deployments

Kubernetes

Scale Budget Bee with Kubernetes for production-grade deployments

Manual Setup

Advanced - run services without containers

Cloud Platforms

Deploy to AWS, GCP, Azure, or DigitalOcean

Quick Start

For a rapid deployment using Docker Compose:
# Clone the repository
git clone https://github.com/sammaji/budgetbee
cd budgetbee

# Install dependencies
pnpm install

# Run the setup script
make setup
The make setup command will:
  • Install all dependencies
  • Create environment files
  • Start Docker containers
  • Create database roles
  • Run all migrations
  • Configure JWT secrets

Port Configuration

By default, Budget Bee uses the following ports:
ServicePortDescription
PostgreSQL5100Database server
PostgREST5101REST API
Adminer5102Database admin UI
Web App3000Main application
Landing Page3001Marketing site
Docs3002Documentation
Currency API8787Exchange rates service
Make sure these ports are available on your system before starting the services.

Next Steps

Docker Setup

Set up using Docker Compose

Database Migrations

Understand the migration process

PostgreSQL Config

Configure PostgreSQL settings

Getting Help

If you encounter issues during deployment:

Build docs developers (and LLMs) love