How to Install InvoicePlane on Ubuntu 24.04

How to Install InvoicePlane on Ubuntu 24.04

Bitnesia Software Mar 25, 2026 121 ID

Managing invoices and payments professionally does not have to rely on paid software. Many small to medium-sized businesses now choose open-source solutions that are flexible, customizable, and can be self-hosted. One of the popular applications in this category is InvoicePlane, a lightweight yet feature-rich open-source invoicing system. This guide will walk you through a complete and structured installation on an Ubuntu server.

Introduction to InvoicePlane

InvoicePlane is an open-source application for managing invoices, quotes, payments, clients, and business reports. The project is actively maintained and freely available for deployment on your own server.

Some key features offered by InvoicePlane include:

  • Invoice & Quote Management: Easily create, send, and manage invoices and quotations.
  • Client Management: Store customer data along with payment history.
  • Payment Tracking: Supports manual payment recording or integration with various payment methods.
  • Templates & Customization: Uses PDF templates to generate professional invoices.
  • Multi Currency: Supports multiple currencies.
  • Tax Management: Manage taxes for goods and services.
  • Comprehensive Dashboard: View business overview, outstanding invoices, and statistics.
  • API (optional): Integrate InvoicePlane with other applications.
  • Quote → Invoice Conversion: Convert quotes into invoices in a single click.

System Requirements

Minimum Software

  • Web Server: Apache (recommended)
  • PHP:
    • Version: PHP 7.4 – PHP 8.1
    • Required extensions:
      • mysqli
      • gd
      • openssl
      • mbstring
      • curl
      • zlib
      • intl
      • zip
      • bcmath
  • Database: MySQL 5.7+ or MariaDB 10.3+

Minimum Hardware

  • RAM: 1 GB (recommended 2 GB)
  • Storage: 10 GB+

This tutorial uses Ubuntu as the operating system.

Server Preparation

Update the server system first:

sudo apt update && sudo apt upgrade -y

Install Apache web server and certbot:

sudo apt install apache2 certbot python3-certbot-apache -y

Install MariaDB:

sudo apt install mariadb-server -y

Add the ondrej/php PPA repository:

sudo add-apt-repository ppa:ondrej/php -y
sudo apt upgrade -y

Install PHP 8.1 and required extensions:

sudo apt install libapache2-mod-php8.1 php8.1 php8.1-common php8.1-cli \
php8.1-curl php8.1-intl php8.1-gd php8.1-xsl php8.1-mbstring php8.1-zip \
php8.1-xml php8.1-bz2 php8.1-mysql php8.1-soap php8.1-gmp php8.1-bcmath \
php8.1-apcu php8.1-imagick php8.1-imap php8.1-xdebug unzip -y

Create Database

Log in to MariaDB:

sudo mysql

Create the database and user:

CREATE DATABASE invoiceplane;
CREATE USER 'invoiceplane'@'localhost' IDENTIFIED BY 'secretpassword';
GRANT ALL PRIVILEGES ON invoiceplane.* TO 'invoiceplane'@'localhost';
FLUSH PRIVILEGES;
exit

Virtual Host Configuration

Create an Apache virtual host configuration for invoiceplane.domain.com:

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

Insert the following configuration:

<VirtualHost *:80>
    ServerName invoiceplane.domain.com
    DocumentRoot /var/www/invoiceplane.domain.com
    <Directory /var/www/invoiceplane.domain.com>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog /var/log/apache2/invoiceplane.domain.com_error.log
    CustomLog /var/log/apache2/invoiceplane.domain.com_access.log combined
</VirtualHost>

Enable the virtual host and restart apache2:

sudo a2ensite invoiceplane.domain.com
sudo systemctl restart apache2

Request an SSL certificate:

sudo certbot --non-interactive \
-m [email protected] \
--agree-tos \
--no-eff-email \
--apache -d invoiceplane.domain.com \
--redirect

Install InvoicePlane

Download InvoicePlane:

wget https://github.com/InvoicePlane/InvoicePlane/releases/download/v1.6.3/v1.6.3.zip -O InvoicePlane_v1.6.3.zip

Extract the archive:

unzip InvoicePlane_v1.6.3.zip

Move it to the /var/www directory:

sudo mv ip /var/www/invoiceplane.domain.com

Enable the .htaccess file:

cd /var/www/invoiceplane.domain.com
sudo mv htaccess .htaccess

Enable and configure ipconfig.php:

sudo cp ipconfig.php.example ipconfig.php
sudo nano ipconfig.php

Adjust the configuration:

IP_URL=https://invoiceplane.domain.com
REMOVE_INDEXPHP=true

Set directory ownership:

sudo chown -R www-data:www-data /var/www/invoiceplane.domain.com

Access https://invoiceplane.domain.com and follow the installation steps:

  1. Start setup by clicking Setup.
  2. Select language.
  3. Check system requirements and directory permissions.
  4. Enter database name, username, and password.
  5. Install tables.
  6. Configure VAT calculation.
  7. Create a user account.

Reopen ipconfig.php:

sudo nano ipconfig.php

Disable setup:

DISABLE_SETUP=true

The InvoicePlane installation is now complete.

Conclusion

InvoicePlane is an ideal solution for businesses that need a self-hosted, flexible, and user-friendly invoicing system. By following this guide, you have successfully installed InvoicePlane on an Ubuntu server with a complete setup including LAMP stack, virtual host, SSL, and application deployment. Once running, you can immediately use it to manage invoices, clients, and payments professionally.

Found this tutorial helpful? If you’d like to support my work, feel free to buy me a coffee! It helps keep the lights on and the tutorials coming.

Buy me a coffee

Related Posts