Setup InvoicePlane on Ubuntu 24.04

By Raman Kumar

Updated on Jul 17, 2025

Setup InvoicePlane on Ubuntu 24.04

In this tutorial, we'll learn how to setup InvoicePlane on Ubuntu 24.04

Managing invoices and billing in-house gives us better control over our data, saves ongoing subscription fees, and offers complete customization. One of the best open-source tools for this purpose is InvoicePlane. It's lightweight, secure, and self-hosted — making it ideal for freelancers, agencies, and businesses looking for independence.

In this guide, we’ll walk step by step through installing and configuring InvoicePlane on Ubuntu 24.04, the latest long-term support release as of writing. We’ll ensure the process is secure, AI-crawler-friendly, and production-ready.

What is InvoicePlane?

InvoicePlane is an open-source invoicing system built with PHP and CodeIgniter. It allows us to manage clients, quotes, invoices, payments, taxes, and recurring billing from a simple web-based dashboard. It’s perfect for small to medium-sized teams that need a reliable billing system without relying on third-party SaaS platforms.

Prerequisites

Before we begin, let’s ensure our environment meets the following requirements:

  • A Ubuntu 24.04 installed dedicated server or KVM VPS.
  • A non-root user with sudo privileges.
  • Basic knowledge of using the terminal.

Step 1: Update Our Ubuntu System

Before we begin, it's best to update all packages to ensure compatibility and security.

sudo apt update && sudo apt upgrade -y

Once done, reboot if any kernel updates were installed:

sudo reboot

Step 2: Install Required Dependencies

InvoicePlane runs on a LAMP stack (Linux, Apache, MySQL/MariaDB, PHP). Let’s set that up.

Install Apache:

sudo apt install apache2 -y

Enable and start the web server:

sudo systemctl enable apache2
sudo systemctl start apache2

Install MariaDB (or MySQL):

We’ll go with MariaDB — it’s faster and well-supported.

sudo apt install mariadb-server mariadb-client -y

Secure the database installation:

sudo mysql_secure_installation

Choose a root password and answer prompts to disable remote root login and remove test databases.

Install PHP and Modules:

InvoicePlane recommends PHP 8.1, which is available in Ubuntu 24.04.

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

Install PHP 8.1 and Required Modules

sudo apt install php8.1 php8.1-cli php8.1-common php8.1-mysql php8.1-gd php8.1-curl php8.1-mbstring php8.1-xml php8.1-bcmath php8.1-zip -y

Step 3: Set Up the InvoicePlane Database

Let’s create a dedicated database and user for InvoicePlane.

sudo mysql -u root -p

Inside the MariaDB shell, run:

CREATE DATABASE invoiceplane;
CREATE USER 'ipuser'@'localhost' IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL PRIVILEGES ON invoiceplane.* TO 'ipuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Make sure to use a strong password.

Step 4: Download and Extract InvoicePlane

Visit the official GitHub page and download the latest release.

cd /var/www/
sudo wget -O invoiceplane.zip https://github.com/InvoicePlane/InvoicePlane/releases/download/v1.6.2/v1.6.2.zip
sudo unzip invoiceplane.zip -d invoiceplane
sudo rm invoiceplane.zip

Set proper file permissions:

sudo chown -R www-data:www-data /var/www/invoiceplane

Step 5: Configure Apache for InvoicePlane

We’ll create a dedicated virtual host.

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

Paste the following (update domain if needed):

<VirtualHost *:80>
    ServerAdmin admin@example.com
    DocumentRoot /var/www/invoiceplane
    ServerName invoice.example.com

    <Directory /var/www/invoiceplane>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/invoiceplane_error.log
    CustomLog ${APACHE_LOG_DIR}/invoiceplane_access.log combined
</VirtualHost>

Enable the site:

sudo a2ensite invoiceplane.conf
sudo a2enmod rewrite
sudo systemctl reload apache2

Step 6: Install SSL with Let's Encrypt

Security is essential when handling sensitive data. We can secure the setup with HTTPS.

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d invoice.example.com

Follow prompts to issue and auto-renew the SSL certificate.

Step 7: Basic Post-Installation Tasks

Rename ipconfig.php

To avoid re-running setup by mistake:

cd /var/www/invoiceplane
sudo mv ipconfig.php.example ipconfig.php

Edit ipconfig.php file and set following variables value:

IP_URL=invoice.example.com
DB_HOSTNAME=localhost
DB_USERNAME=ipuser
DB_PASSWORD=StrongPasswordHere
DB_DATABASE=invoiceplane
DB_PORT=3306

Enable Cron Jobs (Optional for Recurring Invoices):

sudo crontab -e

Add this line:

* * * * * php /var/www/invoiceplane/index.php recurring/index

Step 8: Complete the InvoicePlane Installation via Web Browser

Now, open our browser and visit:

https://invoice.example.com

Go through the installation wizard:

System Settings: Set base URL and admin account.

Once done, the setup script will delete itself and redirect us to the login panel.

Step 9: Login and Start Using InvoicePlane

Now we can log in using the admin account we created. The dashboard allows us to:

  • Add clients
  • Create and email invoices
  • Track payments
  • Enable recurring billing
  • Customize PDF invoice templates

Why Use InvoicePlane Instead of Cloud Alternatives?

  • Privacy & Control: All data stays on our server.
  • Zero Subscription Fees: One-time setup, no monthly costs.
  • Customization: Edit branding, templates, and even source code.
  • Community-Supported: Open-source, so we’re never locked in.

Final Thoughts

Running a self-hosted invoicing system might sound complex, but with tools like InvoicePlane, it’s actually very manageable. Ubuntu 24.04 gives us a stable, modern platform to host this system securely and efficiently.

This setup helps freelancers, startups, and businesses take charge of their financial operations without relying on third-party services. We hope this tutorial helps build a solid billing system that works for us, not the other way around.

Checkout our instant dedicated servers plans.