Invoice Ninja is an open-source platform which helps you take care of clients, invoices, payments, expenses, time-tracking, and more…
In this guide I explain how you can run Invoice Ninja on your own server with Caddy and PHP-FPM.
Prerequisites
- MySQL Server up and running
- PHP-FPM up and running
- I assume that you have already setup Caddy and know it’s basics. I have other guides if you need help running Caddy with systemd or upstart.
Download the latest version of Invoice Ninja
Download the latest version here: Download Invoice Ninja.
Setup the database
Open the MySQL console:
$ mysql -u root -p
Execute the following SQL statements to create the database for Invoice Ninja, and grant a new user access to it:
CREATE DATABASE ninja;
CREATE USER 'ninja'@'localhost' IDENTIFIED BY 'ninja';
GRANT ALL PRIVILEGES ON ninja.* TO 'ninja'@'localhost';
Caddyfile
I use the following Caddyfile for Invoice Ninja:
invoiceninja.domain.com {
root sites/invoiceninja/public
fastcgi / unix:/var/run/php/php7.0-fpm.sock php
log sites/invoiceninja/access.log
errors sites/invoiceninja/error.log
// Rewrite rules for Invoice Ninja (Laravel)
rewrite {
r .*
ext /
to /index.php?{query}
}
}
invoiceninja.domain.com
will automatically be served over HTTPS.
Installing Invoice Ninja
Installing Invoice Ninja is then straightforward: point your browser to invoiceninja.domain.com
, and follow the on-screen steps.
I used Sendgrid as email provider, but you can also use your local mail server or any email service.