Rabbit Hole: Updating Server


It hadn’t had to be this way. But rabbit holes happen all the time. This time, it is no different. The starting point? InvoiceNinja.

No Title

No Description

InvoiceNinja is a Laravel based invoicing system. Its primary job, as you guess it, is to issue invoices.

Now, why does an analytics consultant need an invoicing system, especially when he doesn’t deal with the company’s finances. Well, his brief freelancing past caught up with him and he has to issue invoices for ongoing contracts.

Back to InvoiceNinja. I have gotten onto InvoiceNinja on a recommendation from a fellow HackerspaceSG member when I first started taking on freelance jobs. Being the lazy me, and that the community around it was still maturing, I decided to just pay the subscription for its SaaS offering. It was manageable then, going at 50 USD.

A couple of years gone by, and the subscription went up to 80 USD. ‘OK, I can stomach it. Probably. One more year.’ The one more year had gone by, and the older me went, ‘Nah. Self-hosting makes more sense now since there are easier ways to set up a full stack system, and white-labelling it is cheaper (20 USD)’.

So, I went about to work on getting InvoiceNinja installed, and I have drawn up a task list:

  1. Read up on InvoiceNinja installation process.
  2. Install InvoiceNinja on existing DigitalOcean droplet.
  3. Migrate data from SaaS platform to self-hosted.
  4. Send invoices.

That was the plan. But noooo… What I didn’t say was:

  • The current server’s OS is going to EOL April 2019 (Ubuntu 14.04.5). The latest version is 18.04.1.

That’s the primary driver, but in the world of Linux, packages might not be updated or maintained for the older OS versions as many packages are maintained by volunteers. I am not bemoaning the fact, but it is probably a good motivation to actively upgrade the OS. As this is a cloud VPS, it simply means that I would just have to spin up a new droplet (again, the lazy me taking the easy way out).

So the task list has expanded to:

  1. Read up on InvoiceNinja installation process.
  2. Read up on VestaCP installation process.
  3. Spin up a new DigitalOcean droplet.
  4. Install VestaCP.
  5. Install InvoiceNinja.
  6. Migrate data from SaaS.
  7. Send invoices.
  8. Migrate content (aka this site, and couple other sites that I host gratia) from old droplet to new droplet.
  9. Consolidate rabbit hole experience.

Number 9, is clearly a last minute addition. But I realised that documenting my own process may be beneficial to everyone else who is going through a similar process. The entire process will be broken down into different entries, because, why not? Each hurdle is frustrating but interesting at the same time, and they can be applied to other processes.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.