VOOZH about

URL: https://wiki.archlinux.org/title/InvoicePlane

⇱ InvoicePlane - ArchWiki


Jump to content
From ArchWiki

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;

Web Server

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 server.modules section.

nginx

Here is an example configuration to include in nginx.conf for a subdomain with php-fpm:

/etc/nginx/sites-available/invoiceplane.conf
server {

listen 443 ssl http2;
listen [::]:443 ssl http2;

 add_header X-Frame-Options "SAMEORIGIN";

 root /usr/share/webapps/invoiceplane;
 index index.php;
 
 server_name invoice.''domain.tld'';

 client_body_timeout 60;

 location / {
 try_files $uri $uri/ /index.php?q=$uri&$args; 
 }

 location ~ \.php$ {
 fastcgi_param PHP_ADMIN_VALUE open_basedir=/tmp:/usr/share/webapps/invoiceplane:/dev/urandom:/usr/share/php;
 fastcgi_split_path_info ^(.+\.php)(/.+)$;
 include fastcgi_params;
 fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
 fastcgi_param DOCUMENT_ROOT $realpath_root;
 fastcgi_param PATH_INFO $fastcgi_path_info;
 fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
 client_max_body_size 100M;
 }
}

Explicitly permit InvoicePlane directories for php-fpm

Since version 7.4 php-fpm is hardened per default and revokes read/write access on /usr (and sub-directories). Therefore it is also necessary to explicitly give permissions on /usr/share/webapps/invoiceplane directories.

Create a drop-in file for php-fpm.service.

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 http user.

Installation wizard

Once database and webserver have been setup, visit the installation wizard page at http://your-invoiceplane-domain.com/index.php/setup and follow the instructions.

Localization

If you want to choose a different language than English visit Translation / Localization.

See also