FedoraRHEL Based

How To Install InvoicePlane on Fedora 43

Install InvoicePlane on Fedora 43

Managing invoices, tracking clients, and handling billing can overwhelm small businesses and freelancers. InvoicePlane offers a powerful solution: a self-hosted, open-source invoicing application that puts you in complete control of your financial data. Unlike cloud-based alternatives that charge monthly fees and store your sensitive business information on third-party servers, InvoicePlane runs entirely on your own infrastructure. This comprehensive guide walks you through installing InvoicePlane on Fedora 43, transforming your server into a professional billing platform. You’ll learn every step from preparing your system to completing the web-based setup wizard.

Understanding InvoicePlane and System Requirements

What is InvoicePlane?

InvoicePlane stands out as a robust invoicing and billing platform designed for businesses that value data ownership and customization. The application handles invoice generation, client management, quote creation, and payment tracking through an intuitive web interface. You can customize invoice templates, manage multiple clients, track payments, and generate financial reports without paying subscription fees. The self-hosted nature means your business data never leaves your control, addressing privacy concerns that plague cloud-based solutions.

System Requirements

Before diving into installation, verify your Fedora 43 system meets InvoicePlane’s requirements. Your server needs at least 1GB of RAM, though 2GB ensures smoother performance during heavy usage. Storage requirements are modest—5GB of free disk space accommodates the application and database growth for typical small business usage.

The software stack requires careful attention. InvoicePlane runs on Apache or Nginx web servers, MySQL 5.5+ or MariaDB for database management, and PHP 5.5.0 or higher. Critical PHP extensions include php-gd for image processing, php-hash for security functions, php-json for data handling, php-mbstring for multi-byte string support, php-mysqli for database connectivity, php-openssl for encryption, php-recode for character encoding, php-xmlrpc for remote procedure calls, and php-zlib for compression. Missing even one extension can prevent InvoicePlane from functioning properly.

Preparing Your Fedora 43 System

System Update

Fresh installations benefit from updated packages. Open your terminal and execute the update command to refresh package repositories:

sudo dnf update

This command contacts Fedora’s repositories and identifies available updates. Follow up with a full upgrade:

sudo dnf upgrade -y

The -y flag automatically confirms installations, streamlining the process. If kernel updates install, reboot your system to ensure changes take effect. Verify your Fedora version matches expectations:

cat /etc/fedora-release

Installing Prerequisites

InvoicePlane installation requires several utility packages. Install them collectively:

sudo dnf install curl wget unzip git -y

These tools download files, extract archives, and manage repositories. Next, configure your firewall to allow web traffic. Fedora 43 uses firewalld by default. Open HTTP and HTTPS ports:

sudo firewall-cmd --permanent --add-service={http,https}

Reload the firewall to apply changes:

sudo firewall-cmd --reload

Verify the firewall accepted your rules:

sudo firewall-cmd --list-all

You should see http and https listed under services.

Installing Apache Web Server

Apache Installation

Apache powers InvoicePlane’s web interface. On Fedora, the package is called httpd rather than apache2. Install it:

sudo dnf install httpd -y

This command fetches Apache and its dependencies. Start the web server:

sudo systemctl start httpd

Configure Apache to launch automatically during system boots:

sudo systemctl enable httpd

Both commands use systemd, Fedora’s service management system. Check Apache’s status:

sudo systemctl status httpd

A green “active (running)” status confirms successful installation.

Apache Configuration

Create a dedicated directory for InvoicePlane within Apache’s web root. The virtual host configuration comes later, but basic Apache setup requires setting proper permissions and testing functionality. Navigate to your browser and enter your server’s IP address. You should see Apache’s default test page, confirming the web server responds to requests.

Installing and Configuring MariaDB Database

MariaDB Installation

InvoicePlane stores invoice data, client information, and settings in a relational database. MariaDB, a MySQL fork, integrates seamlessly with Fedora. Install the server package:

sudo dnf install mariadb-server -y

Launch MariaDB:

sudo systemctl start mariadb

Enable automatic startup:

sudo systemctl enable mariadb

Verify the database server runs correctly:

sudo systemctl status mariadb

Securing MariaDB

Fresh MariaDB installations lack security hardening. Run the security script:

sudo mysql_secure_installation

The wizard prompts for several decisions. First, set a strong root password—use a combination of uppercase, lowercase, numbers, and special characters. Remove anonymous users that allow unauthenticated access. Disallow remote root login to prevent attacks. Delete the test database that serves no production purpose. Reload privilege tables to apply changes immediately.

Creating InvoicePlane Database

Log into MariaDB as root:

mysql -u root -p

Enter your root password when prompted. The MariaDB prompt appears. Create a dedicated database:

CREATE DATABASE invoiceplane_db;

Choose a descriptive name; invoiceplane_db works well. Create a user specifically for InvoicePlane:

CREATE USER 'invoiceplane_user'@'localhost' IDENTIFIED BY 'strong_password';

Replace strong_password with a secure credential. Grant this user complete access to the database:

GRANT ALL PRIVILEGES ON invoiceplane_db.* TO 'invoiceplane_user'@'localhost';

This command limits access to only the InvoicePlane database. Flush privileges:

FLUSH PRIVILEGES;

Exit MariaDB:

EXIT;

Installing PHP and Required Extensions

PHP Installation

PHP processes InvoicePlane’s dynamic content. Install the core PHP packages:

sudo dnf install php php-cli php-fpm php-common -y

Fedora 43 typically includes PHP 8.x, which exceeds InvoicePlane’s minimum requirement. Now install required extensions:

sudo dnf install php-gd php-json php-mbstring php-mysqli php-openssl php-xmlrpc php-mysqlnd php-pdo php-xml -y

These extensions enable graphics processing, database connectivity, and data handling. Verify installation:

php --version

Check which modules loaded successfully:

php -m

Scroll through the list, confirming all required extensions appear.

PHP Configuration

InvoicePlane functions optimally with specific PHP settings. Edit the configuration file:

sudo nano /etc/php.ini

Locate and modify these directives:

memory_limit = 256M
upload_max_filesize = 128M
max_execution_time = 360
date.timezone = Asia/Jakarta

The memory limit prevents crashes during complex operations. Upload limits accommodate logo images and attachments. Execution time allows lengthy database operations to complete. Set the timezone to match your location. Save and exit the editor (Ctrl+X, then Y, then Enter).

Restart Apache to load changes:

sudo systemctl restart httpd

Test PHP integration by creating a simple info page:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

Visit http://your-server-ip/info.php in your browser. A detailed PHP information page should display.

Downloading and Installing InvoicePlane

Downloading InvoicePlane

Navigate to the temporary directory:

cd /tmp

Download the latest InvoicePlane release. The official repository hosts stable versions:

wget https://github.com/InvoicePlane/InvoicePlane/releases/latest/download/InvoicePlane-v1.6.0.zip -O invoiceplane.zip

Verify the download succeeded:

ls -lh invoiceplane.zip

The file should show several megabytes in size.

Extracting and Placing Files

Create InvoicePlane’s directory:

sudo mkdir -p /var/www/html/invoiceplane

Extract the archive directly into this location:

sudo unzip invoiceplane.zip -d /var/www/html/invoiceplane

InvoicePlane includes an example configuration file. Copy it to create your active configuration:

sudo cp /var/www/html/invoiceplane/ipconfig.php.example /var/www/html/invoiceplane/ipconfig.php

Set ownership to Apache’s user:

sudo chown -R apache:apache /var/www/html/invoiceplane

Fedora uses SELinux for security. Configure the security context:

sudo chcon -t httpd_sys_rw_content_t /var/www/html/invoiceplane -R

This command allows Apache to read and write InvoicePlane files. Set directory permissions:

sudo chmod -R 755 /var/www/html/invoiceplane

The uploads directory needs write access:

sudo chmod -R 777 /var/www/html/invoiceplane/uploads

Clean up the downloaded archive:

rm /tmp/invoiceplane.zip

Configuring InvoicePlane

Base Configuration File

Edit InvoicePlane’s configuration:

sudo nano /var/www/html/invoiceplane/ipconfig.php

Locate the URL setting and configure it to match your server:

IP_URL=http://your-server-ip/invoiceplane

Ensure DISABLE_SETUP is set to false for initial installation:

DISABLE_SETUP=false

The installation wizard generates an encryption key automatically. Save your changes and exit.

Apache Virtual Host Configuration

Create a dedicated virtual host configuration:

sudo nano /etc/httpd/conf.d/invoiceplane.conf

Add this configuration:

<VirtualHost *:80>
    ServerName your-domain.com
    DocumentRoot /var/www/html/invoiceplane
    
    <Directory /var/www/html/invoiceplane>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    
    ErrorLog /var/log/httpd/invoiceplane-error.log
    CustomLog /var/log/httpd/invoiceplane-access.log combined
</VirtualHost>

Replace your-domain.com with your actual domain or use your server’s IP address. The AllowOverride directive enables .htaccess files InvoicePlane uses for URL rewriting. Test your configuration:

sudo apachectl configtest

You should see “Syntax OK”. Restart Apache:

sudo systemctl restart httpd

Running the InvoicePlane Web Installer

Accessing the Installer

Open your web browser and navigate to the installation URL:

http://your-server-ip/invoiceplane/index.php/setup

If you configured a domain name, use:

http://your-domain.com/invoiceplane/index.php/setup

The InvoicePlane setup page loads, displaying the installation wizard.

Install InvoicePlane on Fedora 43

Installation Steps

Click the “Setup” button to begin. Select your preferred language from the dropdown menu and click Continue. The prerequisites screen appears, checking your system configuration. Green checkmarks should appear next to all requirements. Red X marks indicate missing components—return to earlier steps and install missing PHP extensions.

The database configuration page appears next. Enter your credentials:

  • Hostname: localhost
  • Database Name: invoiceplane_db
  • Username: invoiceplane_user
  • Password: [your database password]

Click Continue. InvoicePlane connects to the database and creates necessary tables. The administrator account creation page appears. Enter your email address and choose a strong password. This account manages your entire InvoicePlane installation.

Configure basic site settings including your company name and URL. Click Complete Setup. The installation wizard processes your information and redirects you to the login page. Success!

Post-Installation Security and Configuration

Securing the Installation

Immediately disable the setup wizard to prevent unauthorized access. Edit the configuration file:

sudo nano /var/www/html/invoiceplane/ipconfig.php

Change the setup parameter:

DISABLE_SETUP=true

Save and exit. Alternatively, use sed for quick modification:

sudo sed -i 's/DISABLE_SETUP=false/DISABLE_SETUP=true/g' /var/www/html/invoiceplane/ipconfig.php

Remove the PHP info page created earlier:

sudo rm /var/www/html/info.php

This file exposes sensitive configuration details. Establish a backup routine—databases and uploaded files require regular backups to prevent data loss.

Initial Configuration

Log into InvoicePlane using your administrator credentials. The dashboard welcomes you with quick-start tips. Navigate to the settings section and complete your company profile. Upload your logo, enter contact information, and configure default email templates.

Email settings enable automatic invoice delivery. Configure your SMTP server details or use PHP’s mail function for simple setups. Test email functionality before sending client invoices.

Customize invoice templates to match your branding. InvoicePlane includes several layouts—preview each to find your preferred style. Configure invoice numbering schemes, choosing between sequential numbers, date-based formats, or custom patterns.

Set up tax rates applicable to your business. Add multiple rates for different product categories or geographic regions. Configure your primary currency and decimal precision. Create user accounts for team members, assigning appropriate permission levels to restrict access to sensitive financial data.

Troubleshooting Common Issues

Installation doesn’t always proceed smoothly. Missing PHP extensions generate error messages during the prerequisites check. Return to the PHP installation step and verify each extension installed correctly. Database connection failures typically result from incorrect credentials. Double-check your database name, username, and password match those created in MariaDB.

Permission denied errors often stem from incorrect file ownership or SELinux contexts. Verify Apache owns InvoicePlane files and the SELinux context matches httpd_sys_rw_content_t. The 500 Internal Server Error usually indicates misconfigured .htaccess files or Apache modules. Ensure mod_rewrite is enabled and AllowOverride is set to All in your virtual host configuration.

File upload problems trace back to PHP’s upload_max_filesize setting. Increase this value in php.ini and restart Apache. Timezone errors cause date display issues. Set date.timezone in php.ini to your local timezone.

Browser caching can display outdated setup pages. Clear your browser cache and cookies if the installation wizard behaves unexpectedly. Check Apache’s error log for detailed diagnostics:

sudo tail -f /var/log/httpd/error_log

This command displays real-time errors, helping identify configuration problems.

Congratulations! You have successfully installed InvoicePlane. Thanks for using this tutorial for installing the InvoicePlane self host invoice system on Fedora 43 Linux. For additional help or useful information, we recommend you check the official InvoicePlane website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button