Invoice Generator: Download and Setup Guide

Last updated: October 2026

Reading time8 min
Length1,500 words
Last updatedOctober 14, 2026
LevelBeginner
Key takeaways
  • Invoice Generator is free, open source invoicing for one person and one business, and it runs on your own computer.
  • It is for Windows 10 and 11 only. It is not available for Mac or Linux.
  • You need Python 3.12 or newer. Node.js is only needed if you change the design.
  • Setup is a one-off set of PowerShell commands. After that, you start it by double-clicking start.bat.
  • The first start creates a login with a random password. Change it straight away, then delete the file that held it.
  • Everything you enter is saved in the data folder. Back it up regularly.
  • Invoice Generator makes invoices. It does not file anything with HMRC.
  • You download and use it at your own risk. Read the disclaimer near the end of this page.

This guide takes you from nothing to your first PDF invoice. Allow about thirty minutes.

What Invoice Generator does and does not do

Invoice Generator is an invoicing app for UK sole traders and the self-employed. You keep a list of clients, create invoices with line items and VAT, and download a professional PDF. Invoices are sorted by UK tax year, recurring invoices can be created for you, and sent invoices are marked overdue when they pass their due date. Your data is stored in a file on your computer. There is no cloud account and no subscription.

1Person per install
0Cloud accounts needed
MITOpen source terms
Good to know

Invoice Generator does not connect to HMRC and does not send email for you. The Email Invoice button opens your own email program with a message ready, and you attach the PDF yourself. One copy holds one person and one business.

Before you start

  • A Windows 10 or 11 computer.
  • Python 3.12 or newer, and an internet connection for the first install.
  • Node.js only if you want to change the design. The built CSS is included.
  • A folder where you are happy to keep the app, such as Documents.
Tip

Tick "Add Python to PATH" on the first screen of the Python installer. If you skip this, the python command will not work. Download Python from python.org/downloads.

Download and install

Guide

Install Invoice Generator

  1. Install PythonSkip this if you already have Python 3.12 or newer.
    How do I check?

    Open PowerShell, type python --version and press Enter. You should see 3.12 or higher.

  2. Get the codeGo to github.com/djangify/invoice-generator, click the green Code button, then Download ZIP, and unzip it into a folder you will remember.
    I use Git

    Run git clone https://github.com/djangify/invoice-generator.git instead.

  3. Open PowerShell in the folderOpen the unzipped invoice-generator folder, type powershell in the File Explorer address bar and press Enter.
  4. Create the virtual environmentRun the three commands shown just below.
    What is a virtual environment?

    A private folder called venv that holds the packages Invoice Generator needs, so it does not affect anything else on your computer.

  5. Create the database and your loginRun the two commands shown further down.
PowerShell Copy
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

The install takes a few minutes. When it finishes, create the database and your first login:

PowerShell Copy
python manage.py migrate
python manage.py create_default_user
Optional

For normal use you do not need to change any settings. The app makes its own secret key the first time it runs. If you want to set your own login email, timezone or email settings, copy .env.example to .env and read the comments inside it.

Your first login and password

The create_default_user command prints a random password for your first login. The email is admin@example.com unless you set your own in .env. There is no default password for anyone to guess.

  1. Find your passwordIt is printed on screen and saved in data/first_login.txt.
  2. Start the appDouble-click start.bat in the invoice-generator folder, then open http://127.0.0.1:8000 in your browser.
  3. Log inUse the email and password from first_login.txt.
  4. Change the passwordUse the password change page and choose a password you will remember.
  5. Delete first_login.txtThe file holds the original password as plain text. Delete it once your own password works.
Watch out

Keep the window that start.bat opens while you work. Close it, or press Ctrl+C in it, to stop the app. To start again later, double-click start.bat. It also updates the database and creates your login if it does not exist yet.

Set up your business

Checklist

Your first session

  • Change your passwordThen delete first_login.txt from the data folder.
  • Add your company detailsOpen Settings and enter your company name, address, email, phone and VAT number if you have one.
  • Upload your logoA horizontal logo up to 600 by 300 pixels, or a square one up to 300 by 300.
  • Add your bank detailsBank name, account name, account number and sort code. They appear on your PDFs.
  • Add a payment linkOptional. Paste your Stripe payment link or PayPal.me link.
  • Write your payment terms and footerThe terms appear on every invoice. The footer is optional, for example "Thank you for your business!".
  • Add a clientGo to Clients, then Add Client.
  • Create your first invoiceGo to Invoices, then New Invoice, and download the PDF.
  • Copy your data folder somewhere elseAn external drive or encrypted cloud folder.

Everyday use

Creating an invoice

Go to Invoices, then New Invoice. Choose the client, set the invoice date and due date, add line items with a description, quantity, rate and VAT rate, add any notes and save. The PDF is made for you and kept in data/media/invoices, sorted by tax year.

Invoice statuses

The invoice workflow
Status What it means
Draft Created but not yet sent. Drafts are never marked overdue.
Sent You have sent it to the client.
Paid The client has paid.
Overdue A sent invoice past its due date. This is set for you when you open the dashboard or invoice list.

Use the quick action buttons on the invoice list or invoice page to change status.

Emailing an invoice

Click Email Invoice. Your email program opens with a message written to the client. Attach the PDF and send it yourself.

Tax years

The tax year runs 6 April to 5 April. Use the dropdown at the top right to switch years. Each invoice is placed in the right tax year from its invoice date, and the dashboard shows figures for the year you have chosen.

Duplicating invoices and client history

Duplicate an invoice to bill the same work again. Open a client to see all of their invoices with totals, and export that history as a PDF.

Exporting for your accountant

Download a tax year's invoices as a CSV file, or just the invoices with one status. It opens in Excel or any spreadsheet.

Recurring invoices

Use recurring invoices for clients you bill on a regular schedule.

  1. Create a templateGo to Recurring, then New Recurring Invoice. Choose the client and a frequency: weekly, monthly, quarterly or yearly.
  2. Set the datesEnter the start date, the next invoice date and an optional end date.
  3. Add the line itemsThese are copied onto each invoice.
  4. GenerateClick Generate Invoice Now on the recurring invoice page, or let Windows do it daily as shown below.

Automatic daily creation

To have invoices created for you, set Windows Task Scheduler to run run-recurring.bat every day. The app does not need to be open. The same run marks overdue invoices and adds what it did to data\recurring.log. Each invoice it creates is a Draft with a PDF, and the next invoice date moves on.

  1. Open Task Scheduler and choose Create Basic Task.
  2. Set the trigger to Daily at a time you prefer.
  3. Choose Start a program.
  4. Program: the full path to run-recurring.bat in your invoice-generator folder.
  5. Start in: the full path to your invoice-generator folder.

To see what would be created without making anything, run this in PowerShell from the folder with the virtual environment active:

PowerShell Copy
python manage.py process_recurring_invoices --dry-run

If you do not want automatic creation, skip Task Scheduler. Generate Invoice Now still works.

Backups and keeping your data safe

Everything lives in the data folder inside your invoice-generator folder.

What is in the data folder
What Where
Database data/db/db.sqlite3
Logos data/media/logos
PDF invoices data/media/invoices, by tax year
Secret key data/secret_key.txt (keep private)
First login details data/first_login.txt (delete after changing your password)
Watch out

Invoice Generator does not make backups for you. Stop the app first (Ctrl+C), then copy the whole data folder to an external drive or encrypted cloud storage every week. It holds client and bank details, so protect the copy as carefully as the original. To restore, stop the app and replace the data folder with your backup.

Also lock your computer when you leave it, set a Windows login password and turn on BitLocker disk encryption.

If you forget your password

Your invoices stay safe. A reset only changes the password.

  1. Stop the appClose the start.bat window.
  2. Open PowerShell in the folder and activate the environmentRun venv\Scripts\activate.
  3. Run the resetRun python manage.py create_default_user --reset.
  4. Log in and change itThe new password is shown on screen and saved in data/first_login.txt. Choose your own, then delete the file again.

The forgot password email only works if you have added email settings to .env.

Troubleshooting

start.bat says the virtual environment was not found

Follow the install steps above first, so the venv folder exists inside the invoice-generator folder.

Windows says python was not found

Reinstall Python and tick "Add Python to PATH" on the first screen, then open a new PowerShell window.

The page will not open

Another program may be using port 8000, or another copy of Invoice Generator may still be running. Close it and start again.

The page looks unstyled

Press Ctrl and F5 together to refresh the page fully. If it still looks wrong, run python manage.py collectstatic --noinput with the virtual environment active.

I get database errors after an update

Run python manage.py migrate with the virtual environment active. start.bat also does this each time it starts.

How do I update to a newer version?

Unzip the new ZIP into a new folder, copy your old data folder into it, install as above, then start it. Keep the old folder until you have checked everything looks right.

Is there a Mac or Linux version?

No. It is built and tested for Windows only.

Can I use more than one business?

Not yet. One copy holds one business. Multi-business support, other currencies and other tax years are listed as ideas in the CONTRIBUTING.md file on GitHub.

Disclaimer

Use at your own risk

Invoice Generator is provided "as is", without warranty of any kind. You download and use it at your own risk. It is not accounting, tax or legal advice. Check your figures and VAT calculations yourself, keep your own backups, and speak to a qualified accountant about your tax affairs. The developer accepts no responsibility for data loss, errors in the figures or anything else that results from using it.

Summary
  • Invoice Generator is for Windows only and needs Python 3.12 or newer.
  • Install once with the PowerShell commands, then start it by double-clicking start.bat.
  • Your first login has a random password. Change it and delete first_login.txt.
  • Add your company details, a client and an invoice, then download the PDF.
  • Use Task Scheduler with run-recurring.bat for automatic recurring invoices.
  • Copy your data folder to another drive every week.
  • You download and use it at your own risk.
Built with

This page was built with Interactive Content Blocks

The stats bar, guide tracker and checklist on this page come from Interactive Content Blocks, a set of seven ready-made blocks for your own pages. Ticks and progress are saved in the reader's own browser. The set includes an AI skill file, so any AI assistant can add the blocks for you.

See Interactive Content Blocks →