You don't need powerful hardware when it comes to self-hosting, but it sure helps in certain cases. After I started moving some of my self-hosted services from my computer to my NAS, I realized that the 2GB RAM on the device would limit what I could do.

I also learned the hard way what happens when you self-host on underpowered hardware as certain containers became unstable during specific upload tasks. While I'm now well aware of its limitations, I've also been able to identify a few services I can run reliably, and simultaneously, with my NAS's 2GB RAM.

Home Assistant

My container hums along steadily

One of the reasons I run Home Assistant in a container rather than using HAOS is because the container method requires less RAM. I don't have the budget for a RAM upgrade for my NAS, or standalone devices that could run HAOS or a VM.

This means I don't get access to a simple way to install add-ons in Home Assistant, but I still get access to plenty of other useful features. I am still able to run automations, add integrations (both official and custom), and connect to my server using the Home Assistant companion mobile app.

I've added a number of my smart home devices to my server using the Xiaomi Home integration and have a weather warning automation that runs daily. I still plan to add more automations to my instance when I have the time, but the container runs smoothly and without interruption.

Home Assistant
OS
Windows, macOS, Linux
iOS compatible
Yes
Android compatible
Yes

Cloudflared

For connectivity to my Cloudflare Tunnel

When I decided on the method to securely connect to my self-hosted services from outside my home network, I settled on a Cloudflare Tunnel as the most user-friendly way to do this.

In order to connect to a tunnel however, you need to run the Cloudflared daemon, which can be deployed as a container. So long as this container is running on my NAS, the services I connected to my tunnel can be accessed through subdomains I've registered.

I've had no issues with the container since I deployed it months ago. It's lightweight, so it doesn't impact my NAS's resources much. Despite its simple function, it's one of the most useful containers I've hosted.

Cloudflare Tunnels

Jotty Page

My new favorite checklist app

I tried out Jotty Page when it was still known as RwMarkable, and I enjoyed the app's interface so much that I ended up using it to replace Google Keep and Obsidian. The app focuses on task checklists, Kanban boards, and note-taking; with its clean appearance being one of its greatest strengths.

Since I wanted to use it to make quick notes and checklists wherever I am, I set it up on my NAS and connected it to my Cloudflare Tunnel. Thanks to the secured connection provided by the tunnel, I was also able to save it as a progressive web app on my phone.

It's always responsive and I haven't encountered any crashes while using the app on my NAS over the past few weeks. My notes and tasks auto-save easily and I never have issues creating new categories on the fly.

Donetick

Seamless chore management

Donetick was another app I tested out out of curiosity, but it ended up becoming a mainstay of my self-hosting setup. The chores app keeps track of tasks and can auto-schedule them according to completion dates.

It's the service that inspired me to set up my CloudFlare Tunnel, as I needed an HTTPS connection to use its Android app with my server. Since I set it up on my NAS, it has run with no crashes or issues — with my biggest complaint being that it logs me out too often.

But as far as performance with limited resources goes, Donetick is another lightweight container that can be hosted on underpowered hardware.

Donetick

What containers don't run reliably on my NAS?

More than I expected

Now, you could argue that there are plenty of lightweight containers out there that can run on an underpowered NAS. And that's true. But I've also run into a few services that don't run well with only 2GB RAM.

This is down to a few factors. Firstly, depending on the brand of NAS you have, there's already a bunch of preinstalled software and services running on the device. When I look at the processes on my NAS, this is what's actually taking up the bulk of the RAM, even though I don't run that much on the device.

Then, there are times a container can run smoothly until it encounters a certain task that spikes RAM usage. This happened to me with Immich, which would become unstable when it was processing images using machine learning after an upload.

I also ran into this issue with Paperless-ngx, as the OCR processing and AI tagging for documents resulted in the container crashing. As a result, I learned that even when a service didn't have minimum hardware requirements specified, my NAS simply does not have enough RAM for most machine-learning and AI tasks.

Lightweight containers are worth trying out

While it's the more powerful services that get the most attention when it comes to self-hosting, lightweight containers with focused, simple features are definitely worth trying out. These apps allow you to find niche features that suit your needs and don't require you to invest much in hardware.

These are the containers that I run reliably on my NAS, but there are many more great options out there.