InvoicePlane

InvoicePlane
is a self-hosted open source application for managing your quotes, invoices, clients and payments.
Installation
Install
the
invoiceplane
AUR
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
Official web page
Documentation