home / blog / fusion-invoice-installation

Self-Hosting FusionInvoice on a $6 Droplet

FusionInvoice is the invoicing app I run at Tiempo and install for clients. Here’s the actual setup on a $6 DigitalOcean Droplet, plus the upgrade procedure and the one config gotcha that catches everyone.

Fusion Invoice Installation

FusionInvoice is a Laravel/PHP invoicing app you self-host. License is currently around $129/year; runs comfortably on a $6/month DigitalOcean Droplet. I install it for clients and run it for Tiempo itself. The comparison against QuickBooks is in FusionInvoice vs. QuickBooks.

This post is the install steps. If you already run nginx + PHP somewhere, skip to step 4.

What you need

  • A Linux server you can SSH into. I use Ubuntu LTS on a basic DigitalOcean Droplet ($6/month).
  • A domain name (or subdomain) pointed at the server’s IP.
  • A FusionInvoice license. You can run the trial first.

1. Server prep

On a fresh Ubuntu LTS Droplet:

sudo apt update && sudo apt upgrade -y
sudo apt install nginx mysql-server php-fpm php-mysql php-mbstring php-xml php-zip php-curl php-gd php-bcmath unzip -y
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

Verify PHP version: php -v. FusionInvoice 2024+ wants PHP 8.1 or higher.

2. Database

sudo mysql_secure_installation
sudo mysql -u root -p

In the MySQL prompt:

CREATE DATABASE fusioninvoice CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'fiuser'@'localhost' IDENTIFIED BY 'a-real-strong-password-not-this';
GRANT ALL ON fusioninvoice.* TO 'fiuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

3. Drop the FusionInvoice files

Download your purchased ZIP from FusionInvoice’s site (or grab the trial). Then:

sudo mkdir -p /var/www/fusioninvoice
sudo unzip ~/fusioninvoice-X.Y.Z.zip -d /var/www/fusioninvoice
sudo chown -R www-data:www-data /var/www/fusioninvoice
sudo chmod -R 755 /var/www/fusioninvoice/storage /var/www/fusioninvoice/bootstrap/cache

4. Nginx vhost

Create /etc/nginx/sites-available/fusioninvoice:

server {
    listen 80;
    server_name invoices.example.com;
    root /var/www/fusioninvoice/public;
    index index.php;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }
}

Then:

sudo ln -s /etc/nginx/sites-available/fusioninvoice /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

5. TLS with Let’s Encrypt

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d invoices.example.com

Certbot rewrites the vhost to add the 443 server block and sets up auto-renewal. Confirm with sudo certbot renew --dry-run.

6. Run the FusionInvoice web installer

Visit https://invoices.example.com/setup in a browser. The installer walks you through the database credentials, license key, and admin user. Five minutes start to finish.

The one gotcha that catches everyone

storage/ and bootstrap/cache/ must be writable by www-data. If you get a generic 500 error on first load, that’s 95% of the time the cause. sudo chown -R www-data:www-data /var/www/fusioninvoice fixes it.

Upgrades

FusionInvoice ships a few releases per year. The upgrade dance is:

  1. Take a database backup. mysqldump -u fiuser -p fusioninvoice > backup-$(date +%F).sql
  2. Download the new release ZIP from your customer dashboard.
  3. Unzip it on top of /var/www/fusioninvoice (it overwrites the code, leaves your config and storage).
  4. Restore the right ownership: sudo chown -R www-data:www-data /var/www/fusioninvoice
  5. Hit the site once; FusionInvoice handles the migration on first request.

I’ve never had a FusionInvoice upgrade brick a database. The backup is for peace of mind.

Backups

Two things worth backing up:

  • The database. Nightly mysqldump to DigitalOcean Spaces or another off-host location. ~$5/month for Spaces and you keep a long history.
  • The storage/uploads/ directory. That’s where logos, signed quotes, and invoice attachments live. rclone to the same Space works fine.

I run weekly DigitalOcean Droplet backups too ($1.20/month) as a full-VM safety net.

If you want me to install it

I do FusionInvoice installs as a one-shot service, plus monthly management if you want patches and upgrades handled. Get in touch.

← Back to all posts Reply to this post →