A Simple Guide On How To Install InvoicePlane Version 1.5.11 On Linux Ubuntu Server 20.04 LTS And On Docker.

InvoicePlane is a free to use invoicing and customer management web application that makes it possible for almost any individual or business to issue out invoices on demand. If you run a small services or retailing business and are looking for a free and simple to use invoicing solution, then InvoicePlane is what you need.  With InvoicePlane you can manage quotes,invoices and payments, manage clients with CRM-like tools, customize InvoicePlane by setting different themes, amount formats and document layouts, and also accept payments through services such as Paypal, Stripe and even bitcoin. Follow the steps outlined below to start setting up InvoicePlane on Linux Ubuntu Server 20.04 LTS as well as setting it up as a docker container.

Requirements.

In order to complete this tutorial successfully the following items are needed. Please ensure to have these items available before taking implimentation action on this tutorial:
1) A laptop / desktop / workstation / server or virtual machine running Linux Ubuntu 20.04 LTS
2) A linux web server with MySQL 5.5 or newer, PHP 7.0 or newer, And the PHP Extensions :php-gd, php-hash, php-json, php-mbstring, php-mcrypt, php-mysqli, php-openssl, php-recode, php-xmlrpc, php-zlib.
3) The docker image for InvoicePlane
4) An internet connection to download ubuntu updates and InvoicePlane installation packages.

Overview.

Part 1

1) Setup the Linux web server LAMP stack on the Linux Ubuntu 20.04 LTS server
2) Create a MySQL database for InvoicePlane.
3) Download Invoice Plane and run the post installation setup.

Part 2

3) Download and install docker on your computer.
4) Pull the docker image for Invoice Plane from the docker hub and deploy a InvoicePlane container.

Step 1: Setup the Linux Web Server LAMP Stack On The Linux Ubuntu 20.04 LTS Server.

1) The linux LAMP stack is a collection of open source software packages  that when installed together in a stack, they enable a server to host a server dynamic web pages. The LAMP stacks consists of an Apache web server, the MySQL database engine and the PHP web page processor.

If using a Mac open the terminal app and open an SSH connection to the ubuntu server and run the following command to check for and install ubuntu updates:

ssh username@serveripaddress

apt-get update && apt-get upgrade.

If using a Windows PC you can use a terminal emulation software such as putty to SSH into the server. If the ubuntu server rejects SSH connections run the following command from the server console to allow connections on port 22:

sudo ufw allow 22.

2) The next step is to install the Apache Web server package.The benefits of using Apache is that it is a free and open source platform and has very extensive and community driven support resources that are available on many websites across the web. Run the following command to install it.

apt install apache2

Add firewall rules to permitt apache web server traffic by running the commands:

sudo ufw allow in “Apache”

In the event that the ubuntu server restarts, set the apache service to startup automatically by running the following command:

sudo systemctl enable apache2.service

 

3) Next, test the Apache web server so as to be sure that it has been installed correctly by opening a new web browser tab and typing in the ip address of the ubuntu server in the browser address bar i.e http://yourserver-ip-address

You should see a web page that looks like the one shown on the image.

To check for the ip address of the ubuntu 20.04 server run the following command:

ip a

 

4) Then next step is to install a database engine that can be used to create and store the database for InvoicePlane. MariaDB is a popular database engine used on many open source applications. To install MariaDB start by adding the MariaDB gpg key using the following command :

sudo apt-key adv –fetch-keys ‘https://mariadb.org/mariadb_release_signing_key.asc’

Next, add Maria to the apt repository

sudo add-apt-repository ‘deb [arch=amd64] http://mariadb.mirror.globo.tech/repo/10.5/ubuntu focal main’

Finally install MariaDB by running the following commands:

sudo apt update
sudo apt install mariadb-server mariadb-client

5) Once the MYSQL installation is complete it is important to run the MYSQL post installation script so as to remove some insecure settings that are configured by default. Run the command:

sudo mysql_secure_installation

The script might ask whether to enable the VALIDATE PASSWORD COMPONENT feature which can be used to check for the strength of password used in MYSQL. Type Y and press ENTER.

The script might prompt you to select a password complexity level. Choose a password complexity level then type in a password for MYSQL root user. For the rest of the questions, press Y and hit the ENTER key at each prompt. This will remove some anonymous users and the test database, disable remote root logins, and load these new rules so that MySQL immediately respects the changes you have made.

When you’re finished, test if you’re able to log in to the MySQL console by typing:

sudo mysql

6) The final step in the LAMP stack installation is to download and install PHP. PHP is a web page processing engine that is responsible of displaying dynamic content to the final user. Start by adding a third party software repository from which PHP will be downloaded from:

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

sudo apt update

Install PHP by running the command:

sudo apt-get install php7.1 libapache2-mod-php7.1 php7.1-common php7.1-mbstring php7.1-xmlrpc php7.1-soap php7.1-gd php7.1-xml php7.1-intl php7.1-mysql wget unzip php7.1-cli php7.1-zip php7.1-curl php7.1-mcrypt

Step 2: Create A MySQL Database For InvoicePlane.

7) At this stage you now have a working installation of the LAMP stack on your ubuntu server. The next step is to setup a MySQL database that will be used by the InvoicePlane for saving all application data.

Start by logging into the MySQL shell with the command :

mysql -u root -p

Enter your root password then create a database and user for InvoicePlane and set the database privileges for the user :

CREATE DATABASE invoice_plane_db;

CREATE USER ‘invoiceplane’@’localhost’ IDENTIFIED BY ‘yourdatabasepassword’;

GRANT ALL PRIVILEGES ON invoice_plane_db.* TO ‘invoiceplane’@’localhost’;

FLUSH PRIVILEGES;

EXIT;

Step 3: Download And Install InvoicePlane.

8) Click HERE to go to the InvoicePlane download page.Right click on the DOWNLOAD button and select the COPY LINK LOCATION option. Open the terminal console and type in the following command :

wget https://www.invoiceplane.com/download/v1.5.11

9) Create a folder named invoiceplane and unzip the contents of the downloaded invoiceplane zip file to that folder:

mkdir invoiceplane

unzip v1.5.9.zip -d invoiceplane

Next, copy all required files to the Apache web server root directory with the following commands :

sudo mv /invoiceplane /var/www/html/invoiceplane
cd /var/www/html/invoiceplane
sudo cp ipconfig.php.example ipconfig.php
sudo cp htaccess .htaccess

Then set the proper file and folder permissions for the contents of the invoiceplane folder:

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

10) Next, create a host file by running the command :

sudo nano /etc/apache2/sites-available/invoiceplane.conf

then add the configuration in the file :

<VirtualHost *:80>
     ServerAdmin admin@example.com
     DocumentRoot /var/www/html/invoiceplane
     ServerName example.com
     ServerAlias www.example.com
<Directory /var/www/html/invoiceplane/> Options +FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

 

11) Save the file, by press the CNTRL + O keyboard shortcut then press CNTRL + X

Next, enable apache virtual host file and rewrite module with the following commands:

sudo a2ensite invoiceplane.conf
sudo a2enmod rewrite

To complete the configuration restart the apache web server service to apply changes:

systemctl restart apache2

Step 4: Run The InvoicePlane Post Installation Setup.

12) Open a new web browser tab type in the following URL in the address bar:

http://server_ip_address/invoiceplane/index.php/welcome

Click on the green SETUP button to start the InvoicePlane post installation setup process.

 

13) Choose a language on the CHOOSE A LANGUAGE section and click on CONTINUE.

On the DATABASE DETAILS page, type in the USERNAME, PASSWORD and the name of the database that you created on step 7 and click on TRY AGAIN.

14) If you managed to configure the correct database details the following web page will be displayed and notify you that the database has been successfully configured. Clink on the CONTINUE button to proceed.

15) On the CREATE USER ACCOUNT page type in details such as youyr email address, name, password, language, address and contact details on the appropriate sections. Please note that these details will be used on the quotes and invoices generated by InvoicePlane.

Click on CONTINUE , click on LOGIN, enter your email address and password and click on LOGIN.

16) Once you are logged in you can now start, creating quotes, invoices and managing clients all in InvoicePlane like a Pro. The next section shows you how to setup a InvoicePlane docker container.

Step 5: Download And Install Docker On Your Computer.

13) Click HERE to go to the dowcker download page. The web page will automatically detect the type of operating system that you are using and display the appropriate download option.

Once its downloaded, open the docker installation package and following the installation prompts.

14)Open the docker app and run the following commands in a terminal app to download the InvoicePlane docker image and to deploy an InvoicePlane container :

docker pull sameersbn/invoiceplane.