Self-Hosted Software for a Clinical Research Consulting Business

A review of key self-hosted software solutions for a clinical research consulting business.

Self-Hosted Software for a Clinical Research Consulting Business

I am a fan of free and open source software.

It is reassuring to know that there are no recurring fees to pay every month to use software. Any one remember when you could pay a one-time fee to use software?

One of the barriers to using free and open source software is that you often need to host the services on your own server. I am a Scientist, not an IT professional, but I was able to stumble my way to a solution that works for my clinical research consulting business.

In this article I will describe how I built the system I use to run key software for my business.

It Begins with Backups 💾

My journey into building a server started when I ran out of space on my laptop. This laptop I was using during the first year to run my clinical research consulting business, but the hard drive within was quickly filled up.

I had an external hard drive that I was using for backups, but if I started storing files on an external drive, how would I backup files on the laptop and external drive?

The solution was network attached storage (NAS). I bought a 2 bay QNAP NAS and 2 4TB drives. With the NAS, I set it up so that each hard drive was a mirror of the other. That way, if one drive failed I would still have all my data.

This was the start of a deep rabbit hole.

Containers 🪣

The QNAP itself isn't free nor is the software open source. However, it does allow for the creation of containers that can be used to host free and open source web applications.

I very quickly started using a QNAP container to host SuiteCRM.

SuiteCRM is free and open source Customer Relationship Management software. I don't use to send targeted emails out to clients. I use it to keep track of where potential clients are in the sales pipeline, ongoing projects, and tasks within ongoing projects.

SuiteCRM really keeps me organized all in one software. Highly recommend it for a clinical research consulting business.

However, during a software update to the QNAP NAS software, my SuiteCRM container became unusable. I lost all my current tasks, sales pipelines, and project overviews.

It was in that moment that I decided there had to be a better way.

Repurposing Desktop Computer 🖥️

I had an old desktop computer laying around and decided to build my own server so I could minimize the chances of a random software update breaking applications I need for business.

I also like that I can keep my data private on my own server. I can never shake that creepy feeling that my data on someone else's server is being harvested for advertisers and to train AI.

On the desktop I installed Proxmox, a hypervisor. A hypervisor allows the creation of multiple virtual machines on a physical machine.

I created a few virtual machines:

  1. TrueNAS Scale - a free and open source NAS software.
  2. Windows 10 - to run a few pieces of analysis software that won't run on any other operating system.
  3. Linux Server - to run web applications for my business.
  4. SuiteCRM - running in its own virtual machine worked better than running with other web applications on the same server.

This setup worked great for a year.

Needing more CPU Cores 💻

Each virtual machine needed at least 1 core to run.

The desktop I repurposed had 6 cores, but distributing them across all the virtual machines I quickly ran out.

I decided to buy another old desktop on eBay to get more CPU cores.

However, I found a seller that listed 2 desktops for cheaper than it cost to buy 1.

Naturally I bought first and figured out what to do with the computers later!

Cluster 💻💻💻

With Proxmox, you can add desktops together into a cluster, with each acting as an independent node.

This allows, first and foremost, easy management through 1 interface (and IP address) instead of 3. But this also allows easy movement of virtual machines between computers.

This is handy to reconfigure virtual machines to maximize RAM and CPU cores. This also works well to shift virtual machines around when updating nodes so that there is minimal downtime of the virtual machines.

Another interesting thing that can be done involves high availability.

High Availability 🆙

When a Proxmox node goes down, all the virtual machines associated with it also go offline.

However, with high availability, the virtual machines will automatically spin up on another node if the node that they are on goes down. Pretty cool!

Not really mission critical with my clinical research consulting business since I mostly use the services to keep track of various things, not to do actual billable work. But, it is nice to have the extra layer of assistance if one node goes down. Saves troubleshooting time if I am in the middle of something that is actually important, like sales or billable hours!

Summary

This article provided backstory on my current server setup to run software I use for my clinical research consulting business. It was a pretty deep rabbit hole, but lots of fun learning along the way.

What is your current setup for your business? I'd love to hear about it. Also let me know if you found this information useful. Get in touch.