Open Source Invoicing, Expenses and Time-Tracking App

Free invoicing app for businesses which helps them to create invoices, accept payments, track expenses, create proposals and manage tasks.

 

InvoiceNinja is a free and open source invoicing app. InvoiceNinja platform to create & email invoices, track payments, vendors and expenses, and time billable tasks & projects. You can use it software as a Service (SaaS) and install it at your own server which helps you keep your data private.

InvoiceNinja provides mobile applications for both iPhone and Android. Its written in Laravel framework that developed in PHP and use MySQL for storing data.

System Requirements

In order to install InvoiceNinja, you must have the following softwares:

  • PHP 7.0+
  • MySQL 5.0 +
  • Apache / Nginx

Features

Invoice ninja boasts many great features, depending on the plan that you chooce: Free, Pro, or Enterprise. Following are the key features of InvoiceNinja:

  • Create & Email Invoices & Quotes in Real-Time
  • 40+ Payment Gateway Integration Options
  • YourBrand.Invoice.Services Custom Domain
  • Additional Users & Set Permissions
  • Multiple Company Support
  • Create Recurring Invoicing & Auto-Bill Clients
  • Proposals Creation Tool
  • Attach 3rd Party Files to Invoices & Expenses
  • Create Project Tasks & Track Time
  • Kanban Boards to Manage Projects
  • Attach Invoice & Quotations PDFs to Emails
  • Client-Side Portal & Invoices History
  • Zapier Integration Automation
  • Quotes Convert to Invoices for Payments
  • Fully Customizable Invoice Design
  • Customize Email Subjects & Body Text
  • Accept Deposits & Partial Payments
  • Invoice Payment Auto-Reminder Emails
  • Alerts When Client Views & Pays Invoices
  • Enable Invoice Approval Checkbox or Client Signature
  • Item & Product Library System
  • Bulk Emailing Invoices & Quotations
  • Create Reports, Accounts Aging & Client Statements
  • Importing Expenses & Vendors
  • Import Transactions From Your Bank Accounts
  • Multiple Currencies and Languages Supported
  • Setup Automatic Credit Card Gateway Fees
  • Setup Automatic Late Fees on Unpaid Invoices
  • Supports Natural Language Voice Commands
  • Tax Settings per Line Item or Invoice Total
  • Professional Free Invoice Template Designs

Installation Instructions

Install InvoiceNinja on Ubuntu 16.04 LTS with Nginx using Github

Nginx is the most popular and secure web server. In order to install Nginx, use the following command

 sudo apt install nginx 

Once the Nginx is install, configure the domain and restart the Nginx by using the following command

 sudo service nginx restart 

Next, need to install database Server, use the following command to install MySql server

 sudo apt-get update;  sudo apt-get install mysql-server; mysql_secure_installation 

Once, the database server is installed, use the following command to restart MySql server

 sudo service mysql restart 

Install PHP for processing

 sudo apt-get install php-fpm php-mysql

Now, you have installed all the required software and the next step is to login to mysql server and create invoiceninja database. Use following command to create database.

 CREATE DATABASE  invoiceninja;

Create a database user called "" with new password. and granted user full access to the database by running the following commands. Change with your desired database user and with your desired password.

CREATE USER 'invoiceninjauser'@'localhost' IDENTIFIED BY 'new_password_here'; 
GRANT ALL ON invoiceninja.* TO 'invoiceninjauser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;
FLUSH PRIVILEGES; 
EXIT;

Download InvoiceNinja Latest Release

 
sudo apt install curl git
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

After installing curl and Composer above, change into the Nginx root directory and downaload Invoice Ninja packages from Github.


cd /var/www/html
sudo git clone https://github.com/invoiceninja/invoiceninja.git
cd /var/www/html/invoiceninja
sudo composer install

Then run the commands below to set the correct permissions for InvoiceNinja to function.


sudo chown -R www-data:www-data /var/www/html/invoiceninja/
sudo chmod -R 755 /var/www/html/invoiceninja/

Congrats! You have successfully installed InvoiceNinja on NGINX

Installation using Docker

Generate an application key


docker run --rm -it invoiceninja/invoiceninja php artisan key:generate --show

Create folders for data persistence

  • Create two folder on your server, e. g. /var/invoiceninja/public and /var/invoiceninja/storage
  • Mount these folders into your container

Usage: To run it


docker run -d \
  -v /var/invoiceninja/public:/var/app/public \
  -v /var/invoiceninja/storage:/var/app/storage \
  -e APP_ENV='production' \
  -e APP_DEBUG=0 \
  -e APP_URL='http://ninja.dev' \
  -e APP_KEY='' \
  -e APP_CIPHER='AES-256-CBC' \
  -e DB_TYPE='mysql' \
  -e DB_STRICT='false' \
  -e DB_HOST='localhost' \
  -e DB_DATABASE='ninja' \
  -e DB_USERNAME='ninja' \
  -e DB_PASSWORD='ninja' \
  -p '9000:9000' \
  invoiceninja/invoiceninja