My Favorite Self-Hosted Applications

January 1, 2020 by Steven Ng (Updated November 23, 2021)


In addition to a bunch of self-hosted applications, I use many Windows applications to stay productive as well.


  • Duplicati - I use this to back up my Linux boxes.

Docker Containers

The lists are in this format:

  • Application Name (image name)

Network Admin

  • Portainer (portainer/portainer) - I use this to manage containers on a Docker server
  • Guacamole (guacamole/guacamole & guacamole/guacd) - Gives you a central web access point for RDP, VNC and SSH connections

Web Server

  • Nginx (nginx:alpine) - I use Nginx as a reverse proxy to most of my containers. I may at some point switch to Traefik or something else, but haven't because of inertia.

Directory Server

  • OpenLDAP (osixia/openldap:1.2.5) - Good for creating a test LDAP instance for testing

Database Servers

  • Postgresql (postgres) - My favorite relational DB.
  • SQL Server (microsoft/mssql-server-linux:2017-latest) - Microsoft SQL Server 2017
  • DB2 (ibmcom/db2) - Possibly the easiest and most painless way to install an instance of DB2
  • Mysql (mysql) - I don't really use this, but handy for development.
  • MongoDB (mongodb) - For web scale data storage /s
  • CouchDB (apache/couchdb:latest) - A document store. a.k.a. Cloudant


  • Wallabag (wallabag/wallabag) - Wallabag is like Pocket. I use it to collect articles for reference or to read later.
  • PGAdmin4 (pgadmin4) - Administration tool for Postgresql.
  • OpenHAB (openhab/openhab) - Smart Home controller. I was not a fan of Home Assistant. While I'm not a fan of the user interface, OpenHAB has a REST API, so you can roll your own.
  • VSCode ( - Having a full-fledged IDE via browser to edit files on a server is fantastic. Having said that, you probably don't want to install this on a public server for security reasons.

Tried, But Didn't Make The Cut

Some noteworthy containers I tried but they just weren't for me in one shape or form.

  • Wiki.js - This one shows a lot of promise. It's just not ready for prime time for me. I'll probably give this another shot in the future. I would still choose WikiJS in its current state over Bookstack though.
  • Pihole (pihole/pihole:latest) - I used PiHole for local DNS and to block ad and tracking domains for a while, but most of the lists block off more than I want, and I ended up using the blocking in my firewall instead.
  • Gitlab (gitlab/gitlab-ce:latest) - I use this to host private Git repositories locally. Think of it as a host-your-own Github/Gitlab. Once Github changed their free plan, I basically dropped Gitlab.
  • Gogs - Another self-hosted Git server. I personally found Gitlab to have more complete functionality combined with a nicer UI.
  • Bookstack - A documentation/wiki type of app. I tried this twice based on its popularity on /r/selfhosted, and it just wasn't for me.
  • Verdaccio - A self hosted private NPM registry. Once I found out that Github was providing a free private NPM registry, it had no use for me.
  • Home Assistant - A smart home application. I did not like this at all and ended up switching to OpenHAB.
  • Huginn - It's like a host-your-own IFTTT. Not my cup of tea.
  • Jenkins - Continuous Integration server. It's not for me. Given how I'm so Github focused, I think I'd rather use Github Actions.