A secure, self-hosted billing and invoice management application
π Security-First β’ π³ Docker Ready β’ π₯§ Raspberry Pi Optimized
Features β’ Quick Start β’ Documentation β’ License
- π Dashboard: Real-time financial overview with interactive charts
- π₯ Client Management: Complete client profiles with contact details and history
- π§Ύ Professional Invoices: Customizable templates with line items, taxes, and shipping
- π Recurring Invoices: Automated recurring billing with customizable schedules (weekly, monthly, quarterly, yearly)
- π° Expense Tracking: Categorized expense management with receipt uploads
- π Financial Reports: Revenue and expense analytics with detailed monthly/quarterly columns for yearly reports
- π‘οΈ Enterprise Security: Rate limiting, input validation, and security headers
- π JWT Authentication: Secure token-based authentication with 2FA support
- π Self-Hosted: Complete data ownership - no third-party data sharing
- π Encrypted Storage: Secure SQLite database with encrypted sensitive data
- π³ Docker Ready: One-command deployment with Docker Compose
- π₯§ Raspberry Pi: Optimized for ARM devices and low-power systems
- β‘ Fast Setup: Automated scripts for quick deployment
- π¦ Portable: SQLite database - easy backup and migration
| Component | Technology |
|---|---|
| Frontend | React 18 + TypeScript + Vite |
| UI | shadcn/ui + Tailwind CSS + Lucide Icons |
| Backend | Node.js + Express + SQLite |
| Security | Helmet + Rate Limiting + JWT + bcrypt |
| Deployment | Docker + Docker Compose |
| Charts | Recharts for analytics visualization |
# 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.shAccess your app at http://localhost:8080
# 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# Install dependencies
npm install
# Start development servers
npm run devFrontend: http://localhost:8080 β’ Backend: http://localhost:3002
The application uses environment variables for secure configuration:
# 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_DEBUG_ENDPOINTS=falseUse ./scripts/generate-secrets.sh to create secure secrets automatically.
- SQLite: Lightweight, serverless database 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
Slimbooks includes a powerful recurring invoice system for automated billing:
- π Flexible Scheduling: Weekly, monthly, quarterly, yearly, or custom frequencies
- π€ Automated Processing: Cron job integration for hands-off billing
- π₯ Client-Specific Templates: Create recurring templates for each client
- π° Dynamic Pricing: Support for line items, taxes, and shipping
- π Processing Statistics: Monitor template performance and processing status
- β‘ Manual Triggers: Process individual templates or all due templates on-demand
/api/recurring-templates/* - Template CRUD operations
/api/cron/recurring-invoices - Automated processing endpoint
- Create recurring templates with client association
- Set payment terms and due date calculations
- Activate/deactivate templates as needed
- Track next invoice dates automatically
- Monitor processing history and errors
- π‘οΈ Rate Limiting: Protection against brute force attacks (100 req/15min)
- π JWT Authentication: Secure token-based auth with configurable expiration
- π« Input Validation: Server-side validation prevents injection attacks
- π Security Headers: Comprehensive protection with Helmet.js
- π€ Account Lockout: Automatic lockout after failed login attempts
- π 2FA Support: Two-factor authentication for enhanced security
- π Audit Logging: Request/response logging for security monitoring
- Deployment Guide: Complete deployment instructions
- Theme System: Customization and theming guide
- Contributing: Development and contribution guidelines
# Update deployment
./scripts/deploy.sh
# Generate new secrets
./scripts/generate-secrets.sh
# Generate new certs for ssl
./scripts/generate-ssl-certs.shMIT License - see LICENSE for details.
Found a bug? Have a feature request? Please open an issue.
π Self-hosted β’ π Secure β’ π Production-ready
Perfect for small businesses, freelancers, and anyone who values data privacy and control.