Docker Containers I run In My Homelab/Server

Best Docker Containers For Your Home Server
Share:

About

In this post, I will list and briefly describe the docker container I use on my home server. There are a bunch of very useful apps or services out there that you can simply run as a docker container on your home server. By self hosting you get total control over your services and data.
If you are interested I made a post about docker commands and using/making docker containers here.

Note Regarding Hardware

I’m currently using a 4-bay QNAP NAS as my home server. I upgraded to it about two years back from a small 2-bay Zyxel NAS. I have to say that hate these devices and regret not building my own custom server. If you buy a NAS you are limited to the firmware provided by the manufacturer. You can’t upgrade components easily or at all. The resources(CPU, RAM, not to mention GPU) of the more basic NAS devices are very limited even compared to my 10+ year old gaming PC. In my experience the software is kinda slow, buggy, has a bad UI and worst of all insecure. Just search the web for “NAS hacks” or “NAS vulnerabilities” and you will find that over the past couple of years, there were a bunch of vulnerabilities for pretty much all the vendors(Synolog, QNAP, Zyxel).

I would recommend you either get a proper rack mounted server and a server rack or get an old computer case and stick a bunch of hard drives in it, if you run out of SATA ports you can get a PCI express SATA card/raid controller very cheaply. You can very easily add more RAM or an extra NIC(wired or wireless, fiber or cat5 cable). Then you just install something like TrueNAS.

Home Automation Containers

Recently I finally got around to doing some home automation stuff(see my other post for more detail). These are the containers I’m currently using.

Home Assistant

Home Assistant is a free and open source home automation software that allows you to fairly easily control or view data of your smart devices. The best thing about it is that you host it yourself which means you have no external dependencies and you are in control of your own data. 

Note: If you run Home Assistant in a docker container you won’t be able to use addons which can give you a lot of extra functionality. So if you want to use them you’ll have to run Home Assistant in a VM.

Mosquitto MQTT

Mosquitto is an MQTT message broker. You can subscribe to an event/topic and whenever some device or app sends an mqqt message to that topic it will forward the message to all the devices subscribed to it. You can use this to control one or more devices or you can have devices send data to the mqqt broker which then relays it to the subscribers like for example a backend service that writes the data to a database.

Node Red

Node-Red is a very nice visual programming tool you can use to connect and define the logic for your “nodes”. These nodes represent APIs of services or actual physical devices like sensors, switches, motors, actuators, lights, etc. This makes Node-Red a very useful tool for home automation.

Networking

WireGuard VPN

WireGuard is a fairly new VPN protocol. It’s very lightweight, with around 4000 lines of code. Here’s the whitepaper going over how it works(interesting read). Using a VPN is a much better way to access your local devices than port forwarding and exposing them to the entire internet.

DuckDNS

DuckDNS is a free dynamic DNS service that provides you with a domain name that will map to your IP address. If you have a dynamically allocated public IP address(like most people do) you can install the DuckDNS Docker container that will automatically update your domain to point to your current IP address.

SIEM(Security Information and Event Management) Software

Currently, I haven’t used any SIEM software yet but I’m planning on testing out a few of these at work and then I’ll set up one at home. Here are some popular SIEMs WazuhZabbixNagiosIcinga and Cacti. I will update this post at some point in the future when I pick which one I will run.
Update: I decided to go with Wuzuh. Here’s a great video tutorial to get you started if you are interested.

Media

TubeArchivist

Tube Archivist is a self hosted YouTube media server. It enables you to download YouTube videos or subscribe to people and then automatically download any new videos(and all other existing ones) they download to your local server. The great thing about this is that you will not see any ads. This is especially relevant now with all the anti-adblocker stuff going on. Additionally, you get to archive videos in case they get removed in the future for you know… YouTubes BS reasons. 

But you should consider using YouTube alternatives anyway if the creators you watch have channels there. Preferably use platforms or services that are truly decentralized by design or are at least built on top of such a decentralized storage layer like Odysee/LBRY(apparently they will be moving from the LBRY protocol to Arweave).

JDownloader

JDownloader is a free and open source download manager. It allows you to download websites or file from websites. Link to docker container.

Torrents

As I’m using a QNAP NAS I decided to just use the “Download Station” app(that can be installed from the QNAP App Center) to manage my torrent downloads. As an alternative you can use Transmission or the qBittorrent docker containers.

Media and Files servers

Here I also decided to just use some of the apps provided by QNAP via App Center instead of installing separate docker containers. 

However, here are a few docker container alternatives that offer the same functionality: Plex and Jellyfin are two very popular media servers to manage and play/stream your media files and ownCloud or good old Samba can be used for file sharing.

Other

BookStack

BookStack is a self hosted, free and open source tool for making documentation. I already wrote about it this post I made a while ago.

Portainer

QNAP provides an app called “Container Station” to run and manage docker containers. However, I installed Portainer anyway as I much prefer it over QNAPs Container Station. Portainer is a free and open-source Docker container management tool with a web GUI.

Podman and Cockpit

Podman is a free and open source alternative to Docker(fully compatible with Docker containers). It’s also a bit more lightweight than Docker which is also the reason that I decided to use it for my Mini Portable Server project I wrote about in this postCockpit is web based GUI for running and managing Podman containers.

Adguard and Pi-hole Ad Blockers

Adguard and Pi-hole are both DNS adblockers that can be run in a docker container. The great thing about these is that they will block ads on the entire network by intercepting and blocking DNS requests made to known ad providers. This effectively prevents ads from loading.
Share:

Leave a Reply

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

The following GDPR rules must be read and accepted:
This form collects your name, email and content so that we can keep track of the comments placed on the website. For more info check our privacy policy where you will get more info on where, how and why we store your data.

Advertisment ad adsense adlogger