Money · Edition No. 43 · 7 Oct 2026

InvoiceNinja/invoiceninja

Quotes, invoices, payments, projects and time tracking in one self-hosted application, under a licence that forbids running it as a service for other people.

← MoneyRead the whole edition →

10,239 stars · ELASTIC LICENSE 2.0 (SPDX Elastic-2.0) — NOT an OSI open-source licence. Read from /blob/v5-stable/LICENSE; LICENSE.md and LICENSE.txt both 404, so there is exactly one licence file. The text is plain unmodified ELv2 and carries NO COPYRIGHT LINE AT ALL, naming only 'the licensor'. composer.json agrees with 'license': 'Elastic License' · v5.13.44 (2026-10-07), read from /releases/latest as a yearless '07 Oct 00:37' and settled by the ungh releases/latest record (2026-10-07T00:37:11Z) — the morning of the edition. VERSION.txt on v5-stable reads 5.13.43, one patch behind the tag · Track this in Scout

Quotes, invoices, payments, projects and time tracking in one self-hosted application, under a licence that forbids running it as a service for other people.

▶Repo detailsthe review · specs · pros & cons · install

What it is

Invoice Ninja is a Laravel application — Laravel is a widely used PHP framework — covering the whole billing cycle from quote to paid invoice, with a customer-facing portal, recurring invoices and more than forty payment providers. It has been developed since 2013.

What it is good for. Someone invoicing a handful of clients every month who has reached the limits of a spreadsheet. The customer portal is the part that is hard to build and easy to underrate: a client can see the invoice, read the line items and pay, without an email thread. Code landed on 7 October 2026, the morning of this edition, and so did the newest release.

Stars10,239
LicenceELASTIC LICENSE 2.0 (SPDX Elastic-2.0) — NOT an OSI open-source licence. Read from /blob/v5-stable/LICENSE; LICENSE.md and LICENSE.txt both 404, so there is exactly one licence file. The text is plain unmodified ELv2 and carries NO COPYRIGHT LINE AT ALL, naming only 'the licensor'. composer.json agrees with 'license': 'Elastic License'
Latestv5.13.44 (2026-10-07), read from /releases/latest as a yearless '07 Oct 00:37' and settled by the ungh releases/latest record (2026-10-07T00:37:11Z) — the morning of the edition. VERSION.txt on v5-stable reads 5.13.43, one patch behind the tag
Good
  • Complete. Quotes, invoices, credits, recurring billing, projects, timers, expenses and a client portal, in one application.
  • Very active. The release v5.13.44 is dated 7 October 2026, the day of this edition.
  • Mature payment handling, with more than forty providers already written and tested.
Watch for
  • It is not open source, and the licence is the main fact about it. The LICENSE file is the Elastic License 2.0. Its own words: you "may not provide the software to third parties as a hosted or managed service", you "may not move, change, disable, or circumvent the license key functionality in the software", and you may not "alter, remove, or obscure any licensing, copyright, or other notices". Using it to bill your own customers is fine. Running it for other businesses as a service is not, and neither is working around the licence key that gates the paid features. The licence names no copyright holder at all, because the Elastic License has no such field, and the project's own repository description calls it "source-available".
  • The seeded install ships the password password. The README's demo accounts are small@example.com / password for the administrator and user@example.com / password for the client portal. An install left as seeded is open with a guessable password.
  • It publishes no memory, disk or processor figure anywhere. The real install asks for PHP 8.2 with sixteen extensions, MySQL 5.7 or MariaDB 10.3 or newer, a web server with HTTPS, a scheduled job every minute and a background worker — and its own documents pin php8.2 packages while the code declares support up to PHP 8.5, so the two disagree. The official advice is to install from the release archive; the Git route is marked as not recommended for real use.
Similar repositories
Install
sudo apt install php8.2-bcmath php8.2-gmp php8.2-gd php8.2-mbstring \
    php8.2-xml php8.2-curl php8.2-zip php8.2-mysql php8.2-fpm \
    php8.2-imagick php8.2-soap php8.2-common php8.2-intl
Screenshots
InvoiceNinja/invoiceninja: GitHub preview card

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.