I find mini PCs very affordable for building a cozy home lab. My best bet was to look for refurbished or used mini (or micro) PCs at online marketplaces. Since I wanted to start small, I preferred to look for Docker containers for self-hosted services rather than a complicated direct deployment.
From media streaming to managing a smart home, I experimented with and juggled several containers before narrowing down to the ones I really need most often. Here are some of the amazing Docker containers that run 24/7 on my $100 mini PC.
7 Docker containers I use to boost my productivity
Docker containers that turned me into a productivity ninja
Jellyfin
Hosting a local media streamer
To reduce my streaming service usage, I have set up a Jellyfin server that hosts some of my favorite and most popular movies and shows. To make this container resource-efficient, I disabled hardware transcoding and used Direct Play whenever possible. Such a configuration helps Jellyfin run smoothly, rarely ever crashes, and doesn’t buffer while playing files locally. To my surprise, it’s quickly becoming a Netflix alternative for my family.
Jellyfin
- iOS compatible
- Yes
- Android compatible
- Yes
Jellyfin is one of the best Plex alternatives you can get, and that's thanks to its open-source nature and powerful set of features. There are apps for basically every platform and it's completely free to run your very own server.
- Desktop compatible
- Yes
Immich
Self-hosted photo management
Deploying the Immich containers with a Docker Compose file is quite convenient. Setting the proper volumes was what I focused on when installing it. As one of the early containers when I started with Docker, I barely tweaked the configuration. So now it manages photos without hiccups. Besides paying for cloud storage, I happily keep copies of photo backups on my Immich server for offline viewing.
Immich
- Key highlights
- Self-hosted
- iOS compatible
- Yes
Immich an open-source, self-hostable solution to backup photos and videos.
- Android compatible
- Yes
Syncthing
Sharing files becomes easy
To share files, like screenshots, locally between a MacBook and Windows is now easy, all thanks to Syncthing. After setting up the local shared folders, file transfers proceed smoothly. Its lightweight profile makes it highly reliable for sharing photos or documents between phones and computers. Most importantly, I get to set up two-way or send-only sync between folders. Its web interface allows managing the syncs and other admin controls.
Syncthing
- OS
- Windows, macOS, Linux
Syncthing is an open source, peer-to-peer file synchronization tool.
ownCloud
Web-based file management
Though Syncthing feels good enough for sharing files, I needed a proper browser-like interface to access and manage files. Along with Syncthing, ownCloud helps me share files directly via links. More importantly, this Docker’s web interface is reminiscent of other cloud services. That helps me teach my family to share important files and documents easily, while maintaining full control over the data.
ownCloud
- OS
- Windows, macOS, Linux
- iOS compatible
- Yes
ownCloud is an open-source option to create your own private, file-sharing server on the hardware in your home network or VPS.
- Android compatible
- Yes
Home Assistant
Local smart home shenanigans
After using Home Assistant OS for a while, I switched my approach to deploying the smart home platform as a Docker container. The initial setup felt a little tedious, especially when populating the Docker Compose file to include add-ons. That was worth it because the overall system overhead is way less, especially since I don’t use Frigate for cameras. The entire HA setup boots quickly. However, running Home Assistant as a container brings along multiple containers, and managing them becomes easier over time.
Home Assistant
- OS
- Windows, macOS, Linux
- iOS compatible
- Yes
Home Assistant is an open-source smart home automation platform for control, monitoring, and automating smart home devices.
- Android compatible
- Yes
Vaultwarden
Managing passwords effectively
As one of the few resource-intensive open-source options, Vaultwarden serves well to manage my family members’ passwords efficiently. Whether it’s for accessing other locally self-hosted services or online streaming accounts, the passwords are easily available to everyone. In the past, I tried Passbolt, but giving Vaultwarden a second chance turned out to be convenient for my family.
Vaultwarden
- Key highlights
- Self-hosted Bitwarden alternative
Vaulwarden is an open-source password manager that's self-hostable and is resource-efficient.
Uptime Kuma
Monitor the health of services and apps
While experimenting with new containers along with the regular ones, it’s important to know when something breaks. This simple, light-weight monitoring container lets me keep an eye on the health of other Docker containers. Also, I set up HTTP(S), DNS, TCP, and Ping devices to form a real-time monitoring system that alerts me when something stops working. The real-time alerts help me fix those broken apps quickly, and their uptime history helps further troubleshoot if a serious deep-dive is required. Its simple setup and friendly interface lets me enjoy full control over the monitoring data.
Uptime Kuma
- Key highlights
- Open-source monitor
Uptime Kuma is an open-source monitoring tool meant for tracking the uptime of services, apps, and websites.
Portainer (CE)
Managing the containers
Installing containers and experimenting is so convenient with a clean web UI that also offers management settings. Mapping volumes and setting up the container network becomes straightforward. Thanks to Portainer's web interface, troubleshooting crashing containers or other issues takes only a few clicks. It’s become one of the essential control panels to manage various Docker environments.
Portainer
Portainer is a lightweight, easy-to-use management interface for Docker, Kubernetes, and other container platforms. It simplifies the deployment, management, and monitoring of containers through a visual, web-based dashboard. With Portainer, users can manage container stacks, networks, volumes, and images without relying solely on command-line tools.
Pi-hole
For observing IoT behavior and ad-blocks
Experimenting with various containers and IoT devices started attracting unknown traffic to my home network. I use Pi-hole to handle that with Unbound DNS. After auditing the outgoing traffic from smart devices, I tuned all of them to work locally, without cloud services support.
Pi-hole
- OS
- Linux
- Price model
- Free
Pi-hole is a network-wide ad blocker that acts as a DNS sinkhole, preventing unwanted ads, trackers, and malicious domains from loading on any device connected to your network. It runs on lightweight hardware, such as a Raspberry Pi or in a virtual machine. By intercepting DNS queries, Pi-hole blocks ads before they ever reach your browser or apps, improving speed and privacy. It also provides an easy-to-use web interface for monitoring and managing network traffic.
Besides that, Pi-hole helps curb trackers and suspicious domains from exploiting my family members' devices, while also blocking spammy and phishing sites.
7 Docker containers you should run on your Synology NAS
Turn your Synology NAS into a Docker hub.
A roster of containers is now a daily essential
The majority of these containers host services that my family and I use daily. The only exception is Portainer. I only check it every couple of days to ensure my high-availability containers don't experience any configuration issues. In case anything goes wrong, I simply use the master Docker Compose file to make changes and re-spin the container.
A combination of an affordable mini PC and Docker containers is excellent for running a handful of high-availability, essential services locally on a home network. As I continue to learn from my homelab building mistakes, I now prefer using most services locally and rely less on cloud services.
