Invoice Ninja

Invoice Ninja

The #1 open-source platform to create & email invoices, track payments and expenses, and time billable tasks & projects for clients.

A Free Suite of Apps to Run Your Business

Invoicing, payments, proposals, projects. Small business? Freelancer? Spend less time on paperwork and more time at your craft.

Less time working, more time living. Create. Send. Get Paid.

Software Included

Package Version License
Invoice Ninja Auto-updating Attribution Assurance License
PHP 7.4 PHP License v3.0.1
Nginx
MySQL
Postfix
Certbot Apache License

Creating an App using the Control Panel

Click the Deploy to DigitalOcean button to create a Droplet based on this 1-Click App. If you aren’t logged in, this link will prompt you to log in with your DigitalOcean account.

Deploy to DO

Creating an App using the API

In addition to creating a Droplet from the Invoice Ninja 1-Click App using the control panel, you can also use the DigitalOcean API. As an example, to create a 4GB Invoice Ninja Droplet in the SFO2 region, you can use the following curl command. You need to either save your API access token) to an environment variable or substitute it in the command below.

curl -X POST -H 'Content-Type: application/json' \
         -H 'Authorization: Bearer '$TOKEN'' -d \
        '{"name":"choose_a_name","region":"sfo2","size":"s-2vcpu-4gb","image": "invoiceninja-20-0-4"}' \
        "https://api.digitalocean.com/v2/droplets"

Getting Started After Deploying Invoice Ninja

This image automatically downloads and installs a recent version of Invoice Ninja (v5.4.14) on the first boot.

After the server boots and installation has finished, you can visit your server’s URL in a web browser to complete the Invoice Ninja setup process. The Database Connection section has already been completed. You will only need to click the Test Connection button. We recommend installing an HTTPS certificate (see below) and setting the application URL, as well as configuring an external mail server before continuing.

HTTPS Certificate

Once the server has been created, you can connect to the server via SSH. Run sudo certbot -d <domain name> to generate and install an HTTPS certificate using Let’s Encrypt.

The image includes a cron job to automatically renew any certificates installed using Certbot.

Mail

The image includes a Postfix server; however without additional configuration, your emails will likely be rejected by most email providers.

See the following guide for more information: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-on-ubuntu-20-04

Note: Due to the difficulties of configuring and maintaining a mail server for high deliverability rates, we recommend using an external email service such as Mailgun.

FAQ:

Q: My emails are not being delivered.

A: Most likely you have not configured a mail service and have set up the built in Postfix server. We creating a Mailgun account and entering your credentials under Settings -> System Settings -> Email Settings.

Q: Do I need to create a database on the server?

A: No, this is not required. The server automatically creates a MySQL database and user on the first boot.