Overview
The Invoice Generator is a self-hosted, production-ready Django application designed for freelancers and small businesses who want full control over their invoicing data without relying on third-party SaaS platforms.
The application covers the complete invoicing workflow: managing clients, creating invoices with VAT calculations, generating branded PDF invoices, tracking payment status, and organising records by UK tax year (April–April).
It supports both one-off and recurring invoices and is designed to be run securely on a VPS or local server using Docker.
This project reflects a strong focus on ownership, data control, and long-term maintainability, using Django’s strengths.
Technical Details
Architecture & stack
Framework: Django (monolithic, app-based architecture)
Database: SQLite (SQLite-first, persisted via mounted volumes)
Frontend: Django templates with Tailwind CSS
PDF generation: Server-side PDF rendering with persistent storage
Deployment: Docker & Docker Compose (self-hosted, VPS-ready)
Authentication: Django admin + standard Django auth
Storage: Local filesystem with clear separation of data, media, and logs
Application structure
The project is split into focused Django apps, each with a clear responsibility:
Clients – Stores client details including contact information and VAT numbers
Invoices – Handles invoice creation, line items, VAT calculations, totals, statuses, and duplication
Recurring – Manages recurring invoice templates with automated date progression
Settings – Centralised company settings (branding, payment terms, bank details, payment links)
Dashboard – Tax-year-aware statistics and invoice summaries
PDF system – Generates branded, professional invoices stored by tax year
Core utilities – Tax year logic, status workflows, and shared helpers
Invoices move through a defined lifecycle (Draft → Sent → Paid → Overdue), with quick-action controls built directly into the UI.
Data handling & reliability
All persistent data is stored outside the container in a dedicated data/ directory
Invoices and PDFs are organised automatically by tax year
Backup and restore procedures are documented and tested
Designed to run without external dependencies once deployed
The system prioritises clarity and operational stability, making it suitable for long-term self-hosting.
Results
Delivered a fully self-hosted invoicing solution suitable for real-world use
Eliminated reliance on subscription invoicing platforms
Achieved clean separation of business logic, presentation, and storage
Produced professional, branded PDF invoices with payment links
Created a repeatable Docker-based deployment model
Published as an open-source project with clear documentation and licensing