SolidInvoice is the best self-hosted invoicing app for most freelancers who want their billing data on their own server. It scores 4.7/5. The code is under the MIT license, and the README states that the self-hosted edition “has no limits”. Its quick install is one download that bundles the PHP runtime and a web server and runs on SQLite, so there is no database server to maintain. On card payments, the README says “no card data ever touches your server”.
Pick Invoice Ninja (4.2/5) if getting paid online matters most. It names six payment gateways and gives clients a portal with their full payment history, but it is source-available under the Elastic License rather than open source, and it needs MySQL or MariaDB. InvoiceShelf (3.6/5) is open source and runs on SQLite, but its documentation says it does not support online payments. Akaunting (2.6/5) is accounting software first, and its free self-hosted plan is limited to one company, one user plus one accountant, and 1,000 invoices.
Our picks
- Best overall SolidInvoice 4.7 /5
- Best for online payments Invoice Ninja 4.2 /5
- Best open-source option without card payments InvoiceShelf 3.6 /5
- Best if you also want accounting Akaunting 2.6 /5
Scores
1–5 per criterion · total is the weighted average · select a score to see its source| # | Product | Billing features ×3 | Online payments and client portal ×3 | Self-hosted setup ×2 | License and free self-hosted limits ×2 | Total |
|---|---|---|---|---|---|---|
| 1 | SolidInvoice | 5 | 4 | 5 | 5 | 4.7 |
| 2 | Invoice Ninja | 5 | 5 | 3 | 3 | 4.2 |
| 3 | InvoiceShelf | 4 | 2 | 4 | 5 | 3.6 |
| 4 | Akaunting | 3 | 3 | 2 | 2 | 2.6 |
How each criterion is scored
Billing features ×3
How many of five billing features the self-hosted edition documents: recurring invoices, invoices in more than one currency, taxes per line item or several taxes on one invoice, quotes or estimates, and automatic payment reminders.
- 5 All five features.
- 4 Four of the five features.
- 3 Three of the five features.
- 2 Two of the five features.
- 1 One or none of the five features.
Online payments and client portal ×3
Whether clients can pay an invoice online through a payment gateway (such as Stripe or PayPal) that the core app supports, and whether they get a portal where they can see their invoices.
- 5 Online payments built in through four or more named gateways, plus a client portal where clients pay and see their invoice and payment history.
- 4 Online payments built in through two or three named gateways, plus a client portal or payment links sent with invoices.
- 3 Online payments only through add-on apps or extensions, or online payments with no client portal and no payment links.
- 2 A client portal for viewing invoices, but no online payments.
- 1 No online payments and no client portal.
Self-hosted setup ×2
What a self-hosted install needs, judged by the official install methods: whether a separate database server is required and whether the web server and PHP are bundled.
- 5 A single self-contained download that bundles the web server and PHP and runs on SQLite, plus an official Docker image.
- 4 An official Docker setup that can run on an embedded SQLite database, so no separate database server is needed.
- 3 An official Docker image or one-click installers exist, but a separate database server such as MySQL is still required.
- 2 Manual install only: you set up the web server, PHP and the database yourself.
- 1 No documented self-hosted install.
License and free self-hosted limits ×2
The license of the self-hosted code, whether the free self-hosted edition limits users, companies or invoices, and whether an API and a full data export are documented.
- 5 Open-source license approved by the Open Source Initiative, no limits, and both an API and a full data export or backup are documented.
- 4 Open-source license approved by the Open Source Initiative (such as MIT or AGPL) with no limits, but no documented API or no full data export.
- 3 Source-available license (such as the Elastic License or the Business Source License), with no documented limits on the free self-hosted edition.
- 2 Source-available license (not approved by the Open Source Initiative), and the free self-hosted edition limits users, companies or invoices.
- 1 No free self-hosted edition, or the self-hosted code is closed source.
SolidInvoice scores highest because it does well on all four criteria. Its quick install “bundles SolidInvoice, PHP, and a webserver into a single self-contained download”, SQLite works out of the box, and recurring invoices and email sending run without a separate scheduled task. An official Docker image is also available. The README lists Prometheus metrics as opt-in, so that monitoring endpoint is off unless you turn it on.
Payments are built in, with a caveat on choice: Stripe and PayPal are the only gateways named, and others come through the Payum library. Payment links go out with invoices, and the README states that no card data touches your server. You can take everything with you: the project documents a full company data export and a REST application programming interface (API).
- MIT license, and the README states the self-hosted edition has no limits
- One download bundles PHP and a web server and runs on SQLite
- Recurring invoices, multiple currencies, several taxes per invoice and scheduled payment reminders
- A full company data export and a REST API
- Names only Stripe and PayPal; other gateways go through the Payum payment library
- No native Windows build; Windows users run the Linux binary in WSL2 (Windows Subsystem for Linux)
- The README does not describe a client portal
Skip it if: Anyone who wants clients to log in to a portal and see their invoice history.
Invoice Ninja has the strongest payment side here. It connects to Stripe, PayPal, Square, GoCardless, Authorize.net and Mollie, and clients get a portal where every invoice, quote, payment and document is kept. Most of these features are described on the hosted plans’ features page; the README says all Pro and Enterprise features “are included in the source-available code”, so a self-hosted install gets them too.
The license is the main caveat: Invoice Ninja is released under the Elastic License, which publishes the code for self-hosting but is not an open-source license. Self-hosting works through official Docker images or one-click installers such as Softaculous, always with MySQL or MariaDB. The README also warns that the APP_KEY setting encrypts your data and that the app won’t run if you lose it, so keep it with your backups.
- Six named payment gateways, including Stripe, PayPal, Square and GoCardless
- A client portal with every invoice, quote, payment and document
- Automatic reminder emails and quotes that convert to invoices
- Self-hosted installs work with its desktop and mobile apps
- Source-available under the Elastic License, not an open-source license
- Requires a MySQL or MariaDB database server
- Removing Invoice Ninja branding from client-facing pages costs $40 per year
Skip it if: Anyone who needs an open-source license or doesn't want to run a MySQL or MariaDB server.
InvoiceShelf’s README promises “Open-source invoicing for people who want to own their business data”, and the documentation supports that: the code is under the AGPL, there is an API reference, and you can back up your files and database from the web interface. The official Docker setup has a SQLite variant with no separate database service.
The gap is getting paid. The customer portal shows invoices, estimates and payment history, but the documentation states plainly: “Currently, InvoiceShelf does not support online payments.” Note also that the repository’s default 3.x branch is an alpha preview; the README points production installs to the 2.x release.
- GNU Affero General Public License (AGPL), with full backups of files and database from the web interface
- Docker setup with a SQLite option and no separate database service
- Multiple and compound taxes, per item or per invoice, plus recurring invoices
- Several companies and team members with scoped roles
- No online payments; the customer portal shows invoices, estimates and payment history only
- The default 3.x branch is an alpha preview, so production installs use 2.x
Skip it if: Anyone who wants clients to pay by card from the invoice.
Akaunting’s README opens with “Online accounting software designed for small businesses and freelancers”, and its invoicing sits inside a wider accounting app with bank accounts, bills and expenses. Recurring invoices, any currency and per-product taxes are in the core, but quotes and payment gateways come from the Akaunting App Store.
Check the license claim against the documentation. The website says “Akaunting is Open Source”, while the README says it is released under the Business Source License, which is source-available, not open source. The free self-hosted Standard plan is limited to one company, one user plus one accountant, and 1,000 invoices, and the install is manual: Composer, an npm build that needs Node.js 18 or 20, a web server and a database.
- Accounting beyond invoicing, such as unlimited bank and cash accounts
- Recurring invoices, bills and payments, and invoices in any currency
- A client portal where clients can pay online
- Runs on SQLite, MySQL, MariaDB or PostgreSQL
- The free self-hosted plan allows 1 company, 1 user plus 1 accountant, and 1,000 invoices
- Business Source License, although its website calls Akaunting open source
- Quotes and payment gateways come as add-on apps
Skip it if: Freelancers who expect to pass 1,000 invoices or add a second user on the free plan.
Questions
Which of these are open source?
SolidInvoice (MIT license) and InvoiceShelf (AGPL). Invoice Ninja uses the Elastic License and Akaunting the Business Source License; both publish their code, but neither license is approved by the Open Source Initiative.
Can clients pay my invoices online?
With Invoice Ninja, which names six gateways, and SolidInvoice, which names Stripe and PayPal. Akaunting clients can pay in its client portal through gateway apps from its App Store. InvoiceShelf’s documentation says it does not support online payments.
Does card data pass through my server?
SolidInvoice’s README says “no card data ever touches your server”. The pages we captured for the other three don’t say either way, so check with the payment gateway you plan to use.
Method
Each app was scored 1–5 against a published scale on four weighted criteria: billing features (×3), online payments and client portal (×3), self-hosted setup (×2), and license and free self-hosted limits (×2). The ranking is the weighted average. Every score cites quotes from the project’s own documentation, website, README or GitHub release data, captured on 5 November 2026.
We did not install or benchmark these apps. For Invoice Ninja, several features come from the hosted plans’ features page, and we relied on its README’s statement that the self-hosted code includes them. How our rankings work.