SlimBooks

A secure, self-hosted billing and invoice management application built with React, TypeScript, and SQLite. Complete control over your financial data — no telemetry, no hosted tier, no vendor lock-in.

Security-First
Docker Ready
Raspberry Pi Optimized
AGPL-3.0-or-later
Docker Quick Start
# Clone the repository
git clone https://github.com/rbenzing/SlimBooks.git
cd SlimBooks

# Generate cryptographically secure secrets
./scripts/generate-secrets.sh

# Deploy with Docker Compose
./scripts/deploy.sh

# App available at http://localhost:8080

Key Features

Everything you need to manage invoices, clients, and expenses while keeping full ownership of your data.

Business Management

  • Dashboard — Real-time financial overview with interactive charts
  • Client Management — Complete profiles, contact details & history
  • Professional Invoices — Customizable templates with line items, taxes & shipping
  • Recurring Invoices — Automated billing (weekly / monthly / quarterly / yearly)
  • Expense Tracking — Categorized expenses with receipt uploads
  • Financial Reports — P&L (cash or accrual), invoice, expense & client reports with multi-period columns

Security & Privacy

  • Enterprise Security — Rate limiting, input validation, security headers (Helmet)
  • JWT Authentication — Secure token-based auth with optional 2FA
  • Account Lockout — Automatic protection after failed login attempts
  • Self-Hosted — Complete data ownership, zero third-party sharing
  • Encrypted Storage — SQLite with encrypted sensitive fields
  • Audit Logging — Request/response logging for security monitoring

Deployment

  • Docker Ready — One-command deployment with Docker Compose
  • Raspberry Pi — Optimized for ARM and low-power systems
  • Fast Setup — Automated scripts for secrets, deploy & cron
  • Portable — Single-file SQLite database for easy backup & migration
  • Daily Backups — Automated backups with rotation
  • No External Services — Everything runs on your hardware

Application Screenshots

A clean, modern interface focused on clarity and speed. Replace the placeholders below with actual captures from your instance.

Dashboard

Real-time revenue, expenses & charts

Dashboard — interactive overview of financial health

Invoice Editor

Line items, taxes, shipping & templates

Professional invoice creation with recurring support

Client Management

Profiles, history & contact details

Full client records and activity history

Reports

P&L, cash/accrual, multi-period

Flexible financial reporting with period breakdowns

To add real screenshots: place optimized WebP/PNG files in your static assets and replace the placeholder frames above. Always include meaningful alt text describing the UI state.

Modern Tech Stack

Built for performance, maintainability, and developer experience

Frontend

  • React 18 UI Library
  • TypeScript Language
  • Vite Build Tool
  • shadcn/ui + Tailwind CSS Styling & UI
  • Lucide Icons Icon Library

Backend

  • Node.js Runtime
  • Express Web Framework
  • SQLite Database
  • Recharts Charts

Security & Deployment

Helmet Rate Limiting JWT bcrypt 2FA Docker Docker Compose AGPL-3.0-or-later

Quick Start Guide

Get SlimBooks running in minutes

Docker Deployment (Recommended)

# Clone the repository
git clone https://github.com/rbenzing/SlimBooks.git
cd SlimBooks

# Generate secure secrets
./scripts/generate-secrets.sh

# Deploy with Docker
./scripts/deploy.sh

Access the application at http://localhost:8080

Raspberry Pi Setup

# Prepare your Raspberry Pi
curl -fsSL https://raw.githubusercontent.com/rbenzing/SlimBooks/main/scripts/setup-raspberry-pi.sh | bash

# Deploy the application
./scripts/deploy.sh

Development Setup

# Install dependencies
npm install

# Start development servers
npm run dev

Frontend: http://localhost:8080 • Backend: http://localhost:3002

Configuration

Secure defaults, fully customizable

Environment Variables

Critical secrets are required in production. Generate them automatically:

# Security (REQUIRED – change in production)
JWT_SECRET=your-secure-64-character-secret
JWT_REFRESH_SECRET=your-secure-refresh-secret
SESSION_SECRET=your-secure-session-secret

# Network
CORS_ORIGIN=http://localhost:8080
PORT=3002

# Features
ENABLE_2FA=true
ENABLE_DEBUG_ENDPOINTS=false

Run ./scripts/generate-secrets.sh to create cryptographically secure values.

Database

  • SQLite — Lightweight, serverless, perfect for self-hosting
  • Automatic Backups — Daily automated backups with rotation
  • Data Portability — Single-file database for easy migration
  • No External Dependencies — Everything runs locally on your hardware

Security Features

Defense in depth for sensitive financial data

Rate Limiting

Protection against brute-force attacks (100 req / 15 min)

JWT Authentication

Secure token-based auth with configurable expiration

Input Validation

Server-side validation prevents injection attacks

Security Headers

Comprehensive protection via Helmet.js

Account Lockout

Automatic lockout after repeated failed logins

2FA Support

Two-factor authentication for elevated security

Audit Logging

Request/response logging for security monitoring

Documentation

Guides for deployment, theming, and contribution

Management Commands

View application logs

docker-compose logs -f

Update deployment

./scripts/deploy.sh

Generate new secrets

./scripts/generate-secrets.sh

Set up recurring-invoice cron

./scripts/setup-cron.sh

Support Development

SlimBooks is free, open-source software released under the GNU Affero General Public License v3 (or later). If it saves you time or helps your business, consider buying the maintainer a coffee.

No hosted tier · No telemetry · No paid version · Your data stays on your hardware