InvoicePlane
InvoicePlane is a self-hosted open source application for managing your quotes, invoices, clients and payments.
Installation
Install the invoiceplaneAUR package.
Configuration
Database
Here is an example on how you could setup a database for Invoiceplane with MariaDB called invoiceplane
for the user invoiceplane
identified by the password password
:
CREATE DATABASE invoiceplane; GRANT ALL PRIVILEGES ON invoiceplane.* TO invoiceplane@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
Apache
Create the Apache HTTP Server configuration file:
/etc/httpd/conf/extra/invoiceplane.conf
Alias /invoiceplane "/usr/share/webapps/invoiceplane" <Directory "/usr/share/webapps/invoiceplane"> DirectoryIndex index.php AllowOverride All Options FollowSymlinks Require all granted </Directory>
And include it in /etc/httpd/conf/httpd.conf
:
# InvoicePlane configuration Include conf/extra/invoiceplane.conf
Lighttpd
Make an alias for invoiceplane in your Lighttpd configuration.
alias.url = ( "/invoiceplane" => "/usr/share/webapps/invoiceplane/")
Then enable mod_alias
, mod_fastcgi
and mod_cgi
in the section.
nginx
Here is an example configuration to include in for a subdomain with php-fpm:
Explicitly permit InvoicePlane directories for php-fpm
Since version 7.4 php-fpm is hardened per default and revokes read/write access on (and sub-directories). Therefore it is also necessary to explicitly give permissions on directories.
Create a drop-in file for .
Add and save it with the following content:
/etc/systemd/system/php-fpm.service.d/override.conf
[Service] ReadWritePaths = /usr/share/webapps/invoiceplane/ipconfig.php ReadWritePaths = /usr/share/webapps/invoiceplane/uploads/ ReadWritePaths = /usr/share/webapps/invoiceplane/application/logs ReadWritePaths = /usr/share/webapps/invoiceplane/vendor/mpdf/mpdf/tmp
Afterwards restart the php-fpm
service and assign write permissions to the user.
Installation wizard
Once database and webserver have been setup, visit the installation wizard page at and follow the instructions.
Localization
If you want to choose a different language than English visit Translation / Localization.