InvoiceNinja Free Invoicing Software
Free And Open Source Invoicing Software For Small Businesses
Free invoicing software for businesses which helps them to create invoices, accept payments, track expenses, create proposals and manage tasks.
Overview
InvoiceNinja is an open source invoicing software. It’s easy to use and provides a large number of features for handling all billing tasks. It is 100% free and developers all over the world are actively involved in it. This free accounting system is ideal for freelancers and small businesses. It easily allows to generate invoices and track payments.
This powerful open source invoice system comes with modern and impressive features. It supports features for managing invoices, payments, quotations, expenses, reporting, and many more. Further, it allows the creation of multiple companies and handles them from a single system. Moreover, InvoiceNinja helps time tracking of tasks and use them for billing to clients.
Moreover, InvoiceNinja is available online (SaaS) software as a Service. Users can choose the appropriate plan and start using it right away. However, businesses can install it at own server that helps to keep control over sensitive billing data. InvoiceNinja provides the best mobile invoice app for iPhone and Android devices. It’s written in PHP Laravel framework, Flutter, and uses MySQL for storing data. The license for this open source invoicing system is (AAL) Attribution Assurance License.
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
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