BambooInvoice: A Simple, Opensource Online Invoicing Software

BambooInvoice is free open-source web based invoicing software that can be used for small businesses and individuals. It is meant to be installed on a web-server, but can easily be installed on your home system. BambooInvoice is developed by a Programmer Derek Allard and is built using PHP5.

BambooInvoice is easy to use and it is built on the excellent CodeIgniter project using modern coding standards. BambooInvoice sits on your server. Its your data. You never need to trust your invoicing data to anyone else, and you can get it out of the system
easily. BambooInvoice is released under the GPL


In this tutorial i will show you how to install BambooInvoice with LAMP server. If you haven’t installed LAMP sever, just use any one of the following link to setup LAMP server.

Install LAMP (Apache, MariaDB, PHP) Server On CentOS 6.4.


Install LAMP (Apache, MySQL, PHP) Server On CentOS 6.4.

Create Database and User for BambooInvoice

For instance, here i am going to create a database called “bamboodb” and database user called “bamboouser” with password “centos” for ProcessWire. You can define database and user as per your liking.

# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.31-MariaDB MariaDB Server

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database bamboodb;
Query OK, 1 row affected (0.02 sec)

MariaDB [(none)]> GRANT ALL ON bamboodb.* TO bamboouser@localhost IDENTIFIED BY 'centos';
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit

Firewall Settings

Allow the apache default port “80″ through iptables/router. Edit file /etc/sysconfig/iptables,

# vi /etc/sysconfig/iptables

Add the following lines.

-A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT

Now restart the iptables service.

# /etc/init.d/iptables restart

Restart the system to take effect the saved changes.

Getting BambooInvoice

Download the latest version from the BambooInvoice website.

# wget

Extract it with command:

# unzip

Copy the extracted folder to your web root.

# mv bambooinvoice/ /var/www/html/bambooinvoice

Set BambooInvoice Base URL

Open config.php file.

# cd /var/www/html/bambooinvoice/
# nano bamboo_system_files/application/config/config.php

Set  the base URL path.

Here is my base url path. You can use either domain name or ip address.

$config['base_url']     = '';

Set MySQL database details

Open database.php file.

# nano bamboo_system_files/application/config/database.php

Enter the mysql database name, database user and password.

$active_group = 'default';
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'bamboouser';
$db['default']['password'] = 'centos';
$db['default']['database'] = 'bamboodb';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = 'bamboo_';
$db['default']['active_r'] = TRUE;
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';

Set Timezone

Open php.ini file.

# nano /etc/php.ini

Find the following lines and set your time zone.

; Defines the default timezone used by the date functions
date.timezone = Asia/Calcutta

Save and close the file. Restart apache service to take effect the saved changes.

# service httpd restart

Set Permissions

Set write permissions to the following folders as shown below.

# chmod -R 777 invoices_temp/ img/

Begin Installation

Open your browser and type “http://ip-address/bambooinvoice” or “http://domain-name/bambooinvoice”. You will see the following screen. Click on the “You can install it now” link.

BambooInvoice Installer - Mozilla Firefox_001You you will be asked to enter your email id, primary contact and password. Your email is used both as your “username” for logging in, and also for any email tasks, such as sending invoices, resetting passwords, etc. The Primary Contact name is used in the “from” field when sending out invoices over email.

BambooInvoice Installer - Mozilla Firefox_002Now BambooInvoice has been installed successfully.

BambooInvoice Installer - Mozilla Firefox_003Before going further, i strongly suggest you to delete the install.php file.

# rm /var/www/html/bambooinvoice/bamboo_system_files/application/controllers/install.php

Click on the login link to go to the administrative portal. Use the mail id that you’ve entered during installation as username and the password you’ve created before.

BambooInvoice: Login - Mozilla Firefox_004This is how your BambooInvoice adminsitrative portal looks.

BambooInvoice: Root System - Mozilla Firefox_005Personalize BambooInvoice

Click on the Settings icon and update your company details in the Accounts settings section. Click Save settings.

BambooInvoice: Settings - Mozilla Firefox_006Click on the Invoice settings and enter your desired currency type, symbol, Days until invoice due etc. Click Save settings.

BambooInvoice: Settings - Mozilla Firefox_006Go to Advanced settings and upload your company logo.

BambooInvoice: Settings - Mozilla Firefox_007Now you’ve entered your company  information. Now it’s time to create some clients.

Create Clients

In the Root window, click on the Clients -> Create new client. Enter the client details and click Save client.

BambooInvoice: Create New Client - Mozilla Firefox_008Create New Invoice

Click on the New Invoice link found in the left pane. Select the client from the client drop-down link. Enter the details and click Create Invoice.

BambooInvoice: New Invoice - Mozilla Firefox_010The sample invoice will look like below.

BambooInvoice: Invoice Details - Mozilla Firefox_011That’s it. Now your online invoicing software is ready. Happy Invoicing!!