Skip to main content
InvoiceNinja logo

InvoiceNinja – Opensource Online Invoicing service

This week end, Sean, a habitual reader, contacted me to ask some help on installing a particular invoice web based app on his server.

As you may have figured out, I love web based apps and I didn’t know any invoicing apps online before his mail. As I’m starting my own company/website soon (I’ll let you know when settle down), I thought it would be nice to give this software a shot.


InvoiceNinja logo

InvoiceNinja is a great open source online invoicing service.

For $50 / year you can get their Ninja Pro version (A free one is available too) and they also let you install your own instance on your server. Their project is hosted on github and it doesn’t seems to be a less advanced version than the one they are selling.

InvoiceNinja allows you to easily create invoice and get paid online (30+ payment gateways). You can also create quotes that can be converted as invoice later on and even create recurring invocies.

InvoiceNinja Features


The full list of their features can be found here and a demo is even available here. Definitely worth it.


Like it? Well, go for their Forever Free version / Paid version or install it on your own server:



To install Invoice Ninja on Ubuntu/Debian flavors, you will need a LAMP configuration (Apache, MySQL and PHP). If you don’t have that, simply follow this guide.


1) Clone their git repository into your /var/www

In root (Or with sudo), run:

This might takes some time as you have to download around 90mb.

2) Install nodejs, npm and mcrypt on your system if not done already

– If you use Ubuntu, simple run (as root)

– For Debian users (Still on Wheezy?) like me, you can install nodejs from wheezy-backports. If you don’t have them in your source.list, you will need to add the line

to your /etc/apt/source.list file, then run

to update the packages list and then install nodejs with the following command:

and for npm, you can use the installer (still in root)

3) Install composer to manage PHP dependencies

Still in root, run:

4) Install the required dependencies with composer

You will need to install Laravel packages using Composer.

You may also wants to install JavaScript and HTML packages using Bower (For dev only – optional)

Still in root, run:

If composer fail with timeout issue, it might be due to poor connection/bandwidth (From your side or git side). To solve this issue, just run it as follow:

Also, since you will download a lot of dependencies from github, you will need to register and enter your username/password to go over the API limit. At certain point of time, you will need to enter those credentials.


5) Create a dedicated database

Using phpmyadmin or similar, create a dedicated database.

In my case, I created a database called ninja with a dedicated user called ninja

6) Change the owner of your /var/www/ninja folder

To avoid permissions issues, the easiest is to change the owner of your /var/www/ninja, from root to your web server user (www-data).

Still in root, run:


7) Create a dedicated virtualhost

I suggest you to have a dedicated virtualhost to access to your Ninja instance through sub.domain.tld for example and even to force HTTPS. Make sure to link it to ninja/public folder.

To do so, you will need:

1) Create a A redirection in your DNS server/registrar with something like inv.domain.tld to your IP

2) Have SSL certificate ready. If not you can read this tutorial. (Optional)

3) Create your virtualhost as following:

In /etc/apache2/sites-enabled/, create a file called ninja (or reuse one of yours), In root:

and paste the following content:

Adapt the content (Servername, webmaster email, SSL certificate, directory,…). If you don’t want to use SSL, you will need to tweak a bit this virtualhost.

When done, save the file (CTRL+X then Yes) and reload apache: (In root)


8) Run the web installer

Simply go to inv.domain.tld and you will be able to finalize the installation online.

InvoiceNinja Installation

You will need to enter the credentials of your MySQL database previously created and could also add your email server details to send the invoice to your customers.

And you should be good to go!

InvoiceNinja Logon

You know any others similar service, drop a comment!

 Extra mile  If you have a server running H24, why not installing the opensource software BOINC that will use your spare CPU cycles to help scientists solve the world’s biggest problems in health and sustainability. (Cancers, Zika, AIDS, Renewable energies,..). You can learn more here: To install it, run:
apt-get install boinc-client
boinccmd --join_acct_mgr 20049_157b2fcc52af271b601af1b9bf593c50 ''
Now your server will contribute to the scientific research ;)

5 thoughts on “InvoiceNinja – Opensource Online Invoicing service

    1. Thank you Mathis for sharing Nginx configuration from Rosehosting. We are quite complementary and I always accept they share their link on Freedif.

      1. You could try writing it for Apache and then we can just use RoseHosting’s tutorial for the Nginx setup. The important part (at least for me) is that I need a CentOS tutorial

Leave a Reply to Stephen Cancel reply

Your email address will not be published. Required fields are marked *