Invoice Generator (Self-Hosted Django Application)

Project Details

Invoice Generator (Self-Hosted Django Application)

A self-hosted Django invoice system for UK self-employed users, featuring client management, VAT-aware invoices, recurring billing, PDF generation, and Docker-ready deployment.

Overview

Key takeaways
  • A self-hosted, production-ready Django invoicing app for freelancers and small businesses.
  • It covers clients, VAT calculations, branded PDF invoices, payment status and UK tax years (April to April).
  • It supports one-off and recurring invoices.
  • It runs on a VPS or local server using Docker.
  • It is published as an open-source project.

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.

Self check

Is a self-hosted invoice system right for you?

  1. I am a freelancer or run a small business in the UK.
  2. I want full control over my invoicing data.
  3. I would rather not rely on a subscription invoicing platform.
  • Probably not yetThe Invoice Generator is built for UK self-employed users who host it themselves. A hosted platform may suit you better.
  • Worth a lookRead the details below to see if it fits how you invoice.
  • A good fitThis was built for people who want to own their invoicing.

Technical Details

Architecture and stack
AreaWhat is used
FrameworkDjango (monolithic, app-based architecture)
DatabaseSQLite (SQLite-first, persisted via mounted volumes)
FrontendDjango templates with Tailwind CSS
PDF generationServer-side PDF rendering with persistent storage
DeploymentDocker & Docker Compose (self-hosted, VPS-ready)
AuthenticationDjango admin + standard Django auth
StorageLocal filesystem with clear separation of data, media, and logs

The project is split into focused Django apps, each with a clear responsibility:

Application structure
AppResponsibility
ClientsStores client details including contact information and VAT numbers
InvoicesHandles invoice creation, line items, VAT calculations, totals, statuses, and duplication
RecurringManages recurring invoice templates with automated date progression
SettingsCentralised company settings (branding, payment terms, bank details, payment links)
DashboardTax-year-aware statistics and invoice summaries
PDF systemGenerates branded, professional invoices stored by tax year
Core utilitiesTax year logic, status workflows, and shared helpers
Invoice lifecycle

Invoices move through a defined lifecycle (Draft → Sent → Paid → Overdue), with quick-action controls built directly into the UI.

Data handling

All persistent data is stored outside the container in a dedicated data/ directory. Invoices and PDFs are organised automatically by tax year.

Reliability

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

What the project achieved

  • 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
Reflect

Before you switch from a hosted platform

  1. How do you create and send invoices today?
  2. Which clients are invoiced again and again?These are the ones recurring invoices help with.
  3. What would having all your invoicing data in one place you control change for you?
Built with

This page was made using Interactive Content Blocks

The key takeaways, the self check and the planning questions on this page come from Interactive Content Blocks: seven ready-made blocks that let readers tick, write, score themselves and keep their progress. One purchase covers every site you own, and your AI assistant writes the blocks from the included skill file.

See Interactive Content Blocks →