5 self-hosted, Docker-Friendly apps to install this weekend

Perhaps the best thing about having a VPS is the ability to experiment with hosting pretty much any application out there. And by using Docker as the foundation, it gets so much easier to try something, have it fail, and then try again.

We feature many of them in our self-hosted alternatives guide, but personally, I’m excited about a select few applications that I’ll be able to use to get more productive and reduce my reliance on other SaaS apps that keep pestering me to upgrade to a premium membership that offers features I don’t want or need. Plus, having control of my data is infinitely appealing.

1. Monica — a “CRM” for your friends and family

The Monica interface

Monica is an open source application to help people manage the relationships between their friends and family.

Monica allows people to keep track of everything that’s important about their friends and family. Like the activities done with them. When you last called someone. What you talked about. It will help you remember the name and the age of the kids. It can also remind you to call someone you haven’t talked to in a while.

The Monica repository comes with a docker-compose file, so that’s pretty much all you need to get started. The installation instructions are a little more complex than simply running a docker command, so it’s best to just point you in the direction of how to install Monica.

Cyber Monday Deals are still going!

Score a 24GB Performance VPS with 240GB of SSD storage for just $99/year!

Get the Cyber Monday deals now!⚡

2. GitLab — a self-hosted GitHub competitor

I have a number of small Git repositories that I use to manage some personal applications and web development projects, and some are things I don’t want to expose to the public, which is the default in GitHub (unless you’re willing to pay up). For example, I just migrated away from one of the popular password managers to Pass by zx2c4, which uses GPG keys for privacy and Git to synchronize the keystore across machines—my GPG keys are 4096-bit, but I’d rather not have someone cloning a public repository with all my passwords. By self-hosting with GitLab, I can keep the keys secure and private.

A GitLab installation from scratch is pretty complex, but with Docker, that’s made a lot easier.

$ docker run --detach 
    --hostname gitlab.example.com 
    --publish 443:443 --publish 80:80 --publish 22:22 
    --name gitlab 
    --restart always 
    --volume /srv/gitlab/config:/etc/gitlab 
    --volume /srv/gitlab/logs:/var/log/gitlab 
    --volume /srv/gitlab/data:/var/opt/gitlab 
    gitlab/gitlab-ce:latest

3. wger Workout Manager — fairly self-explanatory, no?

Being someone who works entirely from home, I could go a whole day without doing something active if I wasn’t careful. Being able to do some workouts in my backyard (one of the benefits of living in Arizona is the year-round ability to do just this) is one of the reliable methods for me to stay (relatively) in shape, and wger will help me better manage my progress. Much better than my horribly organized Google Sheet.

To install, just clone the Git repository and run the following:

$ docker build -t wger/devel .
$ docker run -ti --name wger.apache --publish 8000:80 wger/apache

Once inside the Docker container, you can start the server.

$ source ~/venv/bin/activate
$ python manage.py runserver 0.0.0.0:8000

More detailed instructions can be found in the administration guide.

4. Tiny Tiny RSS — for less obtrusive feed reading

The Tiny Tiny RSS interface

In the great void left behind the loss of Google Reader, I was one of the many people who migrated toward Feedly, which seemed like a simple alternative. Over the years, however, it’s grown considerably, and now it seems like every time I log in, they’re trying to upsell me with another “discovery” feature I don’t need. Time to jump ship.

Tiny Tiny RSS is just that: a very simple self-hosted RSS reader. Thanks to a rich developer community, one person has put together a simple Docker image for installing it on a VPS. First, you need to start up a PostgreSQL container, followed by TTRSS.

$ docker run -d --name ttrssdb nornagon/postgres
$ docker run -d --link ttrssdb:db -p 80:80 clue/ttrss

You might want to expose a different port, but that’s entirely up to you!

5. wallabag — save entire web pages

In the last few weeks, I’ve had two new hobbies take up a majority of my free time: Factorio and beginner-level woodworking projects. In both cases, I find myself saving a lot of bookmarks of both finished projects (for inspiration when I actually get some decent skills), and tutorials that walk me through something I’ve never done before.

In both cases, it’s nice not just to bookmark an interesting page, but actually save it in its entirely. You never know when a really great tutorial you’re meaning to try out in a few months simply disappear from the internet.

Enter wallabag, which takes Pocket or Instapaper a step further and saves entire pages. The basic installation (with persistent storage) is relatively simple:

$ docker run -v /opt/wallabag/data:/var/www/wallabag/data -v -/opt/wallabag/images:/var/www/wallabag/web/assets/images -p 80:80 wallabag/wallabag

Again, this will run on port 80, so depending on your configuration, you might need to change this.

I hope this gave you some inspiration you can take into you weekend! Let me know if you have other self-hosted apps you’ve been eyeing, and I just might add them to our ultimate guide.