Get more from your VPS with these 5 self-hosted apps

The beauty of VPS hosting is that you can almost always eke out a little bit more power—and value—from what you already have. As a big self-hosting advocate, I’m always on the lookout for new and exciting apps/services that I’ll be able to add to my self-hosted “stack” soon enough.

Why soon? Well, I had the misfortune of breaking most everything the last time around. Because of that, and because I actually want to do things right the second time around, stay tuned for a multi-part series on building a fully-functional and fairly-stable self-hosting VPS.

In my most recent sweep for the latest in self-hosting, I stumbled across a few free and open source apps you can sneak onto your existing VPS. If you’re a fan of Docker, this will be a snap.

What's the BEST DEAL in cloud hosting?

Develop at hyperspeed with a Performance VPS from SSD Nodes. We DOUBLED the amount of blazing-fast NVMe storage on our most popular plan and beefed up the CPU offering on these plans. There's nothing else like it on the market, at least not at these prices.

Score a 16GB Performance VPS with 160GB of NVMe storage for just $99/year for a limited time!

Get limited-time deals!⚡


Ian Fijolek, the Director of Engineering at Yelp, recently built himself a handy little tool called minitor.

Minitor’s purpose is simple: It runs a certain command at an interval you set (say, 30 seconds), and then triggers some action when that command fails. Perhaps the most obvious solution is to “ping” a URL (via curl) every minute to double-check that your website is accessible and working properly. A simple YAML configuration file gives you a ton of flexibility in deciding what processes to run and what to do when they fail.

Here’s how Ian monitors his own blog:

  - name: My Blog
    command: [ 'curl', '-s', '-o', '/dev/null', '' ]
    alerts: [ log, mailgun ]
    check_interval: 30
    alert_after: 3
    alert_every: -1 # Defaults to -1 for exponential backoff

    command: >
      curl -s -X POST
      -F subject="Alert! {monitor_name} failed"
      -F from="Minitor <[email protected]>"
      -F [email protected]
      -F text="Our monitor failed"
      -u "api:${MAILGUN_API_KEY}"

Although it hasn’t been added to the official repository yet, one enterprising fan already built a Docker container to make Minitor even easier to install and manage. Even without Docker, you can install Minitor via pip install minitor and run it straight from the command line.

Given the obtuse complexity of many other monitoring solutions, Minitor is definitely going to be my go-to monitoring tool moving forward.

Firefly III

A screenshot of the Firefly III self-hosted app.

Everyone could use some better budgeting. Enter Firefly III, which bills itself as a “free and open source personal finance manager.” Think Mint, but instead of giving a bunch of your financial data to someone else, you get to keep your cards close to the chest.

Firefly III allows you to import data from 2,500 banks and financial companies, and supports CSV imports from banks that don’t connect to the Spectre API. You can do double-entry bookkeeping, if that’s your thing, or set up piggy banks to make more financially-sound big purchases.

To install, you can go the long LAMP/LEMP/WAMP stack route, or you can take the Docker shortcut.


I love cooking, but I despise recipes. I mean, I love recipes, but I hate managing them. I have a few handwritten recipes that get increasingly disgusting with each new meal, and I have plenty others that I’ve lost after making it once. Have you ever tried to re-Google a beloved recipe whose source you’ve forgotten? Not fun.

Chowdown tries to change all that by moving your recipes into a simple Jekyll-powered website. You import your recipes into a plain-text format (the frontmatter to .md files, specifically), just like below:

layout: recipe
title:  "5 Cheese Mac N' Cheese"
image: 5-cheese-mac-n-cheese.jpg
dateAdded: 20170917
YouTubeID: F2SYDXV1W1w

authorName: Lawrence Page
sourceName: BuzzFeed
category: Pasta
yield: 8
prepTime: 15
cookTime: 45

- 1 16 oz. box of elbow macaroni
- 1 12-ounce can evaporated milk
- 3 eggs
- 1/2 cup unsalted butter
- 2 cups cheddar cheese, shredded and divided
- 1 cup mozzarella cheese, shredded
- 2 tablespoons feta cheese, crumbled
- 1 cup provolone cheese, cut into small pieces
- 1/2 cup smoked Gouda cheese, shredded
- 4 teaspoons salt, divided
- 2 teaspoons black pepper

- Preheat oven to 350˚F/180˚C.
- In a large pot or dutch oven, cook macaroni according to package directions, salting the water with 2 teaspoons of salt. Drain and return to the warm pot.
- Add butter to warm macaroni and mix until melted. Season with the remaining salt and pepper.
- Add 1 cup of cheddar, mozzarella, provolone, Gouda, and feta cheese. Mix well.
- Add eggs and evaporated milk, mix until fully incorporated.
- Transfer to a 9x13-inch baking dish and top with the remaining cheddar cheese.
- Bake in a preheated oven for 40–45 minutes, until the top has nicely browned.


Once you’ve done the importing, Chowdown+Jekyll does the rest—here’s that same recipe in its final form: 5 Cheese Mac N’ Cheese. Going the plain text route means your recipes will be highly portable if, in the future, you need to move away from Chowdown. Data portability is one of the best features commonly found in self-hosted apps.

Because Chowdown is, basically, a “theme” for a Jekyll blog, the installation process is just cloning the repository, installing Jekyll, and getting to work.

Or, Dokuwiki

In a /r/selfhosted Reddit thread on recipe apps, many people recommended wiki software for managing their recipes. The benefits are much the same: plain text files (for maximum portability) that get converted by the wiki software into a searchable, taggable, and robust personal wiki.

You can install DokuWiki in any number of ways, but some Docker fans out there have already built some Dockerfiles and docker-compose files to help you automate and containerize your person wiki.

Want to skip all the hassle?

Each of the above self-hosted apps comes with its own installation procedure—sometimes, it’s Docker, and sometimes, it’s something else entirely. For a lot of people, that’s too much of a barrier to entry, especially when we’re used to “app stores” that install our favorite applications with a single click or tap.

Cloudron is trying to replicate that app store usability for the self-hosted crowd. On a newly-deployed SSD Nodes VPS—say, a 16GB RAM server at $[price]/mo—you can install Cloudron with three simple commands:

chmod +x ./cloudron-setup
./cloudron-setup --provider generic

Once the installation finishes, you can start installing the pre-packaged “apps” from the Cloudron App Store—WordPress, Nextcloud, GitLab, and even DokuWiki are all accounted for. The Cloudron developers just released version 2.0 last week, so you know you’re investing your time in a project that’s not going to disappear in the near future.

Oh, you want even more?

If you want more possibilities, be sure to check out /r/selfhosted/ on Reddit, or dive right into a few dozen Dockerfiles from GitHub user vimagick.

Of course, you can’t go wrong with our super-extensive guide to self-hosted alternatives for plenty more choices. That’s the great thing about self-hosting—there is so much to choose from, and by installing even one more application onto your existing VPS, you not only empower yourself, but you get even more value from every dollar you spend on cloud hosting.

[cta text="Hey, you. Want to self-host more, smarter, faster?" text2="Run dozens of concurrent apps with 16GB RAM at $9.99/mo. That's 6x more value than the competition." button="Get more RAM today →"]